本頁說明如何使用 Organization Policy Service 自訂限制,限制下列 Google Cloud 資源的特定作業:
datastream.googleapis.com/ConnectionProfiledatastream.googleapis.com/Streamdatastream.googleapis.com/PrivateConnection
如要進一步瞭解機構政策,請參閱「自訂機構政策」。
關於機構政策和限制
Google Cloud 機構政策服務可讓您透過程式以集中方式控管機構的資源。身為機構政策管理員,您可以定義機構政策,也就是一組稱為「限制」的限制,適用於Google Cloud 資源和Google Cloud 資源階層中這些資源的子系。您可以在機構、資料夾或專案層級強制執行機構政策。
機構政策提供各種 Google Cloud 服務的內建代管限制。不過,如要更精細地自訂機構政策中受限的特定欄位,也可以建立自訂限制,並在機構政策中使用這些自訂限制。
政策繼承
根據預設,機構政策會由您強制執行政策的資源子系繼承。舉例來說,如果您對資料夾強制執行政策, Google Cloud 系統會對該資料夾中的所有專案強制執行政策。如要進一步瞭解這項行為及如何變更,請參閱「階層評估規則」。
優點
您可以透過自訂機構政策,對 Datastream 資源強制執行特定安全性政策。舉例來說,您可以限制串流的顯示名稱、連線設定檔類型,或是可建立私人連線的區域。確保機構全體成員遵守法規和治理原則。
限制
- 政策變更不會回溯套用至現有的 Datastream 資源。
 - 即使現有資源設定含有不符合規定的值,只要未更新,仍會維持有效。
 - 自訂限制評估可能會在資源建立和更新要求中增加少量延遲。
 
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
 - 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
      
Install the Google Cloud CLI.
 - 
          
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
 - 
        
如要初始化 gcloud CLI,請執行下列指令:
gcloud init - 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
      
Install the Google Cloud CLI.
 - 
          
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
 - 
        
如要初始化 gcloud CLI,請執行下列指令:
gcloud init - 請確認您知道機構 ID。
 ORGANIZATION_ID:您的機構 ID,例如123456789。CONSTRAINT_NAME:新自訂限制的名稱。自訂限制條件必須以custom.開頭,且只能包含大寫英文字母、小寫英文字母或數字。例如,custom.restrictDatastreamStreamDisplayName。這個欄位的長度上限為 70 個字元。RESOURCE_NAME:Google Cloud 資源的完整名稱,其中包含要限制的物件和欄位。例如:datastream.googleapis.com/Stream。CONDITION:針對支援服務資源的代表項目編寫的 CEL 條件。這個欄位的長度上限為 1000 個字元。如要進一步瞭解可編寫條件的資源,請參閱「支援的資源」。例如:"!resource.displayName.startsWith('test-')"。ACTION:如果符合condition,應採取的動作。可能的值為ALLOW和DENY。DISPLAY_NAME:限制條件的易記名稱。這個欄位的長度上限為 200 個字元。DESCRIPTION:違反政策時,要以錯誤訊息形式顯示的限制說明。這個欄位的長度上限為 2000 個字元。- 前往 Google Cloud 控制台的「Organization policies」(機構政策) 頁面。
 - 在專案選擇工具中,選取要設定機構政策的專案。
 - 在「Organization policies」(機構政策) 頁面上的清單中選取限制條件,即可查看該限制條件的「Policy details」(政策詳情) 頁面。
 - 如要設定資源的機構政策,請按一下「管理政策」。
 - 在「編輯政策」頁面中,選取「覆寫上層政策」。
 - 按一下「新增規則」。
 - 在「Enforcement」(強制執行) 區段中,選取是否要強制執行這項機構政策。
 - 選用:如要根據標記設定機構政策條件,請按一下「新增條件」。請注意,如果為組織政策新增條件式規則,您必須至少新增一項無條件規則,否則無法儲存政策。詳情請參閱「使用標記設定組織政策」。
 - 按一下「測試變更」,模擬機構政策的影響。舊版受管理限制條件不支援政策模擬。詳情請參閱「 使用 Policy Simulator 測試組織政策變更」。
 - 如要完成並套用機構政策,請按一下「設定政策」。這項政策最多需要 15 分鐘才會生效。
 - 
        
PROJECT_ID:您要強制執行限制的專案。 - 
        
CONSTRAINT_NAME:您為自訂限制定義的名稱。例如:custom.restrictDatastreamStreamDisplayName。 - 您的機構 ID
 - 專案 ID
 將下列檔案儲存為
constraint-datastream-stream-displayname.yaml:name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictDatastreamStreamDisplayName resourceTypes: - datastream.googleapis.com/Stream methodTypes: - CREATE - UPDATE condition: "!resource.displayName.startsWith('test-')" actionType: DENY displayName: Restrict stream display names description: All new Datastream streams must have a display name starting with 'test-'這項限制規定每個新串流或更新的串流都必須有以
test-開頭的displayName。套用限制:
gcloud org-policies set-custom-constraint ~/constraint-datastream-stream-displayname.yaml確認限制條件是否存在:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID將下列檔案儲存為
policy-deny-stream-displayname.yaml:name: projects/PROJECT_ID/policies/custom.restrictDatastreamStreamDisplayName spec: rules: - enforce: true將
PROJECT_ID替換為您的專案 ID。套用政策:
gcloud org-policies set-policy ~/policy-deny-stream-displayname.yaml
必要的角色
    
      如要取得管理自訂機構政策所需的權限,請要求管理員授予您機構資源的機構政策管理員  (roles/orgpolicy.policyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
  
  
建立自訂限制
自訂限制是在 YAML 檔案中定義,其中包含您要強制執行機構政策的服務所支援的資源、方法、條件和動作。自訂限制的條件是使用一般運算語言 (CEL) 定義。如要進一步瞭解如何使用 CEL 在自訂限制中建構條件,請參閱「建立及管理自訂限制」一文的 CEL 一節。
如要建立自訂限制,請使用下列格式建立 YAML 檔案:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
更改下列內容:
如要進一步瞭解如何建立自訂限制,請參閱「定義自訂限制」。
設定自訂限制
為新的自訂限制建立 YAML 檔案後,您必須進行設定,才能在貴機構的機構政策中使用該檔案。如要設定自訂限制,請使用gcloud org-policies set-custom-constraint 指令:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH 替換為自訂限制檔案的完整路徑。例如:/home/user/customconstraint.yaml。
完成後,自訂限制就會顯示在 Google Cloud 機構政策清單中,做為機構政策使用。如要確認自訂限制存在,請使用 gcloud org-policies list-custom-constraints 指令:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID 替換為機構資源的 ID。
詳情請參閱「查看組織政策」。
強制執行自訂機構政策
如要強制執行限制,請建立參照該限制的機構政策,然後將該政策套用至 Google Cloud 資源。控制台
gcloud
如要建立含有布林值規則的機構政策,請建立參照限制的政策 YAML 檔案:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
取代下列項目:
如要強制執行包含限制的機構政策,請執行下列指令:
gcloud org-policies set-policy POLICY_PATH
      將 POLICY_PATH 替換為機構政策 YAML 檔案的完整路徑。這項政策最多需要 15 分鐘才會生效。
    
測試自訂機構政策
以下範例會建立自訂限制和政策,禁止建立顯示名稱開頭不是 test- 的 Datastream 資料串流。
開始之前,請先備妥下列項目:
建立限制
建立政策
測試政策
嘗試使用不符合規定的顯示名稱建立 Datastream 串流:
# This command is a conceptual example. You need to provide valid source and destination config IDs.
# Replace <VAR> placeholders with actual values.
gcloud datastream streams create my-prod-stream --location=<VAR>LOCATION</VAR> --display-name="production-stream" --source=<VAR>SOURCE_CP</VAR> --destination=<VAR>DEST_CP</VAR> ...
輸出內容應包含類似以下的錯誤:
Operation denied by custom org policies: ["customConstraints/custom.restrictDatastreamStreamDisplayName": "All new Datastream streams must have a display name starting with 'test-'"]
常見用途的自訂機構政策範例
下表提供一些常見自訂限制的語法範例。
| 說明 | 限制語法 | 
|---|---|
| 限制串流顯示名稱 | 
     確保所有新串流都遵循特定命名慣例。 name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictDatastreamStreamDisplayName resourceTypes: - datastream.googleapis.com/Stream methodTypes: - CREATE - UPDATE condition: "!resource.displayName.startsWith('test-')" actionType: DENY displayName: Restrict stream display names description: All new Datastream streams must have a display name starting with 'test-'  | 
| 僅限 MySQL 連線設定檔類型 | 
     確保只能建立 MySQL 連線設定檔。 注意:確切條件取決於連線設定檔產生的通用運算語言 (CEL) 協定緩衝區結構。本例假設有一個欄位表示設定檔類型。 name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictDatastreamToMySQL resourceTypes: - datastream.googleapis.com/ConnectionProfile methodTypes: - CREATE # This condition is an example and needs to be validated against the actual CEL proto fields. # It checks for the presence of the mysqlProfile field. condition: "!has(resource.mysqlProfile)" actionType: DENY displayName: Restrict connection profiles to MySQL description: Only MySQL source connection profiles can be created.  | 
| 將私人連線限制在特定虛擬私有雲 | 
     確保私人連線只使用核准的虛擬私有雲網路。 注意:這個範例假設 VPC 名稱位於  name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictDatastreamPrivateConnectionVPC resourceTypes: - datastream.googleapis.com/PrivateConnection methodTypes: - CREATE # This condition assumes the vpc name is accessible via resource.vpcPeeringConfig.vpc. # This needs to be verified against the actual CEL proto. condition: "resource.vpcPeeringConfig.vpc != 'projects/ALLOWED_PROJECT/global/networks/ALLOWED_VPC'" actionType: DENY displayName: Restrict Private Connection VPC description: Private Connections can only be created with the allowed VPC.  | 
Datastream 支援的資源
下表列出可在自訂限制中參照的 Datastream 資源。| 資源 | 欄位 | 
|---|---|
| datastream.googleapis.com/ConnectionProfile | 
        resource.displayName
       | 
        resource.forwardSshConnectivity.hostname
       | |
        resource.forwardSshConnectivity.port
       | |
        resource.forwardSshConnectivity.username
       | |
        resource.gcsProfile.bucket
       | |
        resource.gcsProfile.rootPath
       | |
        resource.mongodbProfile.hostAddresses.hostname
       | |
        resource.mongodbProfile.hostAddresses.port
       | |
        resource.mongodbProfile.replicaSet
       | |
        resource.mongodbProfile.standardConnectionFormat.directConnection
       | |
        resource.mongodbProfile.username
       | |
        resource.mysqlProfile.hostname
       | |
        resource.mysqlProfile.port
       | |
        resource.mysqlProfile.username
       | |
        resource.oracleProfile.connectionAttributes
       | |
        resource.oracleProfile.databaseService
       | |
        resource.oracleProfile.hostname
       | |
        resource.oracleProfile.oracleAsmConfig.asmService
       | |
        resource.oracleProfile.oracleAsmConfig.connectionAttributes
       | |
        resource.oracleProfile.oracleAsmConfig.hostname
       | |
        resource.oracleProfile.oracleAsmConfig.oracleSslConfig.serverCertificateDistinguishedName
       | |
        resource.oracleProfile.oracleAsmConfig.port
       | |
        resource.oracleProfile.oracleAsmConfig.username
       | |
        resource.oracleProfile.oracleSslConfig.serverCertificateDistinguishedName
       | |
        resource.oracleProfile.port
       | |
        resource.oracleProfile.username
       | |
        resource.postgresqlProfile.database
       | |
        resource.postgresqlProfile.hostname
       | |
        resource.postgresqlProfile.port
       | |
        resource.postgresqlProfile.username
       | |
        resource.privateConnectivity.privateConnection
       | |
        resource.salesforceProfile.domain
       | |
        resource.salesforceProfile.oauth2ClientCredentials.clientId
       | |
        resource.salesforceProfile.userCredentials.username
       | |
        resource.sqlServerProfile.database
       | |
        resource.sqlServerProfile.hostname
       | |
        resource.sqlServerProfile.port
       | |
        resource.sqlServerProfile.username
       | |
| datastream.googleapis.com/PrivateConnection | 
        resource.displayName
       | 
        resource.pscInterfaceConfig.networkAttachment
       | |
        resource.vpcPeeringConfig.subnet
       | |
        resource.vpcPeeringConfig.vpc
       | |
| datastream.googleapis.com/Stream | 
        resource.backfillAll.mongodbExcludedObjects.databases.collections.collection
       | 
        resource.backfillAll.mongodbExcludedObjects.databases.collections.fields.field
       | |
        resource.backfillAll.mongodbExcludedObjects.databases.database
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.database
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.collation
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.column
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.dataType
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.length
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.nullable
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.ordinalPosition
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.precision
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.primaryKey
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.mysqlColumns.scale
       | |
        resource.backfillAll.mysqlExcludedObjects.mysqlDatabases.mysqlTables.table
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.column
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.dataType
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.encoding
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.length
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.nullable
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.ordinalPosition
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.precision
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.primaryKey
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.oracleColumns.scale
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.oracleTables.table
       | |
        resource.backfillAll.oracleExcludedObjects.oracleSchemas.schema
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.column
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.dataType
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.length
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.nullable
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.ordinalPosition
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.precision
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.primaryKey
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.scale
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.postgresqlTables.table
       | |
        resource.backfillAll.postgresqlExcludedObjects.postgresqlSchemas.schema
       | |
        resource.backfillAll.salesforceExcludedObjects.objects.fields.dataType
       | |
        resource.backfillAll.salesforceExcludedObjects.objects.fields.name
       | |
        resource.backfillAll.salesforceExcludedObjects.objects.fields.nillable
       | |
        resource.backfillAll.salesforceExcludedObjects.objects.objectName
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.schema
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.column
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.dataType
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.length
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.nullable
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.ordinalPosition
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.precision
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.primaryKey
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.columns.scale
       | |
        resource.backfillAll.sqlServerExcludedObjects.schemas.tables.table
       | |
        resource.customerManagedEncryptionKey
       | |
        resource.destinationConfig.bigqueryDestinationConfig.blmtConfig.bucket
       | |
        resource.destinationConfig.bigqueryDestinationConfig.blmtConfig.connectionName
       | |
        resource.destinationConfig.bigqueryDestinationConfig.blmtConfig.fileFormat
       | |
        resource.destinationConfig.bigqueryDestinationConfig.blmtConfig.rootPath
       | |
        resource.destinationConfig.bigqueryDestinationConfig.blmtConfig.tableFormat
       | |
        resource.destinationConfig.bigqueryDestinationConfig.dataFreshness
       | |
        resource.destinationConfig.bigqueryDestinationConfig.singleTargetDataset.datasetId
       | |
        resource.destinationConfig.bigqueryDestinationConfig.sourceHierarchyDatasets.datasetTemplate.datasetIdPrefix
       | |
        resource.destinationConfig.bigqueryDestinationConfig.sourceHierarchyDatasets.datasetTemplate.kmsKeyName
       | |
        resource.destinationConfig.bigqueryDestinationConfig.sourceHierarchyDatasets.datasetTemplate.location
       | |
        resource.destinationConfig.bigqueryDestinationConfig.sourceHierarchyDatasets.projectId
       | |
        resource.destinationConfig.destinationConnectionProfile
       | |
        resource.destinationConfig.gcsDestinationConfig.fileRotationInterval
       | |
        resource.destinationConfig.gcsDestinationConfig.fileRotationMb
       | |
        resource.destinationConfig.gcsDestinationConfig.jsonFileFormat.compression
       | |
        resource.destinationConfig.gcsDestinationConfig.jsonFileFormat.schemaFileFormat
       | |
        resource.destinationConfig.gcsDestinationConfig.path
       | |
        resource.displayName
       | |
        resource.environmentConfig.peripheralsConfig.sparkHistoryServerConfig.dataprocCluster
       | |
        resource.jupyterSession.displayName
       | |
        resource.jupyterSession.kernel
       | |
        resource.name
       | |
        resource.runtimeConfig.autotuningConfig.scenarios
       | |
        resource.runtimeConfig.cohort
       | |
        resource.runtimeConfig.containerImage
       | |
        resource.runtimeConfig.properties
       | |
        resource.runtimeConfig.repositoryConfig.pypiRepositoryConfig.pypiRepository
       | |
        resource.runtimeConfig.version
       | |
        resource.sourceConfig.mongodbSourceConfig.excludeObjects.databases.collections.collection
       | |
        resource.sourceConfig.mongodbSourceConfig.excludeObjects.databases.collections.fields.field
       | |
        resource.sourceConfig.mongodbSourceConfig.excludeObjects.databases.database
       | |
        resource.sourceConfig.mongodbSourceConfig.includeObjects.databases.collections.collection
       | |
        resource.sourceConfig.mongodbSourceConfig.includeObjects.databases.collections.fields.field
       | |
        resource.sourceConfig.mongodbSourceConfig.includeObjects.databases.database
       | |
        resource.sourceConfig.mongodbSourceConfig.maxConcurrentBackfillTasks
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.database
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.collation
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.column
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.dataType
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.length
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.nullable
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.ordinalPosition
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.precision
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.primaryKey
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.mysqlColumns.scale
       | |
        resource.sourceConfig.mysqlSourceConfig.excludeObjects.mysqlDatabases.mysqlTables.table
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.database
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.collation
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.column
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.dataType
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.length
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.nullable
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.ordinalPosition
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.precision
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.primaryKey
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.mysqlColumns.scale
       | |
        resource.sourceConfig.mysqlSourceConfig.includeObjects.mysqlDatabases.mysqlTables.table
       | |
        resource.sourceConfig.mysqlSourceConfig.maxConcurrentBackfillTasks
       | |
        resource.sourceConfig.mysqlSourceConfig.maxConcurrentCdcTasks
       | |
        resource.sourceConfig.oracleSourceConfig.binaryLogParser.logFileDirectories.archivedLogDirectory
       | |
        resource.sourceConfig.oracleSourceConfig.binaryLogParser.logFileDirectories.onlineLogDirectory
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.column
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.dataType
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.encoding
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.length
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.nullable
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.ordinalPosition
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.precision
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.primaryKey
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.oracleColumns.scale
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.oracleTables.table
       | |
        resource.sourceConfig.oracleSourceConfig.excludeObjects.oracleSchemas.schema
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.column
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.dataType
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.encoding
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.length
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.nullable
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.ordinalPosition
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.precision
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.primaryKey
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.oracleColumns.scale
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.oracleTables.table
       | |
        resource.sourceConfig.oracleSourceConfig.includeObjects.oracleSchemas.schema
       | |
        resource.sourceConfig.oracleSourceConfig.maxConcurrentBackfillTasks
       | |
        resource.sourceConfig.oracleSourceConfig.maxConcurrentCdcTasks
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.column
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.dataType
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.length
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.nullable
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.ordinalPosition
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.precision
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.primaryKey
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.scale
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.postgresqlTables.table
       | |
        resource.sourceConfig.postgresqlSourceConfig.excludeObjects.postgresqlSchemas.schema
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.column
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.dataType
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.length
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.nullable
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.ordinalPosition
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.precision
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.primaryKey
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.postgresqlColumns.scale
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.postgresqlTables.table
       | |
        resource.sourceConfig.postgresqlSourceConfig.includeObjects.postgresqlSchemas.schema
       | |
        resource.sourceConfig.postgresqlSourceConfig.maxConcurrentBackfillTasks
       | |
        resource.sourceConfig.postgresqlSourceConfig.publication
       | |
        resource.sourceConfig.postgresqlSourceConfig.replicationSlot
       | |
        resource.sourceConfig.salesforceSourceConfig.excludeObjects.objects.fields.dataType
       | |
        resource.sourceConfig.salesforceSourceConfig.excludeObjects.objects.fields.name
       | |
        resource.sourceConfig.salesforceSourceConfig.excludeObjects.objects.fields.nillable
       | |
        resource.sourceConfig.salesforceSourceConfig.excludeObjects.objects.objectName
       | |
        resource.sourceConfig.salesforceSourceConfig.includeObjects.objects.fields.dataType
       | |
        resource.sourceConfig.salesforceSourceConfig.includeObjects.objects.fields.name
       | |
        resource.sourceConfig.salesforceSourceConfig.includeObjects.objects.fields.nillable
       | |
        resource.sourceConfig.salesforceSourceConfig.includeObjects.objects.objectName
       | |
        resource.sourceConfig.salesforceSourceConfig.pollingInterval
       | |
        resource.sourceConfig.sourceConnectionProfile
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.schema
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.column
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.dataType
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.length
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.nullable
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.ordinalPosition
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.precision
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.primaryKey
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.columns.scale
       | |
        resource.sourceConfig.sqlServerSourceConfig.excludeObjects.schemas.tables.table
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.schema
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.column
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.dataType
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.length
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.nullable
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.ordinalPosition
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.precision
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.primaryKey
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.columns.scale
       | |
        resource.sourceConfig.sqlServerSourceConfig.includeObjects.schemas.tables.table
       | |
        resource.sourceConfig.sqlServerSourceConfig.maxConcurrentBackfillTasks
       | |
        resource.sourceConfig.sqlServerSourceConfig.maxConcurrentCdcTasks
       | |
        resource.state
       |