/**
 * Data Catalog API
 * Use the Data Catalog APIs to collect, organize, find, access, understand, enrich, and activate technical, business, and operational metadata.
For more information, see [Data Catalog](https://docs.oracle.com/iaas/data-catalog/home.htm).

 * OpenAPI spec version: 20190325
 *
 *
 * NOTE: This class is auto generated by OracleSDKGenerator.
 * Do not edit the class manually.
 *
 * Copyright (c) 2020, 2022, Oracle and/or its affiliates.  All rights reserved.
 * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
 */ import * as model from "../model" ; import common = require ( "oci-common" ) ; /**
 * A list of rule resources. One or more rules can be defined for a data entity.
 * Each rule can be defined on one or more attributes of the data entity.
 *
 */ export interface RuleSummary { /**
     * Immutable unique key of a rule.
     */ "key" : string ; /**
     * A user-friendly display name. Does not have to be unique, and it's changeable.
     * Avoid entering confidential information.
     *
     */ "displayName" ? : string ; /**
     * Detailed description of a rule.
     */ "description" ? : string ; /**
     * Type of a rule.
     */ "ruleType" ? : model . RuleType ; /**
     * External URI that can be used to reference the object. Format will differ based on the type of object.
     *
     */ "externalKey" ? : string ; /**
     * Attributes associated with a rule.
     * A UNIQUEKEY rule would contain (at least) one attribute, for the local table column(s) on which uniqueness is defined.
     *
     */ "attributes" ? : Array < model . RuleAttribute > ; /**
     * Folder key that represents the referenced folder, applicable only when rule type FOREIGNKEY.
     */ "referencedFolderKey" ? : string ; /**
     * Folder name that represents the referenced folder, applicable only when rule type FOREIGNKEY.
     */ "referencedFolderName" ? : string ; /**
     * Entity key that represents the referenced entity, applicable only when rule type is FOREIGNKEY.
     */ "referencedEntityKey" ? : string ; /**
     * Entity name that represents the referenced entity, applicable only when rule type is FOREIGNKEY.
     */ "referencedEntityName" ? : string ; /**
     * Rule key that represents the referenced rule, applicable only when rule type is FOREIGNKEY.
     */ "referencedRuleKey" ? : string ; /**
     * Rule name that represents the referenced rule, applicable only when rule type is FOREIGNKEY.
     */ "referencedRuleName" ? : string ; /**
     * Attributes associated with referenced rule, applicable only when rule type is FOREIGNKEY.
     * A FOREIGNKEY rule would contain (at least) one attribute, for the local table column(s), and (at least) one referencedAttribute for referenced table column(s).
     *
     */ "referencedAttributes" ? : Array < model . RuleAttribute > ; /**
     * Origin type of the rule.
     */ "originType" ? : model . RuleOriginType ; /**
     * URI to the rule instance in the API.
     */ "uri" ? : string ; /**
     * The date and time the rule was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
     * Example: `2019-03-25T21:10:29.600Z`
     *
     */ "timeCreated" ? : Date ; /**
     * State of the rule.
     */ "lifecycleState" ? : model . LifecycleState ; } export namespace RuleSummary { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "attributes" : obj . attributes ? obj . attributes . map ( item => { return model . RuleAttribute . getJsonObj ( item ) ; } ) : undefined , "referencedAttributes" : obj . referencedAttributes ? obj . referencedAttributes . map ( item => { return model . RuleAttribute . getJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "attributes" : obj . attributes ? obj . attributes . map ( item => { return model . RuleAttribute . getDeserializedJsonObj ( item ) ; } ) : undefined , "referencedAttributes" : obj . referencedAttributes ? obj . referencedAttributes . map ( item => { return model . RuleAttribute . getDeserializedJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } }