From 74f69496908c78495ddeb872c367d97131de5ed8 Mon Sep 17 00:00:00 2001 From: Michael Bridgen Date: Thu, 16 Feb 2023 15:11:48 +0000 Subject: [PATCH 1/2] Update go.mod to use upstream-v4.53.1 from fork (`go mod tidy` replaces this with a commit SHA1) Signed-off-by: Michael Bridgen --- provider/go.mod | 2 +- provider/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/provider/go.mod b/provider/go.mod index 50094a484d..ac3c2035cd 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -11,7 +11,7 @@ require ( replace ( github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9 - github.com/hashicorp/terraform-provider-google-beta => github.com/pulumi/terraform-provider-google-beta v0.0.0-20230131222603-7068d3cf5711 + github.com/hashicorp/terraform-provider-google-beta => github.com/pulumi/terraform-provider-google-beta v0.0.0-20230216140231-387f8adeb6a7 github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 ) diff --git a/provider/go.sum b/provider/go.sum index 4d9773fde7..de72128d3a 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1555,8 +1555,8 @@ github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Di github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9 h1:JMw+t5I+6E8Lna7JF+ghAoOLOl23UIbshJyRNP+K1HU= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9/go.mod h1:mYPs/uchNcBq7AclQv9QUtSf9iNcfp1Ag21jqTlDf2M= -github.com/pulumi/terraform-provider-google-beta v0.0.0-20230131222603-7068d3cf5711 h1:5Ysh5Be8Pb8xjKcE/Ql3L/sFbcqi1HgBhvTXFZss18o= -github.com/pulumi/terraform-provider-google-beta v0.0.0-20230131222603-7068d3cf5711/go.mod h1:LcpN8YCNx8yB54Hs54Flx34cNVWQys6FIU8ZeeGEU50= +github.com/pulumi/terraform-provider-google-beta v0.0.0-20230216140231-387f8adeb6a7 h1:6i9RZR8MPsjyholYjhmH7dhJUconLj3Y4BbccssqnXg= +github.com/pulumi/terraform-provider-google-beta v0.0.0-20230216140231-387f8adeb6a7/go.mod h1:LcpN8YCNx8yB54Hs54Flx34cNVWQys6FIU8ZeeGEU50= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= From 573c01c1eada372cfa4536c3017d49d9c9c7e0a8 Mon Sep 17 00:00:00 2001 From: Michael Bridgen Date: Thu, 16 Feb 2023 15:37:21 +0000 Subject: [PATCH 2/2] Update terraform-provider-gcp to v4.53.1 Following the prior commit, which bumped the version of the forked upstream, - update provider/resources.go to have mappings for new resources reported by `make tfgen` - rename a field for apigee_addons_config, because .NET doesn't like repeating names - give the cloudbuildv2_connection_iam_* resources a pointer to docs which cover all of them - run `make tfgen build_sdks` to update the schema and SDKs Signed-off-by: Michael Bridgen Give new CloudBuildv2 resources valid doc links The docs for these cloudbuildv2_connection_iam_* resources are in cloudbuildv2_connection_iam.html.markdown. Signed-off-by: Michael Bridgen --- provider/cmd/pulumi-resource-gcp/schema.json | 2599 +++++- provider/resources.go | 27 + sdk/dotnet/Alloydb/Backup.cs | 19 +- sdk/dotnet/Alloydb/Cluster.cs | 85 +- sdk/dotnet/Alloydb/Instance.cs | 25 +- sdk/dotnet/Apigee/AddonsConfig.cs | 267 + ...figAddonsConfigAdvancedApiOpsConfigArgs.cs | 26 + ...AddonsConfigAdvancedApiOpsConfigGetArgs.cs | 26 + ...ConfigAddonsConfigApiSecurityConfigArgs.cs | 32 + ...figAddonsConfigApiSecurityConfigGetArgs.cs | 32 + .../Inputs/AddonsConfigAddonsConfigArgs.cs | 55 + ...ddonsConfigConnectorsPlatformConfigArgs.cs | 32 + ...nsConfigConnectorsPlatformConfigGetArgs.cs | 32 + .../Inputs/AddonsConfigAddonsConfigGetArgs.cs | 55 + ...ConfigAddonsConfigIntegrationConfigArgs.cs | 26 + ...figAddonsConfigIntegrationConfigGetArgs.cs | 26 + ...onfigAddonsConfigMonetizationConfigArgs.cs | 26 + ...igAddonsConfigMonetizationConfigGetArgs.cs | 26 + .../Outputs/AddonsConfigAddonsConfig.cs | 61 + ...sConfigAddonsConfigAdvancedApiOpsConfig.cs | 27 + ...donsConfigAddonsConfigApiSecurityConfig.cs | 35 + ...figAddonsConfigConnectorsPlatformConfig.cs | 35 + ...donsConfigAddonsConfigIntegrationConfig.cs | 27 + ...onsConfigAddonsConfigMonetizationConfig.cs | 27 + .../CloudBuildV2/ConnectionIAMBinding.cs | 211 + .../CloudBuildV2/ConnectionIAMMember.cs | 201 + .../CloudBuildV2/ConnectionIAMPolicy.cs | 180 + .../ConnectionIAMBindingConditionArgs.cs | 29 + .../ConnectionIAMBindingConditionGetArgs.cs | 29 + .../ConnectionIAMMemberConditionArgs.cs | 29 + .../ConnectionIAMMemberConditionGetArgs.cs | 29 + .../Outputs/ConnectionIAMBindingCondition.cs | 33 + .../Outputs/ConnectionIAMMemberCondition.cs | 33 + sdk/dotnet/Compute/ExternalVpnGateway.cs | 30 + sdk/dotnet/Compute/GetInstanceGroupManager.cs | 4 + sdk/dotnet/Compute/GetInstanceTemplate.cs | 7 + ...GroupManagerInstanceLifecyclePolicyArgs.cs | 26 + ...upManagerInstanceLifecyclePolicyGetArgs.cs | 26 + ...GroupManagerInstanceLifecyclePolicyArgs.cs | 27 + ...upManagerInstanceLifecyclePolicyGetArgs.cs | 27 + sdk/dotnet/Compute/InstanceGroupManager.cs | 18 + sdk/dotnet/Compute/InstanceTemplate.cs | 18 + sdk/dotnet/Compute/Network.cs | 21 +- ...oupManagerInstanceLifecyclePolicyResult.cs | 24 + ...anceGroupManagerInstanceLifecyclePolicy.cs | 27 + ...anceGroupManagerInstanceLifecyclePolicy.cs | 28 + .../Compute/RegionInstanceGroupManager.cs | 18 + sdk/dotnet/Compute/RegionTargetTcpProxy.cs | 10 + sdk/dotnet/DataFusion/Instance.cs | 12 - .../Inputs/StreamBackfillAllArgs.cs | 14 + .../Inputs/StreamBackfillAllGetArgs.cs | 14 + ...eamBackfillAllOracleExcludedObjectsArgs.cs | 33 + ...BackfillAllOracleExcludedObjectsGetArgs.cs | 33 + ...llOracleExcludedObjectsOracleSchemaArgs.cs | 39 + ...racleExcludedObjectsOracleSchemaGetArgs.cs | 39 + ...ludedObjectsOracleSchemaOracleTableArgs.cs | 39 + ...edObjectsOracleSchemaOracleTableGetArgs.cs | 39 + ...OracleSchemaOracleTableOracleColumnArgs.cs | 75 + ...cleSchemaOracleTableOracleColumnGetArgs.cs | 75 + ...ackfillAllPostgresqlExcludedObjectsArgs.cs | 33 + ...fillAllPostgresqlExcludedObjectsGetArgs.cs | 33 + ...esqlExcludedObjectsPostgresqlSchemaArgs.cs | 39 + ...lExcludedObjectsPostgresqlSchemaGetArgs.cs | 39 + ...ectsPostgresqlSchemaPostgresqlTableArgs.cs | 39 + ...sPostgresqlSchemaPostgresqlTableGetArgs.cs | 39 + ...hemaPostgresqlTablePostgresqlColumnArgs.cs | 69 + ...aPostgresqlTablePostgresqlColumnGetArgs.cs | 69 + .../Inputs/StreamSourceConfigArgs.cs | 18 +- .../Inputs/StreamSourceConfigGetArgs.cs | 18 +- ...treamSourceConfigOracleSourceConfigArgs.cs | 60 + ...gOracleSourceConfigDropLargeObjectsArgs.cs | 20 + ...acleSourceConfigDropLargeObjectsGetArgs.cs | 20 + ...figOracleSourceConfigExcludeObjectsArgs.cs | 33 + ...OracleSourceConfigExcludeObjectsGetArgs.cs | 33 + ...rceConfigExcludeObjectsOracleSchemaArgs.cs | 39 + ...ConfigExcludeObjectsOracleSchemaGetArgs.cs | 39 + ...cludeObjectsOracleSchemaOracleTableArgs.cs | 39 + ...deObjectsOracleSchemaOracleTableGetArgs.cs | 39 + ...OracleSchemaOracleTableOracleColumnArgs.cs | 75 + ...cleSchemaOracleTableOracleColumnGetArgs.cs | 75 + ...amSourceConfigOracleSourceConfigGetArgs.cs | 60 + ...figOracleSourceConfigIncludeObjectsArgs.cs | 33 + ...OracleSourceConfigIncludeObjectsGetArgs.cs | 33 + ...rceConfigIncludeObjectsOracleSchemaArgs.cs | 39 + ...ConfigIncludeObjectsOracleSchemaGetArgs.cs | 39 + ...cludeObjectsOracleSchemaOracleTableArgs.cs | 39 + ...deObjectsOracleSchemaOracleTableGetArgs.cs | 39 + ...OracleSchemaOracleTableOracleColumnArgs.cs | 75 + ...cleSchemaOracleTableOracleColumnGetArgs.cs | 75 + ...racleSourceConfigStreamLargeObjectsArgs.cs | 20 + ...leSourceConfigStreamLargeObjectsGetArgs.cs | 20 + ...mSourceConfigPostgresqlSourceConfigArgs.cs | 55 + ...ostgresqlSourceConfigExcludeObjectsArgs.cs | 33 + ...gresqlSourceConfigExcludeObjectsGetArgs.cs | 33 + ...onfigExcludeObjectsPostgresqlSchemaArgs.cs | 39 + ...igExcludeObjectsPostgresqlSchemaGetArgs.cs | 39 + ...ectsPostgresqlSchemaPostgresqlTableArgs.cs | 39 + ...sPostgresqlSchemaPostgresqlTableGetArgs.cs | 39 + ...hemaPostgresqlTablePostgresqlColumnArgs.cs | 69 + ...aPostgresqlTablePostgresqlColumnGetArgs.cs | 69 + ...urceConfigPostgresqlSourceConfigGetArgs.cs | 55 + ...ostgresqlSourceConfigIncludeObjectsArgs.cs | 33 + ...gresqlSourceConfigIncludeObjectsGetArgs.cs | 33 + ...onfigIncludeObjectsPostgresqlSchemaArgs.cs | 39 + ...igIncludeObjectsPostgresqlSchemaGetArgs.cs | 39 + ...ectsPostgresqlSchemaPostgresqlTableArgs.cs | 39 + ...sPostgresqlSchemaPostgresqlTableGetArgs.cs | 39 + ...hemaPostgresqlTablePostgresqlColumnArgs.cs | 69 + ...aPostgresqlTablePostgresqlColumnGetArgs.cs | 69 + .../Datastream/Outputs/StreamBackfillAll.cs | 19 +- .../StreamBackfillAllOracleExcludedObjects.cs | 28 + ...illAllOracleExcludedObjectsOracleSchema.cs | 36 + ...eExcludedObjectsOracleSchemaOracleTable.cs | 36 + ...ectsOracleSchemaOracleTableOracleColumn.cs | 85 + ...eamBackfillAllPostgresqlExcludedObjects.cs | 28 + ...stgresqlExcludedObjectsPostgresqlSchema.cs | 36 + ...dObjectsPostgresqlSchemaPostgresqlTable.cs | 36 + ...qlSchemaPostgresqlTablePostgresqlColumn.cs | 78 + .../Datastream/Outputs/StreamSourceConfig.cs | 20 +- .../StreamSourceConfigOracleSourceConfig.cs | 67 + ...onfigOracleSourceConfigDropLargeObjects.cs | 21 + ...eConfigOracleSourceConfigExcludeObjects.cs | 28 + ...eSourceConfigExcludeObjectsOracleSchema.cs | 36 + ...igExcludeObjectsOracleSchemaOracleTable.cs | 36 + ...ectsOracleSchemaOracleTableOracleColumn.cs | 85 + ...eConfigOracleSourceConfigIncludeObjects.cs | 28 + ...eSourceConfigIncludeObjectsOracleSchema.cs | 36 + ...igIncludeObjectsOracleSchemaOracleTable.cs | 36 + ...ectsOracleSchemaOracleTableOracleColumn.cs | 85 + ...figOracleSourceConfigStreamLargeObjects.cs | 21 + ...treamSourceConfigPostgresqlSourceConfig.cs | 61 + ...figPostgresqlSourceConfigExcludeObjects.cs | 28 + ...rceConfigExcludeObjectsPostgresqlSchema.cs | 36 + ...eObjectsPostgresqlSchemaPostgresqlTable.cs | 36 + ...qlSchemaPostgresqlTablePostgresqlColumn.cs | 78 + ...figPostgresqlSourceConfigIncludeObjects.cs | 28 + ...rceConfigIncludeObjectsPostgresqlSchema.cs | 36 + ...eObjectsPostgresqlSchemaPostgresqlTable.cs | 36 + ...qlSchemaPostgresqlTablePostgresqlColumn.cs | 78 + sdk/dotnet/Datastream/Stream.cs | 284 + sdk/dotnet/Eventarc/Channel.cs | 9 +- sdk/dotnet/Eventarc/GoogleChannelConfig.cs | 9 +- sdk/dotnet/Firebase/AndroidApp.cs | 6 +- sdk/dotnet/Firebase/AppleApp.cs | 18 +- sdk/dotnet/Firestore/Database.cs | 283 + .../SecurityCenter/InstanceIamBinding.cs | 12 - .../SecurityCenter/InstanceIamMember.cs | 12 - .../SecurityCenter/InstanceIamPolicy.cs | 12 - sdk/dotnet/Sql/DatabaseInstance.cs | 1 + ...baseInstanceSettingsIpConfigurationArgs.cs | 6 + ...eInstanceSettingsIpConfigurationGetArgs.cs | 6 + ...DatabaseInstanceSettingsIpConfiguration.cs | 7 + ...aseInstanceSettingIpConfigurationResult.cs | 4 + ...cesInstanceSettingIpConfigurationResult.cs | 4 + sdk/dotnet/Vertex/AiFeatureStore.cs | 60 + sdk/dotnet/Vertex/AiFeatureStoreEntityType.cs | 44 + sdk/go/gcp/alloydb/backup.go | 18 +- sdk/go/gcp/alloydb/cluster.go | 76 +- sdk/go/gcp/alloydb/instance.go | 18 +- sdk/go/gcp/apigee/addonsConfig.go | 406 + sdk/go/gcp/apigee/init.go | 7 + sdk/go/gcp/apigee/pulumiTypes.go | 990 +++ .../gcp/cloudbuildv2/connectionIAMBinding.go | 334 + .../gcp/cloudbuildv2/connectionIAMMember.go | 334 + .../gcp/cloudbuildv2/connectionIAMPolicy.go | 307 + sdk/go/gcp/cloudbuildv2/init.go | 21 + sdk/go/gcp/cloudbuildv2/pulumiTypes.go | 334 + sdk/go/gcp/compute/externalVpnGateway.go | 15 + sdk/go/gcp/compute/getInstanceGroupManager.go | 45 +- sdk/go/gcp/compute/getInstanceTemplate.go | 7 + sdk/go/gcp/compute/instanceGroupManager.go | 17 + sdk/go/gcp/compute/instanceTemplate.go | 15 + sdk/go/gcp/compute/network.go | 42 +- sdk/go/gcp/compute/pulumiTypes.go | 554 +- sdk/go/gcp/compute/pulumiTypes1.go | 366 + .../gcp/compute/regionInstanceGroupManager.go | 17 + sdk/go/gcp/compute/regionTargetTcpProxy.go | 10 + sdk/go/gcp/datafusion/instance.go | 13 +- sdk/go/gcp/datastream/pulumiTypes.go | 7368 +++++++++++++---- sdk/go/gcp/datastream/stream.go | 248 + sdk/go/gcp/eventarc/channel.go | 8 +- sdk/go/gcp/eventarc/googleChannelConfig.go | 8 +- sdk/go/gcp/firebase/androidApp.go | 12 +- sdk/go/gcp/firebase/appleApp.go | 36 +- sdk/go/gcp/firestore/database.go | 442 + sdk/go/gcp/firestore/init.go | 7 + sdk/go/gcp/redis/instance.go | 8 +- .../gcp/securitycenter/instanceIamBinding.go | 13 +- .../gcp/securitycenter/instanceIamMember.go | 13 +- .../gcp/securitycenter/instanceIamPolicy.go | 13 +- sdk/go/gcp/sql/databaseInstance.go | 5 +- sdk/go/gcp/sql/pulumiTypes.go | 77 +- sdk/go/gcp/vertex/aiFeatureStore.go | 69 + sdk/go/gcp/vertex/aiFeatureStoreEntityType.go | 44 + .../java/com/pulumi/gcp/alloydb/Backup.java | 22 +- .../java/com/pulumi/gcp/alloydb/Cluster.java | 53 +- .../java/com/pulumi/gcp/alloydb/Instance.java | 26 +- .../com/pulumi/gcp/apigee/AddonsConfig.java | 275 + .../pulumi/gcp/apigee/AddonsConfigArgs.java | 126 + ...gAddonsConfigAdvancedApiOpsConfigArgs.java | 83 + ...nfigAddonsConfigApiSecurityConfigArgs.java | 121 + .../inputs/AddonsConfigAddonsConfigArgs.java | 255 + ...onsConfigConnectorsPlatformConfigArgs.java | 121 + ...nfigAddonsConfigIntegrationConfigArgs.java | 83 + ...figAddonsConfigMonetizationConfigArgs.java | 83 + .../gcp/apigee/inputs/AddonsConfigState.java | 125 + .../outputs/AddonsConfigAddonsConfig.java | 150 + ...onfigAddonsConfigAdvancedApiOpsConfig.java | 56 + ...nsConfigAddonsConfigApiSecurityConfig.java | 77 + ...gAddonsConfigConnectorsPlatformConfig.java | 77 + ...nsConfigAddonsConfigIntegrationConfig.java | 56 + ...sConfigAddonsConfigMonetizationConfig.java | 56 + .../cloudbuildv2/ConnectionIAMBinding.java | 176 + .../ConnectionIAMBindingArgs.java | 228 + .../gcp/cloudbuildv2/ConnectionIAMMember.java | 175 + .../cloudbuildv2/ConnectionIAMMemberArgs.java | 223 + .../gcp/cloudbuildv2/ConnectionIAMPolicy.java | 159 + .../cloudbuildv2/ConnectionIAMPolicyArgs.java | 183 + .../ConnectionIAMBindingConditionArgs.java | 99 + .../inputs/ConnectionIAMBindingState.java | 263 + .../ConnectionIAMMemberConditionArgs.java | 99 + .../inputs/ConnectionIAMMemberState.java | 258 + .../inputs/ConnectionIAMPolicyState.java | 219 + .../ConnectionIAMBindingCondition.java | 72 + .../outputs/ConnectionIAMMemberCondition.java | 72 + .../gcp/compute/ExternalVpnGateway.java | 15 + .../gcp/compute/ExternalVpnGatewayArgs.java | 38 + .../gcp/compute/InstanceGroupManager.java | 15 + .../gcp/compute/InstanceGroupManagerArgs.java | 38 + .../pulumi/gcp/compute/InstanceTemplate.java | 14 + .../gcp/compute/InstanceTemplateArgs.java | 37 + .../java/com/pulumi/gcp/compute/Network.java | 14 +- .../com/pulumi/gcp/compute/NetworkArgs.java | 28 +- .../compute/RegionInstanceGroupManager.java | 15 + .../RegionInstanceGroupManagerArgs.java | 38 + .../gcp/compute/RegionTargetTcpProxy.java | 23 +- .../inputs/ExternalVpnGatewayState.java | 38 + ...oupManagerInstanceLifecyclePolicyArgs.java | 83 + .../inputs/InstanceGroupManagerState.java | 38 + .../compute/inputs/InstanceTemplateState.java | 37 + .../gcp/compute/inputs/NetworkState.java | 28 +- ...oupManagerInstanceLifecyclePolicyArgs.java | 87 + .../RegionInstanceGroupManagerState.java | 38 + ...ceGroupManagerInstanceLifecyclePolicy.java | 46 + .../GetInstanceGroupManagerResult.java | 16 + .../outputs/GetInstanceTemplateResult.java | 23 + ...ceGroupManagerInstanceLifecyclePolicy.java | 56 + ...ceGroupManagerInstanceLifecyclePolicy.java | 58 + .../com/pulumi/gcp/datafusion/Instance.java | 3 - .../com/pulumi/gcp/datastream/Stream.java | 241 + .../inputs/StreamBackfillAllArgs.java | 84 + ...mBackfillAllOracleExcludedObjectsArgs.java | 98 + ...OracleExcludedObjectsOracleSchemaArgs.java | 138 + ...dedObjectsOracleSchemaOracleTableArgs.java | 138 + ...acleSchemaOracleTableOracleColumnArgs.java | 385 + ...kfillAllPostgresqlExcludedObjectsArgs.java | 98 + ...qlExcludedObjectsPostgresqlSchemaArgs.java | 138 + ...tsPostgresqlSchemaPostgresqlTableArgs.java | 138 + ...maPostgresqlTablePostgresqlColumnArgs.java | 348 + .../inputs/StreamSourceConfigArgs.java | 97 +- ...eamSourceConfigOracleSourceConfigArgs.java | 288 + ...racleSourceConfigDropLargeObjectsArgs.java | 28 + ...gOracleSourceConfigExcludeObjectsArgs.java | 98 + ...eConfigExcludeObjectsOracleSchemaArgs.java | 138 + ...udeObjectsOracleSchemaOracleTableArgs.java | 138 + ...acleSchemaOracleTableOracleColumnArgs.java | 385 + ...gOracleSourceConfigIncludeObjectsArgs.java | 98 + ...eConfigIncludeObjectsOracleSchemaArgs.java | 138 + ...udeObjectsOracleSchemaOracleTableArgs.java | 138 + ...acleSchemaOracleTableOracleColumnArgs.java | 385 + ...cleSourceConfigStreamLargeObjectsArgs.java | 28 + ...ourceConfigPostgresqlSourceConfigArgs.java | 256 + ...tgresqlSourceConfigExcludeObjectsArgs.java | 98 + ...figExcludeObjectsPostgresqlSchemaArgs.java | 138 + ...tsPostgresqlSchemaPostgresqlTableArgs.java | 138 + ...maPostgresqlTablePostgresqlColumnArgs.java | 348 + ...tgresqlSourceConfigIncludeObjectsArgs.java | 98 + ...figIncludeObjectsPostgresqlSchemaArgs.java | 138 + ...tsPostgresqlSchemaPostgresqlTableArgs.java | 138 + ...maPostgresqlTablePostgresqlColumnArgs.java | 348 + .../datastream/outputs/StreamBackfillAll.java | 46 + ...treamBackfillAllOracleExcludedObjects.java | 60 + ...lAllOracleExcludedObjectsOracleSchema.java | 82 + ...xcludedObjectsOracleSchemaOracleTable.java | 82 + ...tsOracleSchemaOracleTableOracleColumn.java | 220 + ...mBackfillAllPostgresqlExcludedObjects.java | 60 + ...gresqlExcludedObjectsPostgresqlSchema.java | 82 + ...bjectsPostgresqlSchemaPostgresqlTable.java | 82 + ...SchemaPostgresqlTablePostgresqlColumn.java | 200 + .../outputs/StreamSourceConfig.java | 60 +- .../StreamSourceConfigOracleSourceConfig.java | 168 + ...figOracleSourceConfigDropLargeObjects.java | 32 + ...onfigOracleSourceConfigExcludeObjects.java | 60 + ...ourceConfigExcludeObjectsOracleSchema.java | 82 + ...ExcludeObjectsOracleSchemaOracleTable.java | 82 + ...tsOracleSchemaOracleTableOracleColumn.java | 220 + ...onfigOracleSourceConfigIncludeObjects.java | 60 + ...ourceConfigIncludeObjectsOracleSchema.java | 82 + ...IncludeObjectsOracleSchemaOracleTable.java | 82 + ...tsOracleSchemaOracleTableOracleColumn.java | 220 + ...gOracleSourceConfigStreamLargeObjects.java | 32 + ...eamSourceConfigPostgresqlSourceConfig.java | 149 + ...gPostgresqlSourceConfigExcludeObjects.java | 60 + ...eConfigExcludeObjectsPostgresqlSchema.java | 82 + ...bjectsPostgresqlSchemaPostgresqlTable.java | 82 + ...SchemaPostgresqlTablePostgresqlColumn.java | 200 + ...gPostgresqlSourceConfigIncludeObjects.java | 60 + ...eConfigIncludeObjectsPostgresqlSchema.java | 82 + ...bjectsPostgresqlSchemaPostgresqlTable.java | 82 + ...SchemaPostgresqlTablePostgresqlColumn.java | 200 + .../java/com/pulumi/gcp/eventarc/Channel.java | 10 +- .../gcp/eventarc/GoogleChannelConfig.java | 10 +- .../com/pulumi/gcp/firebase/AndroidApp.java | 4 +- .../pulumi/gcp/firebase/AndroidAppArgs.java | 8 +- .../com/pulumi/gcp/firebase/AppleApp.java | 12 +- .../com/pulumi/gcp/firebase/AppleAppArgs.java | 24 +- .../gcp/firebase/inputs/AndroidAppState.java | 8 +- .../gcp/firebase/inputs/AppleAppState.java | 24 +- .../com/pulumi/gcp/firestore/Database.java | 247 + .../pulumi/gcp/firestore/DatabaseArgs.java | 318 + .../gcp/firestore/inputs/DatabaseState.java | 447 + .../securitycenter/InstanceIamBinding.java | 3 - .../gcp/securitycenter/InstanceIamMember.java | 3 - .../gcp/securitycenter/InstanceIamPolicy.java | 3 - .../com/pulumi/gcp/sql/DatabaseInstance.java | 1 + ...seInstanceSettingsIpConfigurationArgs.java | 37 + ...tabaseInstanceSettingsIpConfiguration.java | 20 + ...atabaseInstanceSettingIpConfiguration.java | 12 + ...stancesInstanceSettingIpConfiguration.java | 12 + .../com/pulumi/gcp/vertex/AiFeatureStore.java | 64 + .../pulumi/gcp/vertex/AiFeatureStoreArgs.java | 50 + .../gcp/vertex/AiFeatureStoreEntityType.java | 35 + .../vertex/AiFeatureStoreEntityTypeArgs.java | 83 + .../inputs/AiFeatureStoreEntityTypeState.java | 83 + .../vertex/inputs/AiFeatureStoreState.java | 50 + sdk/nodejs/alloydb/backup.ts | 16 +- sdk/nodejs/alloydb/cluster.ts | 51 +- sdk/nodejs/alloydb/instance.ts | 19 +- sdk/nodejs/apigee/addonsConfig.ts | 210 + sdk/nodejs/apigee/index.ts | 8 + .../cloudbuildv2/connectionIAMBinding.ts | 176 + .../cloudbuildv2/connectionIAMMember.ts | 176 + .../cloudbuildv2/connectionIAMPolicy.ts | 158 + sdk/nodejs/cloudbuildv2/index.ts | 24 + sdk/nodejs/compute/externalVpnGateway.ts | 14 + sdk/nodejs/compute/getInstanceGroupManager.ts | 1 + sdk/nodejs/compute/getInstanceTemplate.ts | 4 + sdk/nodejs/compute/instanceGroupManager.ts | 14 + sdk/nodejs/compute/instanceTemplate.ts | 14 + sdk/nodejs/compute/network.ts | 21 +- .../compute/regionInstanceGroupManager.ts | 14 + sdk/nodejs/compute/regionTargetTcpProxy.ts | 10 + sdk/nodejs/datafusion/instance.ts | 9 - sdk/nodejs/datastream/stream.ts | 170 + sdk/nodejs/eventarc/channel.ts | 6 +- sdk/nodejs/eventarc/googleChannelConfig.ts | 6 +- sdk/nodejs/firebase/androidApp.ts | 6 +- sdk/nodejs/firebase/appleApp.ts | 18 +- sdk/nodejs/firestore/database.ts | 252 + sdk/nodejs/firestore/index.ts | 8 + sdk/nodejs/redis/instance.ts | 4 +- .../securitycenter/instanceIamBinding.ts | 9 - .../securitycenter/instanceIamMember.ts | 9 - .../securitycenter/instanceIamPolicy.ts | 9 - sdk/nodejs/sql/databaseInstance.ts | 1 + sdk/nodejs/tsconfig.json | 5 + sdk/nodejs/types/input.ts | 609 +- sdk/nodejs/types/output.ts | 615 +- sdk/nodejs/vertex/aiFeatureStore.ts | 46 + sdk/nodejs/vertex/aiFeatureStoreEntityType.ts | 36 + sdk/python/pulumi_gcp/__init__.py | 40 + sdk/python/pulumi_gcp/alloydb/backup.py | 46 +- sdk/python/pulumi_gcp/alloydb/cluster.py | 92 +- sdk/python/pulumi_gcp/alloydb/instance.py | 44 +- sdk/python/pulumi_gcp/apigee/__init__.py | 1 + sdk/python/pulumi_gcp/apigee/_inputs.py | 250 + sdk/python/pulumi_gcp/apigee/addons_config.py | 390 + sdk/python/pulumi_gcp/apigee/outputs.py | 261 + .../pulumi_gcp/cloudbuildv2/__init__.py | 3 + sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py | 80 + .../cloudbuildv2/connection_iam_binding.py | 438 + .../cloudbuildv2/connection_iam_member.py | 438 + .../cloudbuildv2/connection_iam_policy.py | 360 + sdk/python/pulumi_gcp/cloudbuildv2/outputs.py | 56 + sdk/python/pulumi_gcp/compute/_inputs.py | 50 + .../compute/external_vpn_gateway.py | 47 + .../compute/get_instance_group_manager.py | 12 +- .../compute/get_instance_template.py | 15 +- .../compute/instance_group_manager.py | 47 + .../pulumi_gcp/compute/instance_template.py | 47 + sdk/python/pulumi_gcp/compute/network.py | 49 +- sdk/python/pulumi_gcp/compute/outputs.py | 89 + .../compute/region_instance_group_manager.py | 47 + .../compute/region_target_tcp_proxy.py | 20 + sdk/python/pulumi_gcp/datafusion/instance.py | 22 +- sdk/python/pulumi_gcp/datastream/_inputs.py | 2667 +++++- sdk/python/pulumi_gcp/datastream/outputs.py | 2785 ++++++- sdk/python/pulumi_gcp/datastream/stream.py | 328 + sdk/python/pulumi_gcp/eventarc/channel.py | 12 +- .../eventarc/google_channel_config.py | 12 +- sdk/python/pulumi_gcp/firebase/android_app.py | 14 +- sdk/python/pulumi_gcp/firebase/apple_app.py | 42 +- sdk/python/pulumi_gcp/firestore/__init__.py | 1 + sdk/python/pulumi_gcp/firestore/database.py | 602 ++ .../securitycenter/instance_iam_binding.py | 22 +- .../securitycenter/instance_iam_member.py | 22 +- .../securitycenter/instance_iam_policy.py | 22 +- sdk/python/pulumi_gcp/sql/_inputs.py | 16 + .../pulumi_gcp/sql/database_instance.py | 2 + sdk/python/pulumi_gcp/sql/outputs.py | 28 + .../pulumi_gcp/vertex/ai_feature_store.py | 110 + .../vertex/ai_feature_store_entity_type.py | 114 +- 412 files changed, 45285 insertions(+), 3914 deletions(-) create mode 100644 sdk/dotnet/Apigee/AddonsConfig.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.cs create mode 100644 sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigGetArgs.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfig.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigApiSecurityConfig.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigIntegrationConfig.cs create mode 100644 sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigMonetizationConfig.cs create mode 100644 sdk/dotnet/CloudBuildV2/ConnectionIAMBinding.cs create mode 100644 sdk/dotnet/CloudBuildV2/ConnectionIAMMember.cs create mode 100644 sdk/dotnet/CloudBuildV2/ConnectionIAMPolicy.cs create mode 100644 sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionArgs.cs create mode 100644 sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionGetArgs.cs create mode 100644 sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionArgs.cs create mode 100644 sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionGetArgs.cs create mode 100644 sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMBindingCondition.cs create mode 100644 sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMMemberCondition.cs create mode 100644 sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs create mode 100644 sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs create mode 100644 sdk/dotnet/Compute/Outputs/GetInstanceGroupManagerInstanceLifecyclePolicyResult.cs create mode 100644 sdk/dotnet/Compute/Outputs/InstanceGroupManagerInstanceLifecyclePolicy.cs create mode 100644 sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs create mode 100644 sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfig.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfig.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.cs create mode 100644 sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs create mode 100644 sdk/dotnet/Firestore/Database.cs create mode 100644 sdk/go/gcp/apigee/addonsConfig.go create mode 100644 sdk/go/gcp/cloudbuildv2/connectionIAMBinding.go create mode 100644 sdk/go/gcp/cloudbuildv2/connectionIAMMember.go create mode 100644 sdk/go/gcp/cloudbuildv2/connectionIAMPolicy.go create mode 100644 sdk/go/gcp/firestore/database.go create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigApiSecurityConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigIntegrationConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigMonetizationConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBindingArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMemberArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingConditionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberConditionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMPolicyState.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMBindingCondition.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMMemberCondition.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerInstanceLifecyclePolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceGroupManagerInstanceLifecyclePolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/firestore/DatabaseArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/gcp/firestore/inputs/DatabaseState.java create mode 100644 sdk/nodejs/apigee/addonsConfig.ts create mode 100644 sdk/nodejs/cloudbuildv2/connectionIAMBinding.ts create mode 100644 sdk/nodejs/cloudbuildv2/connectionIAMMember.ts create mode 100644 sdk/nodejs/cloudbuildv2/connectionIAMPolicy.ts create mode 100644 sdk/nodejs/firestore/database.ts create mode 100644 sdk/python/pulumi_gcp/apigee/addons_config.py create mode 100644 sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py create mode 100644 sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py create mode 100644 sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py create mode 100644 sdk/python/pulumi_gcp/firestore/database.py diff --git a/provider/cmd/pulumi-resource-gcp/schema.json b/provider/cmd/pulumi-resource-gcp/schema.json index 0cc73940e8..adb0365624 100644 --- a/provider/cmd/pulumi-resource-gcp/schema.json +++ b/provider/cmd/pulumi-resource-gcp/schema.json @@ -3732,6 +3732,158 @@ "title" ] }, + "gcp:apigee/AddonsConfigAddonsConfig:AddonsConfigAddonsConfig": { + "properties": { + "advancedApiOpsConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfigAdvancedApiOpsConfig:AddonsConfigAddonsConfigAdvancedApiOpsConfig", + "description": "Configuration for the Monetization add-on.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "apiSecurityConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfigApiSecurityConfig:AddonsConfigAddonsConfigApiSecurityConfig", + "description": "Configuration for the Monetization add-on.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "connectorsPlatformConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfigConnectorsPlatformConfig:AddonsConfigAddonsConfigConnectorsPlatformConfig", + "description": "Configuration for the Monetization add-on.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "integrationConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfigIntegrationConfig:AddonsConfigAddonsConfigIntegrationConfig", + "description": "Configuration for the Monetization add-on.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "monetizationConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfigMonetizationConfig:AddonsConfigAddonsConfigMonetizationConfig", + "description": "Configuration for the Monetization add-on.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:apigee/AddonsConfigAddonsConfigAdvancedApiOpsConfig:AddonsConfigAddonsConfigAdvancedApiOpsConfig": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:apigee/AddonsConfigAddonsConfigApiSecurityConfig:AddonsConfigAddonsConfigApiSecurityConfig": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "expiresAt": { + "type": "string", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "expiresAt" + ] + } + } + }, + "gcp:apigee/AddonsConfigAddonsConfigConnectorsPlatformConfig:AddonsConfigAddonsConfigConnectorsPlatformConfig": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "expiresAt": { + "type": "string", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "expiresAt" + ] + } + } + }, + "gcp:apigee/AddonsConfigAddonsConfigIntegrationConfig:AddonsConfigAddonsConfigIntegrationConfig": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:apigee/AddonsConfigAddonsConfigMonetizationConfig:AddonsConfigAddonsConfigMonetizationConfig": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag that specifies whether the Advanced API Ops add-on is enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "gcp:apigee/EnvironmentIamBindingCondition:EnvironmentIamBindingCondition": { "properties": { "description": { @@ -18284,6 +18436,78 @@ "service" ] }, + "gcp:cloudbuildv2/ConnectionIAMBindingCondition:ConnectionIAMBindingCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, + "gcp:cloudbuildv2/ConnectionIAMMemberCondition:ConnectionIAMMemberCondition": { + "properties": { + "description": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "expression": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "title": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "expression", + "title" + ] + }, "gcp:cloudbuildv2/ConnectionInstallationState:ConnectionInstallationState": { "properties": { "actionUri": { @@ -34064,6 +34288,20 @@ "initialDelaySec" ] }, + "gcp:compute/InstanceGroupManagerInstanceLifecyclePolicy:InstanceGroupManagerInstanceLifecyclePolicy": { + "properties": { + "forceUpdateOnRepair": { + "type": "string", + "description": "), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "gcp:compute/InstanceGroupManagerNamedPort:InstanceGroupManagerNamedPort": { "properties": { "name": { @@ -38801,6 +39039,20 @@ "initialDelaySec" ] }, + "gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicy:RegionInstanceGroupManagerInstanceLifecyclePolicy": { + "properties": { + "forceUpdateOnRepair": { + "type": "string", + "description": "), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.\n- - -\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "gcp:compute/RegionInstanceGroupManagerNamedPort:RegionInstanceGroupManagerNamedPort": { "properties": { "name": { @@ -50242,6 +50494,27 @@ } } }, + "gcp:compute/getInstanceGroupManagerInstanceLifecyclePolicy:getInstanceGroupManagerInstanceLifecyclePolicy": { + "properties": { + "forceUpdateOnRepair": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "forceUpdateOnRepair" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "gcp:compute/getInstanceGroupManagerNamedPort:getInstanceGroupManagerNamedPort": { "properties": { "name": { @@ -76852,6 +77125,24 @@ "mapCase": false } } + }, + "oracleExcludedObjects": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjects:StreamBackfillAllOracleExcludedObjects", + "description": "PostgreSQL data source objects to avoid backfilling.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "postgresqlExcludedObjects": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjects:StreamBackfillAllPostgresqlExcludedObjects", + "description": "PostgreSQL data source objects to avoid backfilling.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } } }, "type": "object" @@ -77009,33 +77300,14 @@ } } }, - "gcp:datastream/StreamBackfillNone:StreamBackfillNone": { - "type": "object" - }, - "gcp:datastream/StreamDestinationConfig:StreamDestinationConfig": { + "gcp:datastream/StreamBackfillAllOracleExcludedObjects:StreamBackfillAllOracleExcludedObjects": { "properties": { - "bigqueryDestinationConfig": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig", - "description": "A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "destinationConnectionProfile": { - "type": "string", - "description": "Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n", - "language": { - "python": { - "mapCase": false - } + "oracleSchemas": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchema:StreamBackfillAllOracleExcludedObjectsOracleSchema" }, - "willReplaceOnChanges": true - }, - "gcsDestinationConfig": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig", - "description": "A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n", + "description": "Oracle schemas/databases in the database server\nStructure is documented below.\n", "language": { "python": { "mapCase": false @@ -77045,63 +77317,26 @@ }, "type": "object", "required": [ - "destinationConnectionProfile" + "oracleSchemas" ] }, - "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig": { + "gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchema:StreamBackfillAllOracleExcludedObjectsOracleSchema": { "properties": { - "dataFreshness": { - "type": "string", - "description": "The guaranteed data freshness (in seconds) when querying tables created by the stream.\nEditing this field will only affect new tables created in the future, but existing tables\nwill not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n", - "language": { - "python": { - "mapCase": false - } - } - }, - "singleTargetDataset": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset", - "description": "A single target dataset to which all data will be streamed.\nStructure is documented below.\n", + "oracleTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable" + }, + "description": "Tables in the database.\nStructure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "sourceHierarchyDatasets": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets", - "description": "Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.\nStructure is documented below.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset": { - "properties": { - "datasetId": { + "schema": { "type": "string", - "description": "Dataset ID in the format projects/{project}/datasets/{dataset_id}\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object", - "required": [ - "datasetId" - ] - }, - "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets": { - "properties": { - "datasetTemplate": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate", - "description": "Dataset template used for dynamic dataset creation.\nStructure is documented below.\n", + "description": "Schema name.\n", "language": { "python": { "mapCase": false @@ -77111,33 +77346,26 @@ }, "type": "object", "required": [ - "datasetTemplate" + "schema" ] }, - "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate": { + "gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable": { "properties": { - "datasetIdPrefix": { - "type": "string", - "description": "If supplied, every created dataset will have its name prefixed by the provided value.\nThe prefix and name will be separated by an underscore. i.e. _.\n", + "oracleColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn" + }, + "description": "Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "kmsKeyName": { - "type": "string", - "description": "Describes the Cloud KMS encryption key that will be used to protect destination BigQuery\ntable. The BigQuery Service Account associated with your project requires access to this\nencryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}.\nSee https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.\n", - "language": { - "python": { - "mapCase": false - } - }, - "willReplaceOnChanges": true - }, - "location": { + "table": { "type": "string", - "description": "The geographic location where the dataset should reside.\nSee https://cloud.google.com/bigquery/docs/locations for supported locations.\n", + "description": "Table name.\n", "language": { "python": { "mapCase": false @@ -77147,144 +77375,86 @@ }, "type": "object", "required": [ - "location" + "table" ] }, - "gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig": { + "gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn": { "properties": { - "avroFileFormat": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat", - "description": "AVRO file format configuration.\n", + "column": { + "type": "string", + "description": "Column name.\n", "language": { "python": { "mapCase": false } } }, - "fileRotationInterval": { + "dataType": { "type": "string", - "description": "The maximum duration for which new events are added before a file is closed and a new file is created.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n", + "description": "The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n", "language": { "python": { "mapCase": false } } }, - "fileRotationMb": { - "type": "integer", - "description": "The maximum file size to be saved in the bucket.\n", + "encoding": { + "type": "string", + "description": "Column encoding.\n", "language": { "python": { "mapCase": false } } }, - "jsonFileFormat": { - "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat", - "description": "JSON file format configuration.\nStructure is documented below.\n", + "length": { + "type": "integer", + "description": "Column length.\n", "language": { "python": { "mapCase": false } } }, - "path": { - "type": "string", - "description": "Path inside the Cloud Storage bucket to write data to.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "fileRotationInterval", - "fileRotationMb" - ] - } - } - }, - "gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat": { - "type": "object" - }, - "gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat": { - "properties": { - "compression": { - "type": "string", - "description": "Compression of the loaded JSON file.\nPossible values are `NO_COMPRESSION` and `GZIP`.\n", + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", "language": { "python": { "mapCase": false } } }, - "schemaFileFormat": { - "type": "string", - "description": "The schema file format along JSON data files.\nPossible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`.\n", - "language": { - "python": { - "mapCase": false - } - } - } - }, - "type": "object" - }, - "gcp:datastream/StreamSourceConfig:StreamSourceConfig": { - "properties": { - "mysqlSourceConfig": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig", - "description": "MySQL data source configuration.\nStructure is documented below.\n", + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", "language": { "python": { "mapCase": false } } }, - "sourceConnectionProfile": { - "type": "string", - "description": "Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n", - "language": { - "python": { - "mapCase": false - } - }, - "willReplaceOnChanges": true - } - }, - "type": "object", - "required": [ - "mysqlSourceConfig", - "sourceConnectionProfile" - ] - }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig": { - "properties": { - "excludeObjects": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects", - "description": "MySQL objects to exclude from the stream.\nStructure is documented below.\n", + "precision": { + "type": "integer", + "description": "Column precision.\n", "language": { "python": { "mapCase": false } } }, - "includeObjects": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects", - "description": "MySQL objects to retrieve from the source.\nStructure is documented below.\n", + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", "language": { "python": { "mapCase": false } } }, - "maxConcurrentCdcTasks": { + "scale": { "type": "integer", - "description": "Maximum number of concurrent CDC tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n", + "description": "Column scale.\n", "language": { "python": { "mapCase": false @@ -77296,19 +77466,25 @@ "language": { "nodejs": { "requiredOutputs": [ - "maxConcurrentCdcTasks" + "encoding", + "length", + "nullable", + "ordinalPosition", + "precision", + "primaryKey", + "scale" ] } } }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects": { + "gcp:datastream/StreamBackfillAllPostgresqlExcludedObjects:StreamBackfillAllPostgresqlExcludedObjects": { "properties": { - "mysqlDatabases": { + "postgresqlSchemas": { "type": "array", "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase" + "$ref": "#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema" }, - "description": "MySQL databases on the server\nStructure is documented below.\n", + "description": "PostgreSQL schemas on the server\nStructure is documented below.\n", "language": { "python": { "mapCase": false @@ -77318,26 +77494,26 @@ }, "type": "object", "required": [ - "mysqlDatabases" + "postgresqlSchemas" ] }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase": { + "gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema": { "properties": { - "database": { - "type": "string", - "description": "Database name.\n", + "postgresqlTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable" + }, + "description": "Tables in the schema.\nStructure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "mysqlTables": { - "type": "array", - "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable" - }, - "description": "Tables in the database.\nStructure is documented below.\n", + "schema": { + "type": "string", + "description": "Database name.\n", "language": { "python": { "mapCase": false @@ -77347,17 +77523,490 @@ }, "type": "object", "required": [ - "database" + "schema" ] }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable": { + "gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable": { "properties": { - "mysqlColumns": { + "postgresqlColumns": { "type": "array", "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn" + "$ref": "#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn" }, - "description": "MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "description": "PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn": { + "properties": { + "column": { + "type": "string", + "description": "Column name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dataType": { + "type": "string", + "description": "The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "length": { + "type": "integer", + "description": "Column length.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "precision": { + "type": "integer", + "description": "Column precision.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "scale": { + "type": "integer", + "description": "Column scale.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "length", + "precision", + "scale" + ] + } + } + }, + "gcp:datastream/StreamBackfillNone:StreamBackfillNone": { + "type": "object" + }, + "gcp:datastream/StreamDestinationConfig:StreamDestinationConfig": { + "properties": { + "bigqueryDestinationConfig": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig", + "description": "A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "destinationConnectionProfile": { + "type": "string", + "description": "Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "gcsDestinationConfig": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig", + "description": "A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "destinationConnectionProfile" + ] + }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig": { + "properties": { + "dataFreshness": { + "type": "string", + "description": "The guaranteed data freshness (in seconds) when querying tables created by the stream.\nEditing this field will only affect new tables created in the future, but existing tables\nwill not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "singleTargetDataset": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset", + "description": "A single target dataset to which all data will be streamed.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sourceHierarchyDatasets": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets", + "description": "Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset": { + "properties": { + "datasetId": { + "type": "string", + "description": "Dataset ID in the format projects/{project}/datasets/{dataset_id}\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "datasetId" + ] + }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets": { + "properties": { + "datasetTemplate": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate", + "description": "Dataset template used for dynamic dataset creation.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "datasetTemplate" + ] + }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate": { + "properties": { + "datasetIdPrefix": { + "type": "string", + "description": "If supplied, every created dataset will have its name prefixed by the provided value.\nThe prefix and name will be separated by an underscore. i.e. _.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "kmsKeyName": { + "type": "string", + "description": "Describes the Cloud KMS encryption key that will be used to protect destination BigQuery\ntable. The BigQuery Service Account associated with your project requires access to this\nencryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}.\nSee https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.\n", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + }, + "location": { + "type": "string", + "description": "The geographic location where the dataset should reside.\nSee https://cloud.google.com/bigquery/docs/locations for supported locations.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "location" + ] + }, + "gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig": { + "properties": { + "avroFileFormat": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat", + "description": "AVRO file format configuration.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "fileRotationInterval": { + "type": "string", + "description": "The maximum duration for which new events are added before a file is closed and a new file is created.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "fileRotationMb": { + "type": "integer", + "description": "The maximum file size to be saved in the bucket.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "jsonFileFormat": { + "$ref": "#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat", + "description": "JSON file format configuration.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "description": "Path inside the Cloud Storage bucket to write data to.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "fileRotationInterval", + "fileRotationMb" + ] + } + } + }, + "gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat": { + "type": "object" + }, + "gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat": { + "properties": { + "compression": { + "type": "string", + "description": "Compression of the loaded JSON file.\nPossible values are `NO_COMPRESSION` and `GZIP`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "schemaFileFormat": { + "type": "string", + "description": "The schema file format along JSON data files.\nPossible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "gcp:datastream/StreamSourceConfig:StreamSourceConfig": { + "properties": { + "mysqlSourceConfig": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig", + "description": "MySQL data source configuration.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "oracleSourceConfig": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfig:StreamSourceConfigOracleSourceConfig", + "description": "MySQL data source configuration.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "postgresqlSourceConfig": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfig:StreamSourceConfigPostgresqlSourceConfig", + "description": "PostgreSQL data source configuration.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sourceConnectionProfile": { + "type": "string", + "description": "Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n", + "language": { + "python": { + "mapCase": false + } + }, + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "sourceConnectionProfile" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig": { + "properties": { + "excludeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects", + "description": "MySQL objects to exclude from the stream.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "includeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects", + "description": "MySQL objects to retrieve from the source.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "maxConcurrentCdcTasks": { + "type": "integer", + "description": "Maximum number of concurrent CDC tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "maxConcurrentCdcTasks" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects": { + "properties": { + "mysqlDatabases": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase" + }, + "description": "MySQL databases on the server\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "mysqlDatabases" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase": { + "properties": { + "database": { + "type": "string", + "description": "Database name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "mysqlTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable" + }, + "description": "Tables in the database.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "database" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable": { + "properties": { + "mysqlColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn" + }, + "description": "MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", "language": { "python": { "mapCase": false @@ -77449,19 +78098,662 @@ "language": { "nodejs": { "requiredOutputs": [ - "length" + "length" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects": { + "properties": { + "mysqlDatabases": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase" + }, + "description": "MySQL databases on the server\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "mysqlDatabases" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase": { + "properties": { + "database": { + "type": "string", + "description": "Database name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "mysqlTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable" + }, + "description": "Tables in the database.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "database" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable": { + "properties": { + "mysqlColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn" + }, + "description": "MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn": { + "properties": { + "collation": { + "type": "string", + "description": "Column collation.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "column": { + "type": "string", + "description": "Column name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dataType": { + "type": "string", + "description": "The MySQL data type. Full data types list can be found here:\nhttps://dev.mysql.com/doc/refman/8.0/en/data-types.html\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "length": { + "type": "integer", + "description": "Column length.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "length" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfig:StreamSourceConfigOracleSourceConfig": { + "properties": { + "dropLargeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigDropLargeObjects:StreamSourceConfigOracleSourceConfigDropLargeObjects", + "description": "Configuration to drop large object values.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "excludeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjects:StreamSourceConfigOracleSourceConfigExcludeObjects", + "description": "Oracle objects to exclude from the stream.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "includeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjects:StreamSourceConfigOracleSourceConfigIncludeObjects", + "description": "Oracle objects to retrieve from the source.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "maxConcurrentBackfillTasks": { + "type": "integer", + "description": "Maximum number of concurrent backfill tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "maxConcurrentCdcTasks": { + "type": "integer", + "description": "Maximum number of concurrent CDC tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "streamLargeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigStreamLargeObjects:StreamSourceConfigOracleSourceConfigStreamLargeObjects", + "description": "Configuration to drop large object values.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "maxConcurrentBackfillTasks", + "maxConcurrentCdcTasks" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigDropLargeObjects:StreamSourceConfigOracleSourceConfigDropLargeObjects": { + "type": "object" + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjects:StreamSourceConfigOracleSourceConfigExcludeObjects": { + "properties": { + "oracleSchemas": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema" + }, + "description": "Oracle schemas/databases in the database server\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "oracleSchemas" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema": { + "properties": { + "oracleTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable" + }, + "description": "Tables in the database.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "schema": { + "type": "string", + "description": "Schema name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "schema" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable": { + "properties": { + "oracleColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn" + }, + "description": "Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn": { + "properties": { + "column": { + "type": "string", + "description": "Column name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dataType": { + "type": "string", + "description": "The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "encoding": { + "type": "string", + "description": "Column encoding.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "length": { + "type": "integer", + "description": "Column length.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "precision": { + "type": "integer", + "description": "Column precision.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "scale": { + "type": "integer", + "description": "Column scale.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "encoding", + "length", + "nullable", + "ordinalPosition", + "precision", + "primaryKey", + "scale" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjects:StreamSourceConfigOracleSourceConfigIncludeObjects": { + "properties": { + "oracleSchemas": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema" + }, + "description": "Oracle schemas/databases in the database server\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "oracleSchemas" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema": { + "properties": { + "oracleTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable" + }, + "description": "Tables in the database.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "schema": { + "type": "string", + "description": "Schema name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "schema" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable": { + "properties": { + "oracleColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn" + }, + "description": "Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn": { + "properties": { + "column": { + "type": "string", + "description": "Column name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dataType": { + "type": "string", + "description": "The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "encoding": { + "type": "string", + "description": "Column encoding.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "length": { + "type": "integer", + "description": "Column length.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "precision": { + "type": "integer", + "description": "Column precision.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "scale": { + "type": "integer", + "description": "Column scale.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "encoding", + "length", + "nullable", + "ordinalPosition", + "precision", + "primaryKey", + "scale" ] } } }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects": { + "gcp:datastream/StreamSourceConfigOracleSourceConfigStreamLargeObjects:StreamSourceConfigOracleSourceConfigStreamLargeObjects": { + "type": "object" + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfig:StreamSourceConfigPostgresqlSourceConfig": { "properties": { - "mysqlDatabases": { + "excludeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjects:StreamSourceConfigPostgresqlSourceConfigExcludeObjects", + "description": "PostgreSQL objects to exclude from the stream.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "includeObjects": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjects:StreamSourceConfigPostgresqlSourceConfigIncludeObjects", + "description": "PostgreSQL objects to retrieve from the source.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "maxConcurrentBackfillTasks": { + "type": "integer", + "description": "Maximum number of concurrent backfill tasks. The number should be non\nnegative. If not set (or set to 0), the system's default value will be used.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "publication": { + "type": "string", + "description": "The name of the publication that includes the set of all tables\nthat are defined in the stream's include_objects.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "replicationSlot": { + "type": "string", + "description": "The name of the logical replication slot that's configured with\nthe pgoutput plugin.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "publication", + "replicationSlot" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "maxConcurrentBackfillTasks", + "publication", + "replicationSlot" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjects:StreamSourceConfigPostgresqlSourceConfigExcludeObjects": { + "properties": { + "postgresqlSchemas": { "type": "array", "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase" + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema" }, - "description": "MySQL databases on the server\nStructure is documented below.\n", + "description": "PostgreSQL schemas on the server\nStructure is documented below.\n", "language": { "python": { "mapCase": false @@ -77471,12 +78763,24 @@ }, "type": "object", "required": [ - "mysqlDatabases" + "postgresqlSchemas" ] }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase": { + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema": { "properties": { - "database": { + "postgresqlTables": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable" + }, + "description": "Tables in the schema.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "schema": { "type": "string", "description": "Database name.\n", "language": { @@ -77484,13 +78788,136 @@ "mapCase": false } } + } + }, + "type": "object", + "required": [ + "schema" + ] + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable": { + "properties": { + "postgresqlColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn" + }, + "description": "PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "language": { + "python": { + "mapCase": false + } + } }, - "mysqlTables": { + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn": { + "properties": { + "column": { + "type": "string", + "description": "Column name.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "dataType": { + "type": "string", + "description": "The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "length": { + "type": "integer", + "description": "Column length.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "nullable": { + "type": "boolean", + "description": "Whether or not the column can accept a null value.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "ordinalPosition": { + "type": "integer", + "description": "The ordinal position of the column in the table.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "precision": { + "type": "integer", + "description": "Column precision.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "primaryKey": { + "type": "boolean", + "description": "Whether or not the column represents a primary key.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "scale": { + "type": "integer", + "description": "Column scale.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "length", + "precision", + "scale" + ] + } + } + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjects:StreamSourceConfigPostgresqlSourceConfigIncludeObjects": { + "properties": { + "postgresqlSchemas": { "type": "array", "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable" + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema" }, - "description": "Tables in the database.\nStructure is documented below.\n", + "description": "PostgreSQL schemas on the server\nStructure is documented below.\n", "language": { "python": { "mapCase": false @@ -77500,26 +78927,26 @@ }, "type": "object", "required": [ - "database" + "postgresqlSchemas" ] }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable": { + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema": { "properties": { - "mysqlColumns": { + "postgresqlTables": { "type": "array", "items": { - "$ref": "#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn" + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable" }, - "description": "MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", + "description": "Tables in the schema.\nStructure is documented below.\n", "language": { "python": { "mapCase": false } } }, - "table": { + "schema": { "type": "string", - "description": "Table name.\n", + "description": "Database name.\n", "language": { "python": { "mapCase": false @@ -77529,20 +78956,40 @@ }, "type": "object", "required": [ - "table" + "schema" ] }, - "gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn": { + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable": { "properties": { - "collation": { - "type": "string", - "description": "Column collation.\n", + "postgresqlColumns": { + "type": "array", + "items": { + "$ref": "#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn" + }, + "description": "PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n", "language": { "python": { "mapCase": false } } }, + "table": { + "type": "string", + "description": "Table name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "table" + ] + }, + "gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn": { + "properties": { "column": { "type": "string", "description": "Column name.\n", @@ -77554,7 +79001,7 @@ }, "dataType": { "type": "string", - "description": "The MySQL data type. Full data types list can be found here:\nhttps://dev.mysql.com/doc/refman/8.0/en/data-types.html\n", + "description": "The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n", "language": { "python": { "mapCase": false @@ -77588,6 +79035,15 @@ } } }, + "precision": { + "type": "integer", + "description": "Column precision.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "primaryKey": { "type": "boolean", "description": "Whether or not the column represents a primary key.\n", @@ -77596,13 +79052,24 @@ "mapCase": false } } + }, + "scale": { + "type": "integer", + "description": "Column scale.\n", + "language": { + "python": { + "mapCase": false + } + } } }, "type": "object", "language": { "nodejs": { "requiredOutputs": [ - "length" + "length", + "precision", + "scale" ] } } @@ -100045,6 +101512,15 @@ } } }, + "enablePrivatePathForGoogleCloudServices": { + "type": "boolean", + "description": "Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "ipv4Enabled": { "type": "boolean", "description": "Whether this Cloud SQL instance should be assigned\na public IPV4 address. At least `ipv4_enabled` must be enabled or a\n`private_network` must be configured.\n", @@ -101276,6 +102752,14 @@ } } }, + "enablePrivatePathForGoogleCloudServices": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, "ipv4Enabled": { "type": "boolean", "language": { @@ -101305,6 +102789,7 @@ "required": [ "allocatedIpRange", "authorizedNetworks", + "enablePrivatePathForGoogleCloudServices", "ipv4Enabled", "privateNetwork", "requireSsl" @@ -102605,6 +104090,14 @@ } } }, + "enablePrivatePathForGoogleCloudServices": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, "ipv4Enabled": { "type": "boolean", "language": { @@ -102634,6 +104127,7 @@ "required": [ "allocatedIpRange", "authorizedNetworks", + "enablePrivatePathForGoogleCloudServices", "ipv4Enabled", "privateNetwork", "requireSsl" @@ -108120,7 +109614,7 @@ } }, "gcp:alloydb/backup:Backup": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Backup Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultNetwork = gcp.compute.getNetwork({\n name: \"alloydb-network\",\n});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n}, {\n provider: google_beta,\n});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 16,\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n}, {\n provider: google_beta,\n});\nconst vpcConnection = new gcp.servicenetworking.Connection(\"vpcConnection\", {\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAlloc.name],\n}, {\n provider: google_beta,\n});\nconst defaultInstance = new gcp.alloydb.Instance(\"defaultInstance\", {\n cluster: defaultCluster.name,\n instanceId: \"alloydb-instance\",\n instanceType: \"PRIMARY\",\n}, {\n provider: google_beta,\n dependsOn: [vpcConnection],\n});\nconst defaultBackup = new gcp.alloydb.Backup(\"defaultBackup\", {\n location: \"us-central1\",\n backupId: \"alloydb-backup\",\n clusterName: defaultCluster.name,\n description: \"example description\",\n labels: {\n label: \"key\",\n },\n}, {\n provider: google_beta,\n dependsOn: [defaultInstance],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_network = gcp.compute.get_network(name=\"alloydb-network\")\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.id,\n opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=16,\n network=default_network.id,\n opts=pulumi.ResourceOptions(provider=google_beta))\nvpc_connection = gcp.servicenetworking.Connection(\"vpcConnection\",\n network=default_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_alloc.name],\n opts=pulumi.ResourceOptions(provider=google_beta))\ndefault_instance = gcp.alloydb.Instance(\"defaultInstance\",\n cluster=default_cluster.name,\n instance_id=\"alloydb-instance\",\n instance_type=\"PRIMARY\",\n opts=pulumi.ResourceOptions(provider=google_beta,\n depends_on=[vpc_connection]))\ndefault_backup = gcp.alloydb.Backup(\"defaultBackup\",\n location=\"us-central1\",\n backup_id=\"alloydb-backup\",\n cluster_name=default_cluster.name,\n description=\"example description\",\n labels={\n \"label\": \"key\",\n },\n opts=pulumi.ResourceOptions(provider=google_beta,\n depends_on=[default_instance]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultNetwork = Gcp.Compute.GetNetwork.Invoke(new()\n {\n Name = \"alloydb-network\",\n });\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 16,\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var vpcConnection = new Gcp.ServiceNetworking.Connection(\"vpcConnection\", new()\n {\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAlloc.Name,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var defaultInstance = new Gcp.Alloydb.Instance(\"defaultInstance\", new()\n {\n Cluster = defaultCluster.Name,\n InstanceId = \"alloydb-instance\",\n InstanceType = \"PRIMARY\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n DependsOn = new[]\n {\n vpcConnection,\n },\n });\n\n var defaultBackup = new Gcp.Alloydb.Backup(\"defaultBackup\", new()\n {\n Location = \"us-central1\",\n BackupId = \"alloydb-backup\",\n ClusterName = defaultCluster.Name,\n Description = \"example description\",\n Labels = \n {\n { \"label\", \"key\" },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n DependsOn = new[]\n {\n defaultInstance,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultNetwork, err := compute.LookupNetwork(ctx, \u0026compute.LookupNetworkArgs{\n\t\t\tName: \"alloydb-network\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcConnection, err := servicenetworking.NewConnection(ctx, \"vpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAlloc.Name,\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alloydb.NewInstance(ctx, \"defaultInstance\", \u0026alloydb.InstanceArgs{\n\t\t\tCluster: defaultCluster.Name,\n\t\t\tInstanceId: pulumi.String(\"alloydb-instance\"),\n\t\t\tInstanceType: pulumi.String(\"PRIMARY\"),\n\t\t}, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewBackup(ctx, \"defaultBackup\", \u0026alloydb.BackupArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tBackupId: pulumi.String(\"alloydb-backup\"),\n\t\t\tClusterName: defaultCluster.Name,\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"key\"),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultInstance,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetNetworkArgs;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.alloydb.Instance;\nimport com.pulumi.gcp.alloydb.InstanceArgs;\nimport com.pulumi.gcp.alloydb.Backup;\nimport com.pulumi.gcp.alloydb.BackupArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var defaultNetwork = ComputeFunctions.getNetwork(GetNetworkArgs.builder()\n .name(\"alloydb-network\")\n .build());\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(16)\n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var vpcConnection = new Connection(\"vpcConnection\", ConnectionArgs.builder() \n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAlloc.name())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .cluster(defaultCluster.name())\n .instanceId(\"alloydb-instance\")\n .instanceType(\"PRIMARY\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .dependsOn(vpcConnection)\n .build());\n\n var defaultBackup = new Backup(\"defaultBackup\", BackupArgs.builder() \n .location(\"us-central1\")\n .backupId(\"alloydb-backup\")\n .clusterName(defaultCluster.name())\n .description(\"example description\")\n .labels(Map.of(\"label\", \"key\"))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .dependsOn(defaultInstance)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultBackup:\n type: gcp:alloydb:Backup\n properties:\n location: us-central1\n backupId: alloydb-backup\n clusterName: ${defaultCluster.name}\n description: example description\n labels:\n label: key\n options:\n provider: ${[\"google-beta\"]}\n dependson:\n - ${defaultInstance}\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: ${defaultNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n defaultInstance:\n type: gcp:alloydb:Instance\n properties:\n cluster: ${defaultCluster.name}\n instanceId: alloydb-instance\n instanceType: PRIMARY\n options:\n provider: ${[\"google-beta\"]}\n dependson:\n - ${vpcConnection}\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 16\n network: ${defaultNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n vpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${defaultNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAlloc.name}\n options:\n provider: ${[\"google-beta\"]}\nvariables:\n defaultNetwork:\n fn::invoke:\n Function: gcp:compute:getNetwork\n Arguments:\n name: alloydb-network\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default projects/{{project}}/locations/{{location}}/backups/{{backup_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default {{project}}/{{location}}/{{backup_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default {{location}}/{{backup_id}}\n```\n\n ", + "description": "An AlloyDB Backup.\n\n\nTo get more information about Backup, see:\n\n* [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create)\n* How-to Guides\n * [AlloyDB](https://cloud.google.com/alloydb/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Backup Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultNetwork = gcp.compute.getNetwork({\n name: \"alloydb-network\",\n});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 16,\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n});\nconst vpcConnection = new gcp.servicenetworking.Connection(\"vpcConnection\", {\n network: defaultNetwork.then(defaultNetwork =\u003e defaultNetwork.id),\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAlloc.name],\n});\nconst defaultInstance = new gcp.alloydb.Instance(\"defaultInstance\", {\n cluster: defaultCluster.name,\n instanceId: \"alloydb-instance\",\n instanceType: \"PRIMARY\",\n}, {\n dependsOn: [vpcConnection],\n});\nconst defaultBackup = new gcp.alloydb.Backup(\"defaultBackup\", {\n location: \"us-central1\",\n backupId: \"alloydb-backup\",\n clusterName: defaultCluster.name,\n description: \"example description\",\n labels: {\n label: \"key\",\n },\n}, {\n dependsOn: [defaultInstance],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_network = gcp.compute.get_network(name=\"alloydb-network\")\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.id)\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=16,\n network=default_network.id)\nvpc_connection = gcp.servicenetworking.Connection(\"vpcConnection\",\n network=default_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_alloc.name])\ndefault_instance = gcp.alloydb.Instance(\"defaultInstance\",\n cluster=default_cluster.name,\n instance_id=\"alloydb-instance\",\n instance_type=\"PRIMARY\",\n opts=pulumi.ResourceOptions(depends_on=[vpc_connection]))\ndefault_backup = gcp.alloydb.Backup(\"defaultBackup\",\n location=\"us-central1\",\n backup_id=\"alloydb-backup\",\n cluster_name=default_cluster.name,\n description=\"example description\",\n labels={\n \"label\": \"key\",\n },\n opts=pulumi.ResourceOptions(depends_on=[default_instance]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultNetwork = Gcp.Compute.GetNetwork.Invoke(new()\n {\n Name = \"alloydb-network\",\n });\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n });\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 16,\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n });\n\n var vpcConnection = new Gcp.ServiceNetworking.Connection(\"vpcConnection\", new()\n {\n Network = defaultNetwork.Apply(getNetworkResult =\u003e getNetworkResult.Id),\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAlloc.Name,\n },\n });\n\n var defaultInstance = new Gcp.Alloydb.Instance(\"defaultInstance\", new()\n {\n Cluster = defaultCluster.Name,\n InstanceId = \"alloydb-instance\",\n InstanceType = \"PRIMARY\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n vpcConnection,\n },\n });\n\n var defaultBackup = new Gcp.Alloydb.Backup(\"defaultBackup\", new()\n {\n Location = \"us-central1\",\n BackupId = \"alloydb-backup\",\n ClusterName = defaultCluster.Name,\n Description = \"example description\",\n Labels = \n {\n { \"label\", \"key\" },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n defaultInstance,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultNetwork, err := compute.LookupNetwork(ctx, \u0026compute.LookupNetworkArgs{\n\t\t\tName: \"alloydb-network\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcConnection, err := servicenetworking.NewConnection(ctx, \"vpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: *pulumi.String(defaultNetwork.Id),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAlloc.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstance, err := alloydb.NewInstance(ctx, \"defaultInstance\", \u0026alloydb.InstanceArgs{\n\t\t\tCluster: defaultCluster.Name,\n\t\t\tInstanceId: pulumi.String(\"alloydb-instance\"),\n\t\t\tInstanceType: pulumi.String(\"PRIMARY\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewBackup(ctx, \"defaultBackup\", \u0026alloydb.BackupArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tBackupId: pulumi.String(\"alloydb-backup\"),\n\t\t\tClusterName: defaultCluster.Name,\n\t\t\tDescription: pulumi.String(\"example description\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label\": pulumi.String(\"key\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultInstance,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetNetworkArgs;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.alloydb.Instance;\nimport com.pulumi.gcp.alloydb.InstanceArgs;\nimport com.pulumi.gcp.alloydb.Backup;\nimport com.pulumi.gcp.alloydb.BackupArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var defaultNetwork = ComputeFunctions.getNetwork(GetNetworkArgs.builder()\n .name(\"alloydb-network\")\n .build());\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .build());\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(16)\n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .build());\n\n var vpcConnection = new Connection(\"vpcConnection\", ConnectionArgs.builder() \n .network(defaultNetwork.applyValue(getNetworkResult -\u003e getNetworkResult.id()))\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAlloc.name())\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .cluster(defaultCluster.name())\n .instanceId(\"alloydb-instance\")\n .instanceType(\"PRIMARY\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(vpcConnection)\n .build());\n\n var defaultBackup = new Backup(\"defaultBackup\", BackupArgs.builder() \n .location(\"us-central1\")\n .backupId(\"alloydb-backup\")\n .clusterName(defaultCluster.name())\n .description(\"example description\")\n .labels(Map.of(\"label\", \"key\"))\n .build(), CustomResourceOptions.builder()\n .dependsOn(defaultInstance)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultBackup:\n type: gcp:alloydb:Backup\n properties:\n location: us-central1\n backupId: alloydb-backup\n clusterName: ${defaultCluster.name}\n description: example description\n labels:\n label: key\n options:\n dependson:\n - ${defaultInstance}\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: ${defaultNetwork.id}\n defaultInstance:\n type: gcp:alloydb:Instance\n properties:\n cluster: ${defaultCluster.name}\n instanceId: alloydb-instance\n instanceType: PRIMARY\n options:\n dependson:\n - ${vpcConnection}\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 16\n network: ${defaultNetwork.id}\n vpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${defaultNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAlloc.name}\nvariables:\n defaultNetwork:\n fn::invoke:\n Function: gcp:compute:getNetwork\n Arguments:\n name: alloydb-network\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nBackup can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default projects/{{project}}/locations/{{location}}/backups/{{backup_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default {{project}}/{{location}}/{{backup_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/backup:Backup default {{location}}/{{backup_id}}\n```\n\n ", "properties": { "backupId": { "type": "string", @@ -108296,7 +109790,7 @@ } }, "gcp:alloydb/cluster:Cluster": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Cluster Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst defaultNetwork = new gcp.compute.Network(\"defaultNetwork\", {}, {\n provider: google_beta,\n});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: pulumi.all([project, defaultNetwork.name]).apply(([project, name]) =\u003e `projects/${project.number}/global/networks/${name}`),\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\ndefault_network = gcp.compute.Network(\"defaultNetwork\", opts=pulumi.ResourceOptions(provider=google_beta))\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.name.apply(lambda name: f\"projects/{project.number}/global/networks/{name}\"),\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var defaultNetwork = new Gcp.Compute.Network(\"defaultNetwork\", new()\n {\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = Output.Tuple(project, defaultNetwork.Name).Apply(values =\u003e\n {\n var project = values.Item1;\n var name = values.Item2;\n return $\"projects/{project.Apply(getProjectResult =\u003e getProjectResult.Number)}/global/networks/{name}\";\n }),\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"defaultNetwork\", nil, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/global/networks/%v\", project.Number, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.Empty, CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: projects/${project.number}/global/networks/${defaultNetwork.name}\n options:\n provider: ${[\"google-beta\"]}\n defaultNetwork:\n type: gcp:compute:Network\n options:\n provider: ${[\"google-beta\"]}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Alloydb Cluster Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst _default = new gcp.compute.Network(\"default\", {}, {\n provider: google_beta,\n});\nconst full = new gcp.alloydb.Cluster(\"full\", {\n clusterId: \"alloydb-cluster-full\",\n location: \"us-central1\",\n network: pulumi.all([project, _default.name]).apply(([project, name]) =\u003e `projects/${project.number}/global/networks/${name}`),\n initialUser: {\n user: \"alloydb-cluster-full\",\n password: \"alloydb-cluster-full\",\n },\n automatedBackupPolicy: {\n location: \"us-central1\",\n backupWindow: \"1800s\",\n enabled: true,\n weeklySchedule: {\n daysOfWeeks: [\"MONDAY\"],\n startTimes: [{\n hours: 23,\n minutes: 0,\n seconds: 0,\n nanos: 0,\n }],\n },\n quantityBasedRetention: {\n count: 1,\n },\n labels: {\n test: \"alloydb-cluster-full\",\n },\n },\n labels: {\n test: \"alloydb-cluster-full\",\n },\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\ndefault = gcp.compute.Network(\"default\", opts=pulumi.ResourceOptions(provider=google_beta))\nfull = gcp.alloydb.Cluster(\"full\",\n cluster_id=\"alloydb-cluster-full\",\n location=\"us-central1\",\n network=default.name.apply(lambda name: f\"projects/{project.number}/global/networks/{name}\"),\n initial_user=gcp.alloydb.ClusterInitialUserArgs(\n user=\"alloydb-cluster-full\",\n password=\"alloydb-cluster-full\",\n ),\n automated_backup_policy=gcp.alloydb.ClusterAutomatedBackupPolicyArgs(\n location=\"us-central1\",\n backup_window=\"1800s\",\n enabled=True,\n weekly_schedule=gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleArgs(\n days_of_weeks=[\"MONDAY\"],\n start_times=[gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs(\n hours=23,\n minutes=0,\n seconds=0,\n nanos=0,\n )],\n ),\n quantity_based_retention=gcp.alloydb.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs(\n count=1,\n ),\n labels={\n \"test\": \"alloydb-cluster-full\",\n },\n ),\n labels={\n \"test\": \"alloydb-cluster-full\",\n },\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var @default = new Gcp.Compute.Network(\"default\", new()\n {\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var full = new Gcp.Alloydb.Cluster(\"full\", new()\n {\n ClusterId = \"alloydb-cluster-full\",\n Location = \"us-central1\",\n Network = Output.Tuple(project, @default.Name).Apply(values =\u003e\n {\n var project = values.Item1;\n var name = values.Item2;\n return $\"projects/{project.Apply(getProjectResult =\u003e getProjectResult.Number)}/global/networks/{name}\";\n }),\n InitialUser = new Gcp.Alloydb.Inputs.ClusterInitialUserArgs\n {\n User = \"alloydb-cluster-full\",\n Password = \"alloydb-cluster-full\",\n },\n AutomatedBackupPolicy = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyArgs\n {\n Location = \"us-central1\",\n BackupWindow = \"1800s\",\n Enabled = true,\n WeeklySchedule = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs\n {\n DaysOfWeeks = new[]\n {\n \"MONDAY\",\n },\n StartTimes = new[]\n {\n new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs\n {\n Hours = 23,\n Minutes = 0,\n Seconds = 0,\n Nanos = 0,\n },\n },\n },\n QuantityBasedRetention = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs\n {\n Count = 1,\n },\n Labels = \n {\n { \"test\", \"alloydb-cluster-full\" },\n },\n },\n Labels = \n {\n { \"test\", \"alloydb-cluster-full\" },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetwork(ctx, \"default\", nil, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewCluster(ctx, \"full\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster-full\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: _default.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/global/networks/%v\", project.Number, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tInitialUser: \u0026alloydb.ClusterInitialUserArgs{\n\t\t\t\tUser: pulumi.String(\"alloydb-cluster-full\"),\n\t\t\t\tPassword: pulumi.String(\"alloydb-cluster-full\"),\n\t\t\t},\n\t\t\tAutomatedBackupPolicy: \u0026alloydb.ClusterAutomatedBackupPolicyArgs{\n\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\tBackupWindow: pulumi.String(\"1800s\"),\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tWeeklySchedule: \u0026alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleArgs{\n\t\t\t\t\tDaysOfWeeks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"MONDAY\"),\n\t\t\t\t\t},\n\t\t\t\t\tStartTimes: alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArray{\n\t\t\t\t\t\t\u0026alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs{\n\t\t\t\t\t\t\tHours: pulumi.Int(23),\n\t\t\t\t\t\t\tMinutes: pulumi.Int(0),\n\t\t\t\t\t\t\tSeconds: pulumi.Int(0),\n\t\t\t\t\t\t\tNanos: pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tQuantityBasedRetention: \u0026alloydb.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs{\n\t\t\t\t\tCount: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\"test\": pulumi.String(\"alloydb-cluster-full\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"test\": pulumi.String(\"alloydb-cluster-full\"),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var default_ = new Network(\"default\", NetworkArgs.Empty, CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var full = new Cluster(\"full\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster-full\")\n .location(\"us-central1\")\n .network(default_.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .initialUser(ClusterInitialUserArgs.builder()\n .user(\"alloydb-cluster-full\")\n .password(\"alloydb-cluster-full\")\n .build())\n .automatedBackupPolicy(ClusterAutomatedBackupPolicyArgs.builder()\n .location(\"us-central1\")\n .backupWindow(\"1800s\")\n .enabled(true)\n .weeklySchedule(ClusterAutomatedBackupPolicyWeeklyScheduleArgs.builder()\n .daysOfWeeks(\"MONDAY\")\n .startTimes(ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs.builder()\n .hours(23)\n .minutes(0)\n .seconds(0)\n .nanos(0)\n .build())\n .build())\n .quantityBasedRetention(ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs.builder()\n .count(1)\n .build())\n .labels(Map.of(\"test\", \"alloydb-cluster-full\"))\n .build())\n .labels(Map.of(\"test\", \"alloydb-cluster-full\"))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n full:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster-full\n location: us-central1\n network: projects/${project.number}/global/networks/${default.name}\n initialUser:\n user: alloydb-cluster-full\n password: alloydb-cluster-full\n automatedBackupPolicy:\n location: us-central1\n backupWindow: 1800s\n enabled: true\n weeklySchedule:\n daysOfWeeks:\n - MONDAY\n startTimes:\n - hours: 23\n minutes: 0\n seconds: 0\n nanos: 0\n quantityBasedRetention:\n count: 1\n labels:\n test: alloydb-cluster-full\n labels:\n test: alloydb-cluster-full\n options:\n provider: ${[\"google-beta\"]}\n default:\n type: gcp:compute:Network\n options:\n provider: ${[\"google-beta\"]}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCluster can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default projects/{{project}}/locations/{{location}}/clusters/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{project}}/{{location}}/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{location}}/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{cluster_id}}\n```\n\n ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Cluster Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst defaultNetwork = new gcp.compute.Network(\"defaultNetwork\", {});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: pulumi.all([project, defaultNetwork.name]).apply(([project, name]) =\u003e `projects/${project.number}/global/networks/${name}`),\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\ndefault_network = gcp.compute.Network(\"defaultNetwork\")\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.name.apply(lambda name: f\"projects/{project.number}/global/networks/{name}\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var defaultNetwork = new Gcp.Compute.Network(\"defaultNetwork\");\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = Output.Tuple(project, defaultNetwork.Name).Apply(values =\u003e\n {\n var project = values.Item1;\n var name = values.Item2;\n return $\"projects/{project.Apply(getProjectResult =\u003e getProjectResult.Number)}/global/networks/{name}\";\n }),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"defaultNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/global/networks/%v\", project.Number, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var defaultNetwork = new Network(\"defaultNetwork\");\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: projects/${project.number}/global/networks/${defaultNetwork.name}\n defaultNetwork:\n type: gcp:compute:Network\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Alloydb Cluster Full\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var default_ = new Network(\"default\");\n\n var full = new Cluster(\"full\", ClusterArgs.builder() \n .automatedBackupPolicy(ClusterAutomatedBackupPolicyArgs.builder()\n .backupWindow(\"1800s\")\n .enabled(true)\n .labels(Map.of(\"test\", \"alloydb-cluster-full\"))\n .location(\"us-central1\")\n .quantityBasedRetention(ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs.builder()\n .count(1)\n .build())\n .weeklySchedule(ClusterAutomatedBackupPolicyWeeklyScheduleArgs.builder()\n .daysOfWeek(\"MONDAY\")\n .startTimes(ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs.builder()\n .hours(23)\n .minutes(0)\n .nanos(0)\n .seconds(0)\n .build())\n .build())\n .build())\n .clusterId(\"alloydb-cluster-full\")\n .initialUser(ClusterInitialUserArgs.builder()\n .password(\"alloydb-cluster-full\")\n .user(\"alloydb-cluster-full\")\n .build())\n .labels(Map.of(\"test\", \"alloydb-cluster-full\"))\n .location(\"us-central1\")\n .network(default_.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n full:\n type: gcp:alloydb:Cluster\n properties:\n automatedBackupPolicy:\n backupWindow: 1800s\n enabled: true\n labels:\n test: alloydb-cluster-full\n location: us-central1\n quantityBasedRetention:\n count: 1\n weeklySchedule:\n daysOfWeek:\n - MONDAY\n startTimes:\n - hours: 23\n minutes: 0\n nanos: 0\n seconds: 0\n clusterId: alloydb-cluster-full\n initialUser:\n password: alloydb-cluster-full\n user: alloydb-cluster-full\n labels:\n test: alloydb-cluster-full\n location: us-central1\n network: projects/${project.number}/global/networks/${default.name}\n default:\n type: gcp:compute:Network\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCluster can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default projects/{{project}}/locations/{{location}}/clusters/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{project}}/{{location}}/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{location}}/{{cluster_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/cluster:Cluster default {{cluster_id}}\n```\n\n ", "properties": { "automatedBackupPolicy": { "$ref": "#/types/gcp:alloydb/ClusterAutomatedBackupPolicy:ClusterAutomatedBackupPolicy", @@ -108488,7 +109982,7 @@ } }, "gcp:alloydb/instance:Instance": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst defaultNetwork = new gcp.compute.Network(\"defaultNetwork\", {}, {\n provider: google_beta,\n});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: pulumi.all([project, defaultNetwork.name]).apply(([project, name]) =\u003e `projects/${project.number}/global/networks/${name}`),\n initialUser: {\n password: \"alloydb-cluster\",\n },\n}, {\n provider: google_beta,\n});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 16,\n network: defaultNetwork.id,\n}, {\n provider: google_beta,\n});\nconst vpcConnection = new gcp.servicenetworking.Connection(\"vpcConnection\", {\n network: defaultNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAlloc.name],\n}, {\n provider: google_beta,\n});\nconst defaultInstance = new gcp.alloydb.Instance(\"defaultInstance\", {\n cluster: defaultCluster.name,\n instanceId: \"alloydb-instance\",\n instanceType: \"PRIMARY\",\n machineConfig: {\n cpuCount: 2,\n },\n}, {\n provider: google_beta,\n dependsOn: [vpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\ndefault_network = gcp.compute.Network(\"defaultNetwork\", opts=pulumi.ResourceOptions(provider=google_beta))\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.name.apply(lambda name: f\"projects/{project.number}/global/networks/{name}\"),\n initial_user=gcp.alloydb.ClusterInitialUserArgs(\n password=\"alloydb-cluster\",\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=16,\n network=default_network.id,\n opts=pulumi.ResourceOptions(provider=google_beta))\nvpc_connection = gcp.servicenetworking.Connection(\"vpcConnection\",\n network=default_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_alloc.name],\n opts=pulumi.ResourceOptions(provider=google_beta))\ndefault_instance = gcp.alloydb.Instance(\"defaultInstance\",\n cluster=default_cluster.name,\n instance_id=\"alloydb-instance\",\n instance_type=\"PRIMARY\",\n machine_config=gcp.alloydb.InstanceMachineConfigArgs(\n cpu_count=2,\n ),\n opts=pulumi.ResourceOptions(provider=google_beta,\n depends_on=[vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var defaultNetwork = new Gcp.Compute.Network(\"defaultNetwork\", new()\n {\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = Output.Tuple(project, defaultNetwork.Name).Apply(values =\u003e\n {\n var project = values.Item1;\n var name = values.Item2;\n return $\"projects/{project.Apply(getProjectResult =\u003e getProjectResult.Number)}/global/networks/{name}\";\n }),\n InitialUser = new Gcp.Alloydb.Inputs.ClusterInitialUserArgs\n {\n Password = \"alloydb-cluster\",\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 16,\n Network = defaultNetwork.Id,\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var vpcConnection = new Gcp.ServiceNetworking.Connection(\"vpcConnection\", new()\n {\n Network = defaultNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAlloc.Name,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var defaultInstance = new Gcp.Alloydb.Instance(\"defaultInstance\", new()\n {\n Cluster = defaultCluster.Name,\n InstanceId = \"alloydb-instance\",\n InstanceType = \"PRIMARY\",\n MachineConfig = new Gcp.Alloydb.Inputs.InstanceMachineConfigArgs\n {\n CpuCount = 2,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n DependsOn = new[]\n {\n vpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"defaultNetwork\", nil, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/global/networks/%v\", project.Number, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tInitialUser: \u0026alloydb.ClusterInitialUserArgs{\n\t\t\t\tPassword: pulumi.String(\"alloydb-cluster\"),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcConnection, err := servicenetworking.NewConnection(ctx, \"vpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAlloc.Name,\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewInstance(ctx, \"defaultInstance\", \u0026alloydb.InstanceArgs{\n\t\t\tCluster: defaultCluster.Name,\n\t\t\tInstanceId: pulumi.String(\"alloydb-instance\"),\n\t\t\tInstanceType: pulumi.String(\"PRIMARY\"),\n\t\t\tMachineConfig: \u0026alloydb.InstanceMachineConfigArgs{\n\t\t\t\tCpuCount: pulumi.Int(2),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.alloydb.Instance;\nimport com.pulumi.gcp.alloydb.InstanceArgs;\nimport com.pulumi.gcp.alloydb.inputs.InstanceMachineConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.Empty, CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .initialUser(ClusterInitialUserArgs.builder()\n .password(\"alloydb-cluster\")\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(16)\n .network(defaultNetwork.id())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var vpcConnection = new Connection(\"vpcConnection\", ConnectionArgs.builder() \n .network(defaultNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAlloc.name())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .cluster(defaultCluster.name())\n .instanceId(\"alloydb-instance\")\n .instanceType(\"PRIMARY\")\n .machineConfig(InstanceMachineConfigArgs.builder()\n .cpuCount(2)\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .dependsOn(vpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultInstance:\n type: gcp:alloydb:Instance\n properties:\n cluster: ${defaultCluster.name}\n instanceId: alloydb-instance\n instanceType: PRIMARY\n machineConfig:\n cpuCount: 2\n options:\n provider: ${[\"google-beta\"]}\n dependson:\n - ${vpcConnection}\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: projects/${project.number}/global/networks/${defaultNetwork.name}\n initialUser:\n password: alloydb-cluster\n options:\n provider: ${[\"google-beta\"]}\n defaultNetwork:\n type: gcp:compute:Network\n options:\n provider: ${[\"google-beta\"]}\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 16\n network: ${defaultNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n vpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${defaultNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAlloc.name}\n options:\n provider: ${[\"google-beta\"]}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/instance:Instance default {{cluster}}/instances/{{instance_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/instance:Instance default {{cluster}}/{{instance_id}}\n```\n\n ", + "description": "A managed alloydb cluster instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create)\n* How-to Guides\n * [AlloyDB](https://cloud.google.com/alloydb/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Alloydb Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst defaultNetwork = new gcp.compute.Network(\"defaultNetwork\", {});\nconst defaultCluster = new gcp.alloydb.Cluster(\"defaultCluster\", {\n clusterId: \"alloydb-cluster\",\n location: \"us-central1\",\n network: pulumi.all([project, defaultNetwork.name]).apply(([project, name]) =\u003e `projects/${project.number}/global/networks/${name}`),\n initialUser: {\n password: \"alloydb-cluster\",\n },\n});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 16,\n network: defaultNetwork.id,\n});\nconst vpcConnection = new gcp.servicenetworking.Connection(\"vpcConnection\", {\n network: defaultNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAlloc.name],\n});\nconst defaultInstance = new gcp.alloydb.Instance(\"defaultInstance\", {\n cluster: defaultCluster.name,\n instanceId: \"alloydb-instance\",\n instanceType: \"PRIMARY\",\n machineConfig: {\n cpuCount: 2,\n },\n}, {\n dependsOn: [vpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\ndefault_network = gcp.compute.Network(\"defaultNetwork\")\ndefault_cluster = gcp.alloydb.Cluster(\"defaultCluster\",\n cluster_id=\"alloydb-cluster\",\n location=\"us-central1\",\n network=default_network.name.apply(lambda name: f\"projects/{project.number}/global/networks/{name}\"),\n initial_user=gcp.alloydb.ClusterInitialUserArgs(\n password=\"alloydb-cluster\",\n ))\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=16,\n network=default_network.id)\nvpc_connection = gcp.servicenetworking.Connection(\"vpcConnection\",\n network=default_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_alloc.name])\ndefault_instance = gcp.alloydb.Instance(\"defaultInstance\",\n cluster=default_cluster.name,\n instance_id=\"alloydb-instance\",\n instance_type=\"PRIMARY\",\n machine_config=gcp.alloydb.InstanceMachineConfigArgs(\n cpu_count=2,\n ),\n opts=pulumi.ResourceOptions(depends_on=[vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var defaultNetwork = new Gcp.Compute.Network(\"defaultNetwork\");\n\n var defaultCluster = new Gcp.Alloydb.Cluster(\"defaultCluster\", new()\n {\n ClusterId = \"alloydb-cluster\",\n Location = \"us-central1\",\n Network = Output.Tuple(project, defaultNetwork.Name).Apply(values =\u003e\n {\n var project = values.Item1;\n var name = values.Item2;\n return $\"projects/{project.Apply(getProjectResult =\u003e getProjectResult.Number)}/global/networks/{name}\";\n }),\n InitialUser = new Gcp.Alloydb.Inputs.ClusterInitialUserArgs\n {\n Password = \"alloydb-cluster\",\n },\n });\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 16,\n Network = defaultNetwork.Id,\n });\n\n var vpcConnection = new Gcp.ServiceNetworking.Connection(\"vpcConnection\", new()\n {\n Network = defaultNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAlloc.Name,\n },\n });\n\n var defaultInstance = new Gcp.Alloydb.Instance(\"defaultInstance\", new()\n {\n Cluster = defaultCluster.Name,\n InstanceId = \"alloydb-instance\",\n InstanceType = \"PRIMARY\",\n MachineConfig = new Gcp.Alloydb.Inputs.InstanceMachineConfigArgs\n {\n CpuCount = 2,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n vpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultNetwork, err := compute.NewNetwork(ctx, \"defaultNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCluster, err := alloydb.NewCluster(ctx, \"defaultCluster\", \u0026alloydb.ClusterArgs{\n\t\t\tClusterId: pulumi.String(\"alloydb-cluster\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: defaultNetwork.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/global/networks/%v\", project.Number, name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tInitialUser: \u0026alloydb.ClusterInitialUserArgs{\n\t\t\t\tPassword: pulumi.String(\"alloydb-cluster\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpcConnection, err := servicenetworking.NewConnection(ctx, \"vpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: defaultNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAlloc.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = alloydb.NewInstance(ctx, \"defaultInstance\", \u0026alloydb.InstanceArgs{\n\t\t\tCluster: defaultCluster.Name,\n\t\t\tInstanceId: pulumi.String(\"alloydb-instance\"),\n\t\t\tInstanceType: pulumi.String(\"PRIMARY\"),\n\t\t\tMachineConfig: \u0026alloydb.InstanceMachineConfigArgs{\n\t\t\t\tCpuCount: pulumi.Int(2),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.alloydb.Cluster;\nimport com.pulumi.gcp.alloydb.ClusterArgs;\nimport com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.alloydb.Instance;\nimport com.pulumi.gcp.alloydb.InstanceArgs;\nimport com.pulumi.gcp.alloydb.inputs.InstanceMachineConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var defaultNetwork = new Network(\"defaultNetwork\");\n\n var defaultCluster = new Cluster(\"defaultCluster\", ClusterArgs.builder() \n .clusterId(\"alloydb-cluster\")\n .location(\"us-central1\")\n .network(defaultNetwork.name().applyValue(name -\u003e String.format(\"projects/%s/global/networks/%s\", project.applyValue(getProjectResult -\u003e getProjectResult.number()),name)))\n .initialUser(ClusterInitialUserArgs.builder()\n .password(\"alloydb-cluster\")\n .build())\n .build());\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(16)\n .network(defaultNetwork.id())\n .build());\n\n var vpcConnection = new Connection(\"vpcConnection\", ConnectionArgs.builder() \n .network(defaultNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAlloc.name())\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .cluster(defaultCluster.name())\n .instanceId(\"alloydb-instance\")\n .instanceType(\"PRIMARY\")\n .machineConfig(InstanceMachineConfigArgs.builder()\n .cpuCount(2)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(vpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultInstance:\n type: gcp:alloydb:Instance\n properties:\n cluster: ${defaultCluster.name}\n instanceId: alloydb-instance\n instanceType: PRIMARY\n machineConfig:\n cpuCount: 2\n options:\n dependson:\n - ${vpcConnection}\n defaultCluster:\n type: gcp:alloydb:Cluster\n properties:\n clusterId: alloydb-cluster\n location: us-central1\n network: projects/${project.number}/global/networks/${defaultNetwork.name}\n initialUser:\n password: alloydb-cluster\n defaultNetwork:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 16\n network: ${defaultNetwork.id}\n vpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${defaultNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAlloc.name}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:alloydb/instance:Instance default {{cluster}}/instances/{{instance_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:alloydb/instance:Instance default {{cluster}}/{{instance_id}}\n```\n\n ", "properties": { "annotations": { "type": "object", @@ -110073,6 +111567,66 @@ "type": "object" } }, + "gcp:apigee/addonsConfig:AddonsConfig": { + "description": "Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced.\n\n\nTo get more information about AddonsConfig, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons)\n* How-to Guides\n * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigee Addons Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testOrganization = new gcp.apigee.AddonsConfig(\"testOrganization\", {\n addonsConfig: {\n apiSecurityConfig: {\n enabled: true,\n },\n monetizationConfig: {\n enabled: true,\n },\n },\n org: \"test_organization\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_organization = gcp.apigee.AddonsConfig(\"testOrganization\",\n addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs(\n api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs(\n enabled=True,\n ),\n monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs(\n enabled=True,\n ),\n ),\n org=\"test_organization\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testOrganization = new Gcp.Apigee.AddonsConfig(\"testOrganization\", new()\n {\n AddonsConfigDetails = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigArgs\n {\n ApiSecurityConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs\n {\n Enabled = true,\n },\n MonetizationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigMonetizationConfigArgs\n {\n Enabled = true,\n },\n },\n Org = \"test_organization\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigee.NewAddonsConfig(ctx, \"testOrganization\", \u0026apigee.AddonsConfigArgs{\n\t\t\tAddonsConfig: \u0026apigee.AddonsConfigAddonsConfigArgs{\n\t\t\t\tApiSecurityConfig: \u0026apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tMonetizationConfig: \u0026apigee.AddonsConfigAddonsConfigMonetizationConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrg: pulumi.String(\"test_organization\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.apigee.AddonsConfig;\nimport com.pulumi.gcp.apigee.AddonsConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigMonetizationConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testOrganization = new AddonsConfig(\"testOrganization\", AddonsConfigArgs.builder() \n .addonsConfig(AddonsConfigAddonsConfigArgs.builder()\n .apiSecurityConfig(AddonsConfigAddonsConfigApiSecurityConfigArgs.builder()\n .enabled(true)\n .build())\n .monetizationConfig(AddonsConfigAddonsConfigMonetizationConfigArgs.builder()\n .enabled(true)\n .build())\n .build())\n .org(\"test_organization\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testOrganization:\n type: gcp:apigee:AddonsConfig\n properties:\n addonsConfig:\n apiSecurityConfig:\n enabled: true\n monetizationConfig:\n enabled: true\n org: test_organization\n```\n{{% /example %}}\n{{% example %}}\n### Apigee Addons Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigee = new gcp.projects.Service(\"apigee\", {\n project: current.then(current =\u003e current.project),\n service: \"apigee.googleapis.com\",\n});\nconst compute = new gcp.projects.Service(\"compute\", {\n project: current.then(current =\u003e current.project),\n service: \"compute.googleapis.com\",\n});\nconst servicenetworking = new gcp.projects.Service(\"servicenetworking\", {\n project: current.then(current =\u003e current.project),\n service: \"servicenetworking.googleapis.com\",\n});\nconst apigeeNetwork = new gcp.compute.Network(\"apigeeNetwork\", {project: current.then(current =\u003e current.project)}, {\n dependsOn: [compute],\n});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigeeRange\", {\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n project: current.then(current =\u003e current.project),\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigeeVpcConnection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n billingType: \"EVALUATION\",\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigee,\n ],\n});\nconst testOrganization = new gcp.apigee.AddonsConfig(\"testOrganization\", {\n org: org.name,\n addonsConfig: {\n integrationConfig: {\n enabled: true,\n },\n apiSecurityConfig: {\n enabled: true,\n },\n connectorsPlatformConfig: {\n enabled: true,\n },\n monetizationConfig: {\n enabled: true,\n },\n advancedApiOpsConfig: {\n enabled: true,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee = gcp.projects.Service(\"apigee\",\n project=current.project,\n service=\"apigee.googleapis.com\")\ncompute = gcp.projects.Service(\"compute\",\n project=current.project,\n service=\"compute.googleapis.com\")\nservicenetworking = gcp.projects.Service(\"servicenetworking\",\n project=current.project,\n service=\"servicenetworking.googleapis.com\")\napigee_network = gcp.compute.Network(\"apigeeNetwork\", project=current.project,\nopts=pulumi.ResourceOptions(depends_on=[compute]))\napigee_range = gcp.compute.GlobalAddress(\"apigeeRange\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id,\n project=current.project)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigeeVpcConnection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n billing_type=\"EVALUATION\",\n opts=pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee,\n ]))\ntest_organization = gcp.apigee.AddonsConfig(\"testOrganization\",\n org=org.name,\n addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs(\n integration_config=gcp.apigee.AddonsConfigAddonsConfigIntegrationConfigArgs(\n enabled=True,\n ),\n api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs(\n enabled=True,\n ),\n connectors_platform_config=gcp.apigee.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(\n enabled=True,\n ),\n monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs(\n enabled=True,\n ),\n advanced_api_ops_config=gcp.apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(\n enabled=True,\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigee = new Gcp.Projects.Service(\"apigee\", new()\n {\n Project = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n ServiceName = \"apigee.googleapis.com\",\n });\n\n var compute = new Gcp.Projects.Service(\"compute\", new()\n {\n Project = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n ServiceName = \"compute.googleapis.com\",\n });\n\n var servicenetworking = new Gcp.Projects.Service(\"servicenetworking\", new()\n {\n Project = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n ServiceName = \"servicenetworking.googleapis.com\",\n });\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigeeNetwork\", new()\n {\n Project = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n compute,\n },\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigeeRange\", new()\n {\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n Project = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigeeVpcConnection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n BillingType = \"EVALUATION\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n apigeeVpcConnection,\n apigee,\n },\n });\n\n var testOrganization = new Gcp.Apigee.AddonsConfig(\"testOrganization\", new()\n {\n Org = org.Name,\n AddonsConfigDetails = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigArgs\n {\n IntegrationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigIntegrationConfigArgs\n {\n Enabled = true,\n },\n ApiSecurityConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs\n {\n Enabled = true,\n },\n ConnectorsPlatformConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs\n {\n Enabled = true,\n },\n MonetizationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigMonetizationConfigArgs\n {\n Enabled = true,\n },\n AdvancedApiOpsConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs\n {\n Enabled = true,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigee, err := projects.NewService(ctx, \"apigee\", \u0026projects.ServiceArgs{\n\t\t\tProject: *pulumi.String(current.Project),\n\t\t\tService: pulumi.String(\"apigee.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcompute, err := projects.NewService(ctx, \"compute\", \u0026projects.ServiceArgs{\n\t\t\tProject: *pulumi.String(current.Project),\n\t\t\tService: pulumi.String(\"compute.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewService(ctx, \"servicenetworking\", \u0026projects.ServiceArgs{\n\t\t\tProject: *pulumi.String(current.Project),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigeeNetwork\", \u0026compute.NetworkArgs{\n\t\t\tProject: *pulumi.String(current.Project),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcompute,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigeeRange\", \u0026compute.GlobalAddressArgs{\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tProject: *pulumi.String(current.Project),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigeeVpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\torg, err := apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: *pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tBillingType: pulumi.String(\"EVALUATION\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigee,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewAddonsConfig(ctx, \"testOrganization\", \u0026apigee.AddonsConfigArgs{\n\t\t\tOrg: org.Name,\n\t\t\tAddonsConfig: \u0026apigee.AddonsConfigAddonsConfigArgs{\n\t\t\t\tIntegrationConfig: \u0026apigee.AddonsConfigAddonsConfigIntegrationConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tApiSecurityConfig: \u0026apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tConnectorsPlatformConfig: \u0026apigee.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tMonetizationConfig: \u0026apigee.AddonsConfigAddonsConfigMonetizationConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tAdvancedApiOpsConfig: \u0026apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.AddonsConfig;\nimport com.pulumi.gcp.apigee.AddonsConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigIntegrationConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigMonetizationConfigArgs;\nimport com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigee = new Service(\"apigee\", ServiceArgs.builder() \n .project(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .service(\"apigee.googleapis.com\")\n .build());\n\n var compute = new Service(\"compute\", ServiceArgs.builder() \n .project(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .service(\"compute.googleapis.com\")\n .build());\n\n var servicenetworking = new Service(\"servicenetworking\", ServiceArgs.builder() \n .project(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .service(\"servicenetworking.googleapis.com\")\n .build());\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder() \n .project(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .build(), CustomResourceOptions.builder()\n .dependsOn(compute)\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder() \n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .project(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder() \n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder() \n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .billingType(\"EVALUATION\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigee)\n .build());\n\n var testOrganization = new AddonsConfig(\"testOrganization\", AddonsConfigArgs.builder() \n .org(org.name())\n .addonsConfig(AddonsConfigAddonsConfigArgs.builder()\n .integrationConfig(AddonsConfigAddonsConfigIntegrationConfigArgs.builder()\n .enabled(true)\n .build())\n .apiSecurityConfig(AddonsConfigAddonsConfigApiSecurityConfigArgs.builder()\n .enabled(true)\n .build())\n .connectorsPlatformConfig(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.builder()\n .enabled(true)\n .build())\n .monetizationConfig(AddonsConfigAddonsConfigMonetizationConfigArgs.builder()\n .enabled(true)\n .build())\n .advancedApiOpsConfig(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.builder()\n .enabled(true)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigee:\n type: gcp:projects:Service\n properties:\n project: ${current.project}\n service: apigee.googleapis.com\n compute:\n type: gcp:projects:Service\n properties:\n project: ${current.project}\n service: compute.googleapis.com\n servicenetworking:\n type: gcp:projects:Service\n properties:\n project: ${current.project}\n service: servicenetworking.googleapis.com\n apigeeNetwork:\n type: gcp:compute:Network\n properties:\n project: ${current.project}\n options:\n dependson:\n - ${compute}\n apigeeRange:\n type: gcp:compute:GlobalAddress\n properties:\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n project: ${current.project}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n billingType: EVALUATION\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigee}\n testOrganization:\n type: gcp:apigee:AddonsConfig\n properties:\n org: ${org.name}\n addonsConfig:\n integrationConfig:\n enabled: true\n apiSecurityConfig:\n enabled: true\n connectorsPlatformConfig:\n enabled: true\n monetizationConfig:\n enabled: true\n advancedApiOpsConfig:\n enabled: true\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAddonsConfig can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}}\n```\n\n ", + "properties": { + "addonsConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfig:AddonsConfigAddonsConfig", + "description": "Addon configurations of the Apigee organization.\nStructure is documented below.\n", + "language": { + "csharp": { + "name": "AddonsConfigDetails" + } + } + }, + "org": { + "type": "string", + "description": "Name of the Apigee organization.\n" + } + }, + "required": [ + "org" + ], + "inputProperties": { + "addonsConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfig:AddonsConfigAddonsConfig", + "description": "Addon configurations of the Apigee organization.\nStructure is documented below.\n", + "language": { + "csharp": { + "name": "AddonsConfigDetails" + } + } + }, + "org": { + "type": "string", + "description": "Name of the Apigee organization.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "org" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AddonsConfig resources.\n", + "properties": { + "addonsConfig": { + "$ref": "#/types/gcp:apigee/AddonsConfigAddonsConfig:AddonsConfigAddonsConfig", + "description": "Addon configurations of the Apigee organization.\nStructure is documented below.\n", + "language": { + "csharp": { + "name": "AddonsConfigDetails" + } + } + }, + "org": { + "type": "string", + "description": "Name of the Apigee organization.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "gcp:apigee/endpointAttachment:EndpointAttachment": { "description": "Apigee Endpoint Attachment.\n\n\nTo get more information about EndpointAttachment, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.endpointAttachments/create)\n* How-to Guides\n * [Creating an environment](https://cloud.google.com/apigee/docs/api-platform/get-started/create-environment)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Apigee Endpoint Attachment Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigeeNetwork\", {});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigeeRange\", {\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigeeVpcConnection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigeeOrg\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeEndpointAttachment = new gcp.apigee.EndpointAttachment(\"apigeeEndpointAttachment\", {\n orgId: apigeeOrg.id,\n endpointAttachmentId: \"test1\",\n location: \"{google_compute_service_attachment location}\",\n serviceAttachment: \"{google_compute_service_attachment id}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigeeNetwork\")\napigee_range = gcp.compute.GlobalAddress(\"apigeeRange\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigeeVpcConnection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigeeOrg\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts=pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_endpoint_attachment = gcp.apigee.EndpointAttachment(\"apigeeEndpointAttachment\",\n org_id=apigee_org.id,\n endpoint_attachment_id=\"test1\",\n location=\"{google_compute_service_attachment location}\",\n service_attachment=\"{google_compute_service_attachment id}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigeeNetwork\");\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigeeRange\", new()\n {\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigeeVpcConnection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigeeOrg\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeEndpointAttachment = new Gcp.Apigee.EndpointAttachment(\"apigeeEndpointAttachment\", new()\n {\n OrgId = apigeeOrg.Id,\n EndpointAttachmentId = \"test1\",\n Location = \"{google_compute_service_attachment location}\",\n ServiceAttachment = \"{google_compute_service_attachment id}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigeeNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigeeRange\", \u0026compute.GlobalAddressArgs{\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigeeVpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigeeOrg\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: *pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewEndpointAttachment(ctx, \"apigeeEndpointAttachment\", \u0026apigee.EndpointAttachmentArgs{\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tEndpointAttachmentId: pulumi.String(\"test1\"),\n\t\t\tLocation: pulumi.String(\"{google_compute_service_attachment location}\"),\n\t\t\tServiceAttachment: pulumi.String(\"{google_compute_service_attachment id}\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.EndpointAttachment;\nimport com.pulumi.gcp.apigee.EndpointAttachmentArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\");\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder() \n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder() \n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder() \n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeEndpointAttachment = new EndpointAttachment(\"apigeeEndpointAttachment\", EndpointAttachmentArgs.builder() \n .orgId(apigeeOrg.id())\n .endpointAttachmentId(\"test1\")\n .location(\"{google_compute_service_attachment location}\")\n .serviceAttachment(\"{google_compute_service_attachment id}\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n properties:\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeEndpointAttachment:\n type: gcp:apigee:EndpointAttachment\n properties:\n orgId: ${apigeeOrg.id}\n endpointAttachmentId: test1\n location: '{google_compute_service_attachment location}'\n serviceAttachment: '{google_compute_service_attachment id}'\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEndpointAttachment can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:apigee/endpointAttachment:EndpointAttachment default {{org_id}}/endpointAttachments/{{endpoint_attachment_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:apigee/endpointAttachment:EndpointAttachment default {{org_id}}/{{endpoint_attachment_id}}\n```\n\n ", "properties": { @@ -122913,6 +124467,311 @@ "type": "object" } }, + "gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding": { + "description": "\n\n\n## Import\n\nFor all import syntaxes, the \"resource in question\" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com\"\n```\n\n IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer\"\n```\n\n IAM policy imports use the identifier of the resource in question, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}}\n```\n\n -\u003e **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the\n\nfull name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ", + "properties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMBindingCondition:ConnectionIAMBindingCondition" + }, + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string" + }, + "members": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n" + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n" + } + }, + "required": [ + "etag", + "location", + "members", + "name", + "project", + "role" + ], + "inputProperties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMBindingCondition:ConnectionIAMBindingCondition", + "willReplaceOnChanges": true + }, + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "members": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "members", + "role" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ConnectionIAMBinding resources.\n", + "properties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMBindingCondition:ConnectionIAMBindingCondition", + "willReplaceOnChanges": true + }, + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "members": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember": { + "description": "\n\n\n## Import\n\nFor all import syntaxes, the \"resource in question\" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com\"\n```\n\n IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer\"\n```\n\n IAM policy imports use the identifier of the resource in question, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}}\n```\n\n -\u003e **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the\n\nfull name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ", + "properties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMMemberCondition:ConnectionIAMMemberCondition" + }, + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string" + }, + "member": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n" + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n" + } + }, + "required": [ + "etag", + "location", + "member", + "name", + "project", + "role" + ], + "inputProperties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMMemberCondition:ConnectionIAMMemberCondition", + "willReplaceOnChanges": true + }, + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "member": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "member", + "role" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ConnectionIAMMember resources.\n", + "properties": { + "condition": { + "$ref": "#/types/gcp:cloudbuildv2/ConnectionIAMMemberCondition:ConnectionIAMMemberCondition", + "willReplaceOnChanges": true + }, + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "member": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "role": { + "type": "string", + "description": "The role that should be applied. Only one\n`gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format\n`[projects|organizations]/{parent-name}/roles/{role-name}`.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy": { + "description": "\n\n\n## Import\n\nFor all import syntaxes, the \"resource in question\" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com\"\n```\n\n IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor \"projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer\"\n```\n\n IAM policy imports use the identifier of the resource in question, e.g.\n\n```sh\n $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}}\n```\n\n -\u003e **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the\n\nfull name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ", + "properties": { + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string" + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n" + }, + "policyData": { + "type": "string", + "description": "The policy data generated by\na `gcp.organizations.getIAMPolicy` data source.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n" + } + }, + "required": [ + "etag", + "location", + "name", + "policyData", + "project" + ], + "inputProperties": { + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "policyData": { + "type": "string", + "description": "The policy data generated by\na `gcp.organizations.getIAMPolicy` data source.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "policyData" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ConnectionIAMPolicy resources.\n", + "properties": { + "etag": { + "type": "string", + "description": "(Computed) The etag of the IAM policy.\n" + }, + "location": { + "type": "string", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Used to find the parent resource to bind the IAM policy to\n", + "willReplaceOnChanges": true + }, + "policyData": { + "type": "string", + "description": "The policy data generated by\na `gcp.organizations.getIAMPolicy` data source.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "gcp:cloudbuildv2/repository:Repository": { "description": "Beta only: The Cloudbuildv2 Repository resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Repository In GitHub Connection\nCreates a Repository resource inside a Connection to github.com\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst github_token_secret = new gcp.secretmanager.Secret(\"github-token-secret\", {\n secretId: \"github-token-secret\",\n replication: {\n automatic: true,\n },\n}, {\n provider: google_beta,\n});\nconst github_token_secret_version = new gcp.secretmanager.SecretVersion(\"github-token-secret-version\", {\n secret: github_token_secret.id,\n secretData: fs.readFileSync(\"my-github-token.txt\"),\n}, {\n provider: google_beta,\n});\nconst p4sa-secretAccessor = gcp.organizations.getIAMPolicy({\n bindings: [{\n role: \"roles/secretmanager.secretAccessor\",\n members: [\"serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\"],\n }],\n});\nconst policy = new gcp.secretmanager.SecretIamPolicy(\"policy\", {\n secretId: github_token_secret.secretId,\n policyData: p4sa_secretAccessor.then(p4sa_secretAccessor =\u003e p4sa_secretAccessor.policyData),\n}, {\n provider: google_beta,\n});\nconst my_connection = new gcp.cloudbuildv2.Connection(\"my-connection\", {\n location: \"us-west1\",\n githubConfig: {\n appInstallationId: 123123,\n authorizerCredential: {\n oauthTokenSecretVersion: github_token_secret_version.id,\n },\n },\n}, {\n provider: google_beta,\n});\nconst my_repository = new gcp.cloudbuildv2.Repository(\"my-repository\", {\n location: \"us-west1\",\n parentConnection: my_connection.name,\n remoteUri: \"https://github.com/myuser/myrepo.git\",\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ngithub_token_secret = gcp.secretmanager.Secret(\"github-token-secret\",\n secret_id=\"github-token-secret\",\n replication=gcp.secretmanager.SecretReplicationArgs(\n automatic=True,\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\ngithub_token_secret_version = gcp.secretmanager.SecretVersion(\"github-token-secret-version\",\n secret=github_token_secret.id,\n secret_data=(lambda path: open(path).read())(\"my-github-token.txt\"),\n opts=pulumi.ResourceOptions(provider=google_beta))\np4sa_secret_accessor = gcp.organizations.get_iam_policy(bindings=[gcp.organizations.GetIAMPolicyBindingArgs(\n role=\"roles/secretmanager.secretAccessor\",\n members=[\"serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\"],\n)])\npolicy = gcp.secretmanager.SecretIamPolicy(\"policy\",\n secret_id=github_token_secret.secret_id,\n policy_data=p4sa_secret_accessor.policy_data,\n opts=pulumi.ResourceOptions(provider=google_beta))\nmy_connection = gcp.cloudbuildv2.Connection(\"my-connection\",\n location=\"us-west1\",\n github_config=gcp.cloudbuildv2.ConnectionGithubConfigArgs(\n app_installation_id=123123,\n authorizer_credential=gcp.cloudbuildv2.ConnectionGithubConfigAuthorizerCredentialArgs(\n oauth_token_secret_version=github_token_secret_version.id,\n ),\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\nmy_repository = gcp.cloudbuildv2.Repository(\"my-repository\",\n location=\"us-west1\",\n parent_connection=my_connection.name,\n remote_uri=\"https://github.com/myuser/myrepo.git\",\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var github_token_secret = new Gcp.SecretManager.Secret(\"github-token-secret\", new()\n {\n SecretId = \"github-token-secret\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n Automatic = true,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var github_token_secret_version = new Gcp.SecretManager.SecretVersion(\"github-token-secret-version\", new()\n {\n Secret = github_token_secret.Id,\n SecretData = File.ReadAllText(\"my-github-token.txt\"),\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var p4sa_secretAccessor = Gcp.Organizations.GetIAMPolicy.Invoke(new()\n {\n Bindings = new[]\n {\n new Gcp.Organizations.Inputs.GetIAMPolicyBindingInputArgs\n {\n Role = \"roles/secretmanager.secretAccessor\",\n Members = new[]\n {\n \"serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\",\n },\n },\n },\n });\n\n var policy = new Gcp.SecretManager.SecretIamPolicy(\"policy\", new()\n {\n SecretId = github_token_secret.SecretId,\n PolicyData = p4sa_secretAccessor.Apply(p4sa_secretAccessor =\u003e p4sa_secretAccessor.Apply(getIAMPolicyResult =\u003e getIAMPolicyResult.PolicyData)),\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var my_connection = new Gcp.CloudBuildV2.Connection(\"my-connection\", new()\n {\n Location = \"us-west1\",\n GithubConfig = new Gcp.CloudBuildV2.Inputs.ConnectionGithubConfigArgs\n {\n AppInstallationId = 123123,\n AuthorizerCredential = new Gcp.CloudBuildV2.Inputs.ConnectionGithubConfigAuthorizerCredentialArgs\n {\n OauthTokenSecretVersion = github_token_secret_version.Id,\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var my_repository = new Gcp.CloudBuildV2.Repository(\"my-repository\", new()\n {\n Location = \"us-west1\",\n ParentConnection = my_connection.Name,\n RemoteUri = \"https://github.com/myuser/myrepo.git\",\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/cloudbuildv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := secretmanager.NewSecret(ctx, \"github-token-secret\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"github-token-secret\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tAutomatic: pulumi.Bool(true),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretVersion(ctx, \"github-token-secret-version\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: github_token_secret.ID(),\n\t\t\tSecretData: readFileOrPanic(\"my-github-token.txt\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tp4sa_secretAccessor, err := organizations.LookupIAMPolicy(ctx, \u0026organizations.LookupIAMPolicyArgs{\n\t\t\tBindings: []organizations.GetIAMPolicyBinding{\n\t\t\t\t{\n\t\t\t\t\tRole: \"roles/secretmanager.secretAccessor\",\n\t\t\t\t\tMembers: []string{\n\t\t\t\t\t\t\"serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretmanager.NewSecretIamPolicy(ctx, \"policy\", \u0026secretmanager.SecretIamPolicyArgs{\n\t\t\tSecretId: github_token_secret.SecretId,\n\t\t\tPolicyData: *pulumi.String(p4sa_secretAccessor.PolicyData),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudbuildv2.NewConnection(ctx, \"my-connection\", \u0026cloudbuildv2.ConnectionArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tGithubConfig: \u0026cloudbuildv2.ConnectionGithubConfigArgs{\n\t\t\t\tAppInstallationId: pulumi.Int(123123),\n\t\t\t\tAuthorizerCredential: \u0026cloudbuildv2.ConnectionGithubConfigAuthorizerCredentialArgs{\n\t\t\t\t\tOauthTokenSecretVersion: github_token_secret_version.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudbuildv2.NewRepository(ctx, \"my-repository\", \u0026cloudbuildv2.RepositoryArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tParentConnection: my_connection.Name,\n\t\t\tRemoteUri: pulumi.String(\"https://github.com/myuser/myrepo.git\"),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetIAMPolicyArgs;\nimport com.pulumi.gcp.secretmanager.SecretIamPolicy;\nimport com.pulumi.gcp.secretmanager.SecretIamPolicyArgs;\nimport com.pulumi.gcp.cloudbuildv2.Connection;\nimport com.pulumi.gcp.cloudbuildv2.ConnectionArgs;\nimport com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigArgs;\nimport com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigAuthorizerCredentialArgs;\nimport com.pulumi.gcp.cloudbuildv2.Repository;\nimport com.pulumi.gcp.cloudbuildv2.RepositoryArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var github_token_secret = new Secret(\"github-token-secret\", SecretArgs.builder() \n .secretId(\"github-token-secret\")\n .replication(SecretReplicationArgs.builder()\n .automatic(true)\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var github_token_secret_version = new SecretVersion(\"github-token-secret-version\", SecretVersionArgs.builder() \n .secret(github_token_secret.id())\n .secretData(Files.readString(Paths.get(\"my-github-token.txt\")))\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n final var p4sa-secretAccessor = OrganizationsFunctions.getIAMPolicy(GetIAMPolicyArgs.builder()\n .bindings(GetIAMPolicyBindingArgs.builder()\n .role(\"roles/secretmanager.secretAccessor\")\n .members(\"serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\")\n .build())\n .build());\n\n var policy = new SecretIamPolicy(\"policy\", SecretIamPolicyArgs.builder() \n .secretId(github_token_secret.secretId())\n .policyData(p4sa_secretAccessor.policyData())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var my_connection = new Connection(\"my-connection\", ConnectionArgs.builder() \n .location(\"us-west1\")\n .githubConfig(ConnectionGithubConfigArgs.builder()\n .appInstallationId(123123)\n .authorizerCredential(ConnectionGithubConfigAuthorizerCredentialArgs.builder()\n .oauthTokenSecretVersion(github_token_secret_version.id())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var my_repository = new Repository(\"my-repository\", RepositoryArgs.builder() \n .location(\"us-west1\")\n .parentConnection(my_connection.name())\n .remoteUri(\"https://github.com/myuser/myrepo.git\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n github-token-secret:\n type: gcp:secretmanager:Secret\n properties:\n secretId: github-token-secret\n replication:\n automatic: true\n options:\n provider: ${[\"google-beta\"]}\n github-token-secret-version:\n type: gcp:secretmanager:SecretVersion\n properties:\n secret: ${[\"github-token-secret\"].id}\n secretData:\n fn::readFile: my-github-token.txt\n options:\n provider: ${[\"google-beta\"]}\n policy:\n type: gcp:secretmanager:SecretIamPolicy\n properties:\n secretId: ${[\"github-token-secret\"].secretId}\n policyData: ${[\"p4sa-secretAccessor\"].policyData}\n options:\n provider: ${[\"google-beta\"]}\n my-connection:\n type: gcp:cloudbuildv2:Connection\n properties:\n location: us-west1\n githubConfig:\n appInstallationId: 123123\n authorizerCredential:\n oauthTokenSecretVersion: ${[\"github-token-secret-version\"].id}\n options:\n provider: ${[\"google-beta\"]}\n my-repository:\n type: gcp:cloudbuildv2:Repository\n properties:\n location: us-west1\n parentConnection: ${[\"my-connection\"].name}\n remoteUri: https://github.com/myuser/myrepo.git\n options:\n provider: ${[\"google-beta\"]}\nvariables:\n p4sa-secretAccessor:\n fn::invoke:\n Function: gcp:organizations:getIAMPolicy\n Arguments:\n bindings:\n - role: roles/secretmanager.secretAccessor\n members:\n - serviceAccount:service-123456789@gcp-sa-cloudbuild.iam.gserviceaccount.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRepository can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:cloudbuildv2/repository:Repository default projects/{{project}}/locations/{{location}}/connections/{{parent_connection}}/repositories/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:cloudbuildv2/repository:Repository default {{project}}/{{location}}/{{parent_connection}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:cloudbuildv2/repository:Repository default {{location}}/{{parent_connection}}/{{name}}\n```\n\n ", "properties": { @@ -130290,6 +132149,13 @@ }, "description": "A list of interfaces on this external VPN gateway.\nStructure is documented below.\n" }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the external VPN gateway resource.\n" + }, "name": { "type": "string", "description": "Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression `a-z?` which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n" @@ -130326,6 +132192,14 @@ "description": "A list of interfaces on this external VPN gateway.\nStructure is documented below.\n", "willReplaceOnChanges": true }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the external VPN gateway resource.\n", + "willReplaceOnChanges": true + }, "name": { "type": "string", "description": "Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression `a-z?` which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n", @@ -130358,6 +132232,14 @@ "description": "A list of interfaces on this external VPN gateway.\nStructure is documented below.\n", "willReplaceOnChanges": true }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the external VPN gateway resource.\n", + "willReplaceOnChanges": true + }, "name": { "type": "string", "description": "Name of the resource. Provided by the client when the resource is\ncreated. The name must be 1-63 characters long, and comply with\nRFC1035. Specifically, the name must be 1-63 characters long and\nmatch the regular expression `a-z?` which means\nthe first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n", @@ -135117,6 +136999,10 @@ "type": "string", "description": "The full URL of the instance group created by the manager.\n" }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/InstanceGroupManagerInstanceLifecyclePolicy:InstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -135210,6 +137096,7 @@ "baseInstanceName", "fingerprint", "instanceGroup", + "instanceLifecyclePolicy", "name", "operation", "project", @@ -135238,6 +137125,10 @@ "type": "string", "description": "An optional textual description of the instance\ngroup manager.\n" }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/InstanceGroupManagerInstanceLifecyclePolicy:InstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -135348,6 +137239,10 @@ "type": "string", "description": "The full URL of the instance group created by the manager.\n" }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/InstanceGroupManagerInstanceLifecyclePolicy:InstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -135962,6 +137857,10 @@ "$ref": "#/types/gcp:compute/InstanceTemplateReservationAffinity:InstanceTemplateReservationAffinity", "description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n" }, + "resourcePolicies": { + "type": "string", + "description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n" + }, "scheduling": { "$ref": "#/types/gcp:compute/InstanceTemplateScheduling:InstanceTemplateScheduling", "description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n" @@ -136120,6 +138019,11 @@ "description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n", "willReplaceOnChanges": true }, + "resourcePolicies": { + "type": "string", + "description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n", + "willReplaceOnChanges": true + }, "scheduling": { "$ref": "#/types/gcp:compute/InstanceTemplateScheduling:InstanceTemplateScheduling", "description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n", @@ -136270,6 +138174,11 @@ "description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n", "willReplaceOnChanges": true }, + "resourcePolicies": { + "type": "string", + "description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n", + "willReplaceOnChanges": true + }, "scheduling": { "$ref": "#/types/gcp:compute/InstanceTemplateScheduling:InstanceTemplateScheduling", "description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n", @@ -137363,7 +139272,7 @@ }, "mtu": { "type": "integer", - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460\nand the maximum value is 1500 bytes.\n" + "description": "Maximum Transmission Unit in bytes. The default value is 1460 bytes.\nThe minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames).\nNote that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped\nwith an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs\nwith varying MTUs.\n" }, "name": { "type": "string", @@ -137418,7 +139327,7 @@ }, "mtu": { "type": "integer", - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460\nand the maximum value is 1500 bytes.\n", + "description": "Maximum Transmission Unit in bytes. The default value is 1460 bytes.\nThe minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames).\nNote that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped\nwith an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs\nwith varying MTUs.\n", "willReplaceOnChanges": true }, "name": { @@ -137469,7 +139378,7 @@ }, "mtu": { "type": "integer", - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460\nand the maximum value is 1500 bytes.\n", + "description": "Maximum Transmission Unit in bytes. The default value is 1460 bytes.\nThe minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames).\nNote that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped\nwith an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs\nwith varying MTUs.\n", "willReplaceOnChanges": true }, "name": { @@ -141291,6 +143200,10 @@ "type": "string", "description": "The full URL of the instance group created by the manager.\n" }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicy:RegionInstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -141383,6 +143296,7 @@ "distributionPolicyZones", "fingerprint", "instanceGroup", + "instanceLifecyclePolicy", "name", "project", "region", @@ -141424,6 +143338,10 @@ "description": "The distribution policy for this managed instance\ngroup. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones).\n", "willReplaceOnChanges": true }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicy:RegionInstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -141548,6 +143466,10 @@ "type": "string", "description": "The full URL of the instance group created by the manager.\n" }, + "instanceLifecyclePolicy": { + "$ref": "#/types/gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicy:RegionInstanceGroupManagerInstanceLifecyclePolicy", + "description": "The instance lifecycle policy for this managed instance group.\n" + }, "listManagedInstancesResults": { "type": "string", "description": "Pagination behavior of the `listManagedInstances` API\nmethod for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`.\nIf `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method.\n`maxResults` and `pageToken` query parameters are ignored and all instances are returned in a single\nresponse. If `PAGINATED`, pagination is enabled, `maxResults` and `pageToken` query parameters are\nrespected.\n" @@ -143023,7 +144945,7 @@ } }, "gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### Region Target Tcp Proxy Basic\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxy;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"europe-west4\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .protocol(\"TCP\")\n .timeoutSec(10)\n .region(\"europe-west4\")\n .healthChecks(defaultRegionHealthCheck.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var defaultRegionTargetTcpProxy = new RegionTargetTcpProxy(\"defaultRegionTargetTcpProxy\", RegionTargetTcpProxyArgs.builder() \n .region(\"europe-west4\")\n .backendService(defaultRegionBackendService.id())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultRegionTargetTcpProxy:\n type: gcp:compute:RegionTargetTcpProxy\n properties:\n region: europe-west4\n backendService: ${defaultRegionBackendService.id}\n options:\n provider: ${[\"google-beta\"]}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n properties:\n protocol: TCP\n timeoutSec: 10\n region: europe-west4\n healthChecks:\n - ${defaultRegionHealthCheck.id}\n loadBalancingScheme: INTERNAL_MANAGED\n options:\n provider: ${[\"google-beta\"]}\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: europe-west4\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n options:\n provider: ${[\"google-beta\"]}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRegionTargetTcpProxy can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{name}}\n```\n\n ", + "description": "Represents a RegionTargetTcpProxy resource, which is used by one or more\nforwarding rules to route incoming TCP requests to a regional TCP proxy load\nbalancer.\n\n\nTo get more information about RegionTargetTcpProxy, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Region Target Tcp Proxy Basic\n\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionHealthCheck;\nimport com.pulumi.gcp.compute.RegionHealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.RegionHealthCheckTcpHealthCheckArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxy;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultRegionHealthCheck = new RegionHealthCheck(\"defaultRegionHealthCheck\", RegionHealthCheckArgs.builder() \n .region(\"europe-west4\")\n .timeoutSec(1)\n .checkIntervalSec(1)\n .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder()\n .port(\"80\")\n .build())\n .build());\n\n var defaultRegionBackendService = new RegionBackendService(\"defaultRegionBackendService\", RegionBackendServiceArgs.builder() \n .protocol(\"TCP\")\n .timeoutSec(10)\n .region(\"europe-west4\")\n .healthChecks(defaultRegionHealthCheck.id())\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .build());\n\n var defaultRegionTargetTcpProxy = new RegionTargetTcpProxy(\"defaultRegionTargetTcpProxy\", RegionTargetTcpProxyArgs.builder() \n .region(\"europe-west4\")\n .backendService(defaultRegionBackendService.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultRegionTargetTcpProxy:\n type: gcp:compute:RegionTargetTcpProxy\n properties:\n region: europe-west4\n backendService: ${defaultRegionBackendService.id}\n defaultRegionBackendService:\n type: gcp:compute:RegionBackendService\n properties:\n protocol: TCP\n timeoutSec: 10\n region: europe-west4\n healthChecks:\n - ${defaultRegionHealthCheck.id}\n loadBalancingScheme: INTERNAL_MANAGED\n defaultRegionHealthCheck:\n type: gcp:compute:RegionHealthCheck\n properties:\n region: europe-west4\n timeoutSec: 1\n checkIntervalSec: 1\n tcpHealthCheck:\n port: '80'\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRegionTargetTcpProxy can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy default {{name}}\n```\n\n ", "properties": { "backendService": { "type": "string", @@ -153878,7 +155800,7 @@ } }, "gcp:datafusion/instance:Instance": { - "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n options: {\n prober_test_run: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ),\n options={\n \"prober_test_run\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .options(Map.of(\"prober_test_run\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{name}}\n```\n\n ", + "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datafusion/instance:Instance default {{name}}\n```\n\n ", "properties": { "apiEndpoint": { "type": "string", @@ -154102,8 +156024,7 @@ }, "version": { "type": "string", - "description": "Current version of the Data Fusion.\n", - "willReplaceOnChanges": true + "description": "Current version of the Data Fusion.\n" }, "zone": { "type": "string", @@ -154241,8 +156162,7 @@ }, "version": { "type": "string", - "description": "Current version of the Data Fusion.\n", - "willReplaceOnChanges": true + "description": "Current version of the Data Fusion.\n" }, "zone": { "type": "string", @@ -158388,7 +160308,7 @@ } }, "gcp:datastream/stream:Stream": { - "description": "A resource representing streaming data from a source to a destination.\n\n\nTo get more information about Stream, see:\n\n* [API documentation](https://cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.streams)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastream/docs/create-a-stream)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Datastream Stream Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {instance: instance.name});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst viewer = new gcp.storage.BucketIAMMember(\"viewer\", {\n bucket: bucket.name,\n role: \"roles/storage.objectViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst creator = new gcp.storage.BucketIAMMember(\"creator\", {\n bucket: bucket.name,\n role: \"roles/storage.objectCreator\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst reader = new gcp.storage.BucketIAMMember(\"reader\", {\n bucket: bucket.name,\n role: \"roles/storage.legacyBucketReader\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst keyUser = new gcp.kms.CryptoKeyIAMMember(\"keyUser\", {\n cryptoKeyId: \"kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n gcsProfile: {\n bucket: bucket.name,\n rootPath: \"/path\",\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n desiredState: \"NOT_STARTED\",\n location: \"us-central1\",\n displayName: \"my stream\",\n labels: {\n key: \"value\",\n },\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {\n includeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"includedTable\",\n mysqlColumns: [{\n column: \"includedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n excludeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n maxConcurrentCdcTasks: 5,\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n gcsDestinationConfig: {\n path: \"mydata\",\n fileRotationMb: 200,\n fileRotationInterval: \"900s\",\n jsonFileFormat: {\n schemaFileFormat: \"NO_SCHEMA_FILE\",\n compression: \"GZIP\",\n },\n },\n },\n backfillAll: {\n mysqlExcludedObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n },\n customerManagedEncryptionKey: \"kms-name\",\n}, {\n dependsOn: [keyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n backup_configuration=gcp.sql.DatabaseInstanceSettingsBackupConfigurationArgs(\n enabled=True,\n binary_log_enabled=True,\n ),\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n authorized_networks=[\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.71.242.81\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.28.29\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.6.157\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.234.134\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.239.218\",\n ),\n ],\n ),\n ),\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\", instance=instance.name)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile=gcp.datastream.ConnectionProfileMysqlProfileArgs(\n hostname=instance.public_ip_address,\n username=user.name,\n password=user.password,\n ))\nbucket = gcp.storage.Bucket(\"bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nviewer = gcp.storage.BucketIAMMember(\"viewer\",\n bucket=bucket.name,\n role=\"roles/storage.objectViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ncreator = gcp.storage.BucketIAMMember(\"creator\",\n bucket=bucket.name,\n role=\"roles/storage.objectCreator\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nreader = gcp.storage.BucketIAMMember(\"reader\",\n bucket=bucket.name,\n role=\"roles/storage.legacyBucketReader\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nkey_user = gcp.kms.CryptoKeyIAMMember(\"keyUser\",\n crypto_key_id=\"kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n gcs_profile=gcp.datastream.ConnectionProfileGcsProfileArgs(\n bucket=bucket.name,\n root_path=\"/path\",\n ))\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n desired_state=\"NOT_STARTED\",\n location=\"us-central1\",\n display_name=\"my stream\",\n labels={\n \"key\": \"value\",\n },\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source_connection_profile.id,\n mysql_source_config=gcp.datastream.StreamSourceConfigMysqlSourceConfigArgs(\n include_objects=gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs(\n mysql_databases=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs(\n table=\"includedTable\",\n mysql_columns=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"includedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n exclude_objects=gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs(\n mysql_databases=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs(\n table=\"excludedTable\",\n mysql_columns=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"excludedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n max_concurrent_cdc_tasks=5,\n ),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination_connection_profile.id,\n gcs_destination_config=gcp.datastream.StreamDestinationConfigGcsDestinationConfigArgs(\n path=\"mydata\",\n file_rotation_mb=200,\n file_rotation_interval=\"900s\",\n json_file_format=gcp.datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs(\n schema_file_format=\"NO_SCHEMA_FILE\",\n compression=\"GZIP\",\n ),\n ),\n ),\n backfill_all=gcp.datastream.StreamBackfillAllArgs(\n mysql_excluded_objects=gcp.datastream.StreamBackfillAllMysqlExcludedObjectsArgs(\n mysql_databases=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs(\n table=\"excludedTable\",\n mysql_columns=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"excludedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n ),\n customer_managed_encryption_key=\"kms-name\",\n opts=pulumi.ResourceOptions(depends_on=[key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"sourceConnectionProfile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var viewer = new Gcp.Storage.BucketIAMMember(\"viewer\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var creator = new Gcp.Storage.BucketIAMMember(\"creator\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectCreator\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var reader = new Gcp.Storage.BucketIAMMember(\"reader\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.legacyBucketReader\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var keyUser = new Gcp.Kms.CryptoKeyIAMMember(\"keyUser\", new()\n {\n CryptoKeyId = \"kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destinationConnectionProfile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n GcsProfile = new Gcp.Datastream.Inputs.ConnectionProfileGcsProfileArgs\n {\n Bucket = bucket.Name,\n RootPath = \"/path\",\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n DesiredState = \"NOT_STARTED\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"includedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n MaxConcurrentCdcTasks = 5,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n GcsDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigArgs\n {\n Path = \"mydata\",\n FileRotationMb = 200,\n FileRotationInterval = \"900s\",\n JsonFileFormat = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs\n {\n SchemaFileFormat = \"NO_SCHEMA_FILE\",\n Compression = \"GZIP\",\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n MysqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n },\n CustomerManagedEncryptionKey = \"kms-name\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n keyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"sourceConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"viewer\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"creator\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectCreator\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"reader\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.legacyBucketReader\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"keyUser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destinationConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tGcsProfile: \u0026datastream.ConnectionProfileGcsProfileArgs{\n\t\t\t\tBucket: bucket.Name,\n\t\t\t\tRootPath: pulumi.String(\"/path\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"NOT_STARTED\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: \u0026datastream.StreamSourceConfigMysqlSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"includedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tGcsDestinationConfig: \u0026datastream.StreamDestinationConfigGcsDestinationConfigArgs{\n\t\t\t\t\tPath: pulumi.String(\"mydata\"),\n\t\t\t\t\tFileRotationMb: pulumi.Int(200),\n\t\t\t\t\tFileRotationInterval: pulumi.String(\"900s\"),\n\t\t\t\t\tJsonFileFormat: \u0026datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{\n\t\t\t\t\t\tSchemaFileFormat: pulumi.String(\"NO_SCHEMA_FILE\"),\n\t\t\t\t\t\tCompression: pulumi.String(\"GZIP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tMysqlExcludedObjects: \u0026datastream.StreamBackfillAllMysqlExcludedObjectsArgs{\n\t\t\t\t\tMysqlDatabases: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\tMysqlTables: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomerManagedEncryptionKey: pulumi.String(\"kms-name\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileGcsProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllMysqlExcludedObjectsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder() \n .instance(instance.name())\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder() \n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder() \n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder() \n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var viewer = new BucketIAMMember(\"viewer\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.objectViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var creator = new BucketIAMMember(\"creator\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.objectCreator\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var reader = new BucketIAMMember(\"reader\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.legacyBucketReader\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var keyUser = new CryptoKeyIAMMember(\"keyUser\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(\"kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .gcsProfile(ConnectionProfileGcsProfileArgs.builder()\n .bucket(bucket.name())\n .rootPath(\"/path\")\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder() \n .streamId(\"my-stream\")\n .desiredState(\"NOT_STARTED\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .labels(Map.of(\"key\", \"value\"))\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig(StreamSourceConfigMysqlSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"includedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .maxConcurrentCdcTasks(5)\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .gcsDestinationConfig(StreamDestinationConfigGcsDestinationConfigArgs.builder()\n .path(\"mydata\")\n .fileRotationMb(200)\n .fileRotationInterval(\"900s\")\n .jsonFileFormat(StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs.builder()\n .schemaFileFormat(\"NO_SCHEMA_FILE\")\n .compression(\"GZIP\")\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .mysqlExcludedObjects(StreamBackfillAllMysqlExcludedObjectsArgs.builder()\n .mysqlDatabases(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .build())\n .customerManagedEncryptionKey(\"kms-name\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(keyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bucket:\n type: gcp:storage:Bucket\n properties:\n location: US\n uniformBucketLevelAccess: true\n viewer:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectViewer\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n creator:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectCreator\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n reader:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.legacyBucketReader\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n keyUser:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n gcsProfile:\n bucket: ${bucket.name}\n rootPath: /path\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n desiredState: NOT_STARTED\n location: us-central1\n displayName: my stream\n labels:\n key: value\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig:\n includeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: includedTable\n mysqlColumns:\n - column: includedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n excludeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n maxConcurrentCdcTasks: 5\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n gcsDestinationConfig:\n path: mydata\n fileRotationMb: 200\n fileRotationInterval: 900s\n jsonFileFormat:\n schemaFileFormat: NO_SCHEMA_FILE\n compression: GZIP\n backfillAll:\n mysqlExcludedObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n customerManagedEncryptionKey: kms-name\n options:\n dependson:\n - ${keyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Datastream Stream Bigquery\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {instance: instance.name});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bqSa = gcp.bigquery.getDefaultServiceAccount({});\nconst bigqueryKeyUser = new gcp.kms.CryptoKeyIAMMember(\"bigqueryKeyUser\", {\n cryptoKeyId: \"bigquery-kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: bqSa.then(bqSa =\u003e `serviceAccount:${bqSa.email}`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n location: \"us-central1\",\n displayName: \"my stream\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n bigqueryDestinationConfig: {\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n kmsKeyName: \"bigquery-kms-name\",\n },\n },\n },\n },\n backfillNone: {},\n}, {\n dependsOn: [bigqueryKeyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n backup_configuration=gcp.sql.DatabaseInstanceSettingsBackupConfigurationArgs(\n enabled=True,\n binary_log_enabled=True,\n ),\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n authorized_networks=[\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.71.242.81\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.28.29\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.6.157\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.234.134\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.239.218\",\n ),\n ],\n ),\n ),\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\", instance=instance.name)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile=gcp.datastream.ConnectionProfileMysqlProfileArgs(\n hostname=instance.public_ip_address,\n username=user.name,\n password=user.password,\n ))\nbq_sa = gcp.bigquery.get_default_service_account()\nbigquery_key_user = gcp.kms.CryptoKeyIAMMember(\"bigqueryKeyUser\",\n crypto_key_id=\"bigquery-kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:{bq_sa.email}\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs())\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n location=\"us-central1\",\n display_name=\"my stream\",\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source_connection_profile.id,\n mysql_source_config=gcp.datastream.StreamSourceConfigMysqlSourceConfigArgs(),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination_connection_profile.id,\n bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs(\n source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs(\n dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs(\n location=\"us-central1\",\n kms_key_name=\"bigquery-kms-name\",\n ),\n ),\n ),\n ),\n backfill_none=gcp.datastream.StreamBackfillNoneArgs(),\n opts=pulumi.ResourceOptions(depends_on=[bigquery_key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"sourceConnectionProfile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bqSa = Gcp.BigQuery.GetDefaultServiceAccount.Invoke();\n\n var bigqueryKeyUser = new Gcp.Kms.CryptoKeyIAMMember(\"bigqueryKeyUser\", new()\n {\n CryptoKeyId = \"bigquery-kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:{bqSa.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)}\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destinationConnectionProfile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n KmsKeyName = \"bigquery-kms-name\",\n },\n },\n },\n },\n BackfillNone = null,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n bigqueryKeyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"sourceConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqSa, err := bigquery.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbigqueryKeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"bigqueryKeyUser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"bigquery-kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", bqSa.Email)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destinationConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t\tKmsKeyName: pulumi.String(\"bigquery-kms-name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbigqueryKeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.bigquery.BigqueryFunctions;\nimport com.pulumi.gcp.bigquery.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder() \n .instance(instance.name())\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder() \n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder() \n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n final var bqSa = BigqueryFunctions.getDefaultServiceAccount();\n\n var bigqueryKeyUser = new CryptoKeyIAMMember(\"bigqueryKeyUser\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(\"bigquery-kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:%s\", bqSa.applyValue(getDefaultServiceAccountResult -\u003e getDefaultServiceAccountResult.email())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder() \n .streamId(\"my-stream\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .kmsKeyName(\"bigquery-kms-name\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build(), CustomResourceOptions.builder()\n .dependsOn(bigqueryKeyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bigqueryKeyUser:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: bigquery-kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${bqSa.email}\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n location: us-central1\n displayName: my stream\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n bigqueryDestinationConfig:\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n kmsKeyName: bigquery-kms-name\n backfillNone: {}\n options:\n dependson:\n - ${bigqueryKeyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n bqSa:\n fn::invoke:\n Function: gcp:bigquery:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default projects/{{project}}/locations/{{location}}/streams/{{stream_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default {{project}}/{{location}}/{{stream_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default {{location}}/{{stream_id}}\n```\n\n ", + "description": "A resource representing streaming data from a source to a destination.\n\n\nTo get more information about Stream, see:\n\n* [API documentation](https://cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.streams)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastream/docs/create-a-stream)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Datastream Stream Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {instance: instance.name});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst viewer = new gcp.storage.BucketIAMMember(\"viewer\", {\n bucket: bucket.name,\n role: \"roles/storage.objectViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst creator = new gcp.storage.BucketIAMMember(\"creator\", {\n bucket: bucket.name,\n role: \"roles/storage.objectCreator\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst reader = new gcp.storage.BucketIAMMember(\"reader\", {\n bucket: bucket.name,\n role: \"roles/storage.legacyBucketReader\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst keyUser = new gcp.kms.CryptoKeyIAMMember(\"keyUser\", {\n cryptoKeyId: \"kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n gcsProfile: {\n bucket: bucket.name,\n rootPath: \"/path\",\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n desiredState: \"NOT_STARTED\",\n location: \"us-central1\",\n displayName: \"my stream\",\n labels: {\n key: \"value\",\n },\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {\n includeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"includedTable\",\n mysqlColumns: [{\n column: \"includedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n excludeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n maxConcurrentCdcTasks: 5,\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n gcsDestinationConfig: {\n path: \"mydata\",\n fileRotationMb: 200,\n fileRotationInterval: \"900s\",\n jsonFileFormat: {\n schemaFileFormat: \"NO_SCHEMA_FILE\",\n compression: \"GZIP\",\n },\n },\n },\n backfillAll: {\n mysqlExcludedObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n },\n customerManagedEncryptionKey: \"kms-name\",\n}, {\n dependsOn: [keyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n backup_configuration=gcp.sql.DatabaseInstanceSettingsBackupConfigurationArgs(\n enabled=True,\n binary_log_enabled=True,\n ),\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n authorized_networks=[\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.71.242.81\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.28.29\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.6.157\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.234.134\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.239.218\",\n ),\n ],\n ),\n ),\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\", instance=instance.name)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile=gcp.datastream.ConnectionProfileMysqlProfileArgs(\n hostname=instance.public_ip_address,\n username=user.name,\n password=user.password,\n ))\nbucket = gcp.storage.Bucket(\"bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nviewer = gcp.storage.BucketIAMMember(\"viewer\",\n bucket=bucket.name,\n role=\"roles/storage.objectViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ncreator = gcp.storage.BucketIAMMember(\"creator\",\n bucket=bucket.name,\n role=\"roles/storage.objectCreator\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nreader = gcp.storage.BucketIAMMember(\"reader\",\n bucket=bucket.name,\n role=\"roles/storage.legacyBucketReader\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nkey_user = gcp.kms.CryptoKeyIAMMember(\"keyUser\",\n crypto_key_id=\"kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n gcs_profile=gcp.datastream.ConnectionProfileGcsProfileArgs(\n bucket=bucket.name,\n root_path=\"/path\",\n ))\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n desired_state=\"NOT_STARTED\",\n location=\"us-central1\",\n display_name=\"my stream\",\n labels={\n \"key\": \"value\",\n },\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source_connection_profile.id,\n mysql_source_config=gcp.datastream.StreamSourceConfigMysqlSourceConfigArgs(\n include_objects=gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs(\n mysql_databases=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs(\n table=\"includedTable\",\n mysql_columns=[gcp.datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"includedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n exclude_objects=gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs(\n mysql_databases=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs(\n table=\"excludedTable\",\n mysql_columns=[gcp.datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"excludedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n max_concurrent_cdc_tasks=5,\n ),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination_connection_profile.id,\n gcs_destination_config=gcp.datastream.StreamDestinationConfigGcsDestinationConfigArgs(\n path=\"mydata\",\n file_rotation_mb=200,\n file_rotation_interval=\"900s\",\n json_file_format=gcp.datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs(\n schema_file_format=\"NO_SCHEMA_FILE\",\n compression=\"GZIP\",\n ),\n ),\n ),\n backfill_all=gcp.datastream.StreamBackfillAllArgs(\n mysql_excluded_objects=gcp.datastream.StreamBackfillAllMysqlExcludedObjectsArgs(\n mysql_databases=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs(\n database=\"my-database\",\n mysql_tables=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs(\n table=\"excludedTable\",\n mysql_columns=[gcp.datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs(\n column=\"excludedColumn\",\n data_type=\"VARCHAR\",\n collation=\"utf8mb4\",\n primary_key=False,\n nullable=False,\n ordinal_position=0,\n )],\n )],\n )],\n ),\n ),\n customer_managed_encryption_key=\"kms-name\",\n opts=pulumi.ResourceOptions(depends_on=[key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"sourceConnectionProfile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var viewer = new Gcp.Storage.BucketIAMMember(\"viewer\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var creator = new Gcp.Storage.BucketIAMMember(\"creator\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectCreator\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var reader = new Gcp.Storage.BucketIAMMember(\"reader\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.legacyBucketReader\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var keyUser = new Gcp.Kms.CryptoKeyIAMMember(\"keyUser\", new()\n {\n CryptoKeyId = \"kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destinationConnectionProfile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n GcsProfile = new Gcp.Datastream.Inputs.ConnectionProfileGcsProfileArgs\n {\n Bucket = bucket.Name,\n RootPath = \"/path\",\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n DesiredState = \"NOT_STARTED\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"includedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n MaxConcurrentCdcTasks = 5,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n GcsDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigArgs\n {\n Path = \"mydata\",\n FileRotationMb = 200,\n FileRotationInterval = \"900s\",\n JsonFileFormat = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs\n {\n SchemaFileFormat = \"NO_SCHEMA_FILE\",\n Compression = \"GZIP\",\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n MysqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n },\n CustomerManagedEncryptionKey = \"kms-name\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n keyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"sourceConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"viewer\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"creator\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectCreator\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"reader\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.legacyBucketReader\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"keyUser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destinationConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tGcsProfile: \u0026datastream.ConnectionProfileGcsProfileArgs{\n\t\t\t\tBucket: bucket.Name,\n\t\t\t\tRootPath: pulumi.String(\"/path\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"NOT_STARTED\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: \u0026datastream.StreamSourceConfigMysqlSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"includedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tGcsDestinationConfig: \u0026datastream.StreamDestinationConfigGcsDestinationConfigArgs{\n\t\t\t\t\tPath: pulumi.String(\"mydata\"),\n\t\t\t\t\tFileRotationMb: pulumi.Int(200),\n\t\t\t\t\tFileRotationInterval: pulumi.String(\"900s\"),\n\t\t\t\t\tJsonFileFormat: \u0026datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{\n\t\t\t\t\t\tSchemaFileFormat: pulumi.String(\"NO_SCHEMA_FILE\"),\n\t\t\t\t\t\tCompression: pulumi.String(\"GZIP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tMysqlExcludedObjects: \u0026datastream.StreamBackfillAllMysqlExcludedObjectsArgs{\n\t\t\t\t\tMysqlDatabases: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\tMysqlTables: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomerManagedEncryptionKey: pulumi.String(\"kms-name\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileGcsProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllMysqlExcludedObjectsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder() \n .instance(instance.name())\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder() \n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder() \n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder() \n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var viewer = new BucketIAMMember(\"viewer\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.objectViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var creator = new BucketIAMMember(\"creator\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.objectCreator\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var reader = new BucketIAMMember(\"reader\", BucketIAMMemberArgs.builder() \n .bucket(bucket.name())\n .role(\"roles/storage.legacyBucketReader\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var keyUser = new CryptoKeyIAMMember(\"keyUser\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(\"kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .gcsProfile(ConnectionProfileGcsProfileArgs.builder()\n .bucket(bucket.name())\n .rootPath(\"/path\")\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder() \n .streamId(\"my-stream\")\n .desiredState(\"NOT_STARTED\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .labels(Map.of(\"key\", \"value\"))\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig(StreamSourceConfigMysqlSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"includedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .maxConcurrentCdcTasks(5)\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .gcsDestinationConfig(StreamDestinationConfigGcsDestinationConfigArgs.builder()\n .path(\"mydata\")\n .fileRotationMb(200)\n .fileRotationInterval(\"900s\")\n .jsonFileFormat(StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs.builder()\n .schemaFileFormat(\"NO_SCHEMA_FILE\")\n .compression(\"GZIP\")\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .mysqlExcludedObjects(StreamBackfillAllMysqlExcludedObjectsArgs.builder()\n .mysqlDatabases(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .build())\n .customerManagedEncryptionKey(\"kms-name\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(keyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bucket:\n type: gcp:storage:Bucket\n properties:\n location: US\n uniformBucketLevelAccess: true\n viewer:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectViewer\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n creator:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectCreator\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n reader:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.legacyBucketReader\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n keyUser:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n gcsProfile:\n bucket: ${bucket.name}\n rootPath: /path\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n desiredState: NOT_STARTED\n location: us-central1\n displayName: my stream\n labels:\n key: value\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig:\n includeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: includedTable\n mysqlColumns:\n - column: includedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n excludeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n maxConcurrentCdcTasks: 5\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n gcsDestinationConfig:\n path: mydata\n fileRotationMb: 200\n fileRotationInterval: 900s\n jsonFileFormat:\n schemaFileFormat: NO_SCHEMA_FILE\n compression: GZIP\n backfillAll:\n mysqlExcludedObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n customerManagedEncryptionKey: kms-name\n options:\n dependson:\n - ${keyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Datastream Stream Postgresql\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Postgresql Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n postgresqlProfile: {\n hostname: \"hostname\",\n port: 3306,\n username: \"user\",\n password: \"pass\",\n database: \"postgres\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"Postgres to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n postgresqlSourceConfig: {\n maxConcurrentBackfillTasks: 12,\n publication: \"publication\",\n replicationSlot: \"replication_slot\",\n includeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n postgresqlExcludedObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Postgresql Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n postgresql_profile=gcp.datastream.ConnectionProfilePostgresqlProfileArgs(\n hostname=\"hostname\",\n port=3306,\n username=\"user\",\n password=\"pass\",\n database=\"postgres\",\n ))\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs())\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"Postgres to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source.id,\n postgresql_source_config=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigArgs(\n max_concurrent_backfill_tasks=12,\n publication=\"publication\",\n replication_slot=\"replication_slot\",\n include_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(\n postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(\n schema=\"schema\",\n postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(\n table=\"table\",\n postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n exclude_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(\n postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(\n schema=\"schema\",\n postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(\n table=\"table\",\n postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n ),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination.id,\n bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs(\n data_freshness=\"900s\",\n source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs(\n dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs(\n location=\"us-central1\",\n ),\n ),\n ),\n ),\n backfill_all=gcp.datastream.StreamBackfillAllArgs(\n postgresql_excluded_objects=gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs(\n postgresql_schemas=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(\n schema=\"schema\",\n postgresql_tables=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(\n table=\"table\",\n postgresql_columns=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Postgresql Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n PostgresqlProfile = new Gcp.Datastream.Inputs.ConnectionProfilePostgresqlProfileArgs\n {\n Hostname = \"hostname\",\n Port = 3306,\n Username = \"user\",\n Password = \"pass\",\n Database = \"postgres\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"Postgres to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n PostgresqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigArgs\n {\n MaxConcurrentBackfillTasks = 12,\n Publication = \"publication\",\n ReplicationSlot = \"replication_slot\",\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n PostgresqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgresql Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tPostgresqlProfile: \u0026datastream.ConnectionProfilePostgresqlProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(3306),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabase: pulumi.String(\"postgres\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgres to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tPostgresqlSourceConfig: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tPublication: pulumi.String(\"publication\"),\n\t\t\t\t\tReplicationSlot: pulumi.String(\"replication_slot\"),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tPostgresqlExcludedObjects: \u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs{\n\t\t\t\t\tPostgresqlSchemas: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfilePostgresqlProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder() \n .displayName(\"Postgresql Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .postgresqlProfile(ConnectionProfilePostgresqlProfileArgs.builder()\n .hostname(\"hostname\")\n .port(3306)\n .username(\"user\")\n .password(\"pass\")\n .database(\"postgres\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder() \n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder() \n .displayName(\"Postgres to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .postgresqlSourceConfig(StreamSourceConfigPostgresqlSourceConfigArgs.builder()\n .maxConcurrentBackfillTasks(12)\n .publication(\"publication\")\n .replicationSlot(\"replication_slot\")\n .includeObjects(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .postgresqlExcludedObjects(StreamBackfillAllPostgresqlExcludedObjectsArgs.builder()\n .postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Postgresql Source\n location: us-central1\n connectionProfileId: source-profile\n postgresqlProfile:\n hostname: hostname\n port: 3306\n username: user\n password: pass\n database: postgres\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: Postgres to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n postgresqlSourceConfig:\n maxConcurrentBackfillTasks: 12\n publication: publication\n replicationSlot: replication_slot\n includeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n excludeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n postgresqlExcludedObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n```\n{{% /example %}}\n{{% example %}}\n### Datastream Stream Oracle\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Oracle Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n oracleProfile: {\n hostname: \"hostname\",\n port: 1521,\n username: \"user\",\n password: \"pass\",\n databaseService: \"ORCL\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst stream5 = new gcp.datastream.Stream(\"stream5\", {\n displayName: \"Oracle to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n oracleSourceConfig: {\n maxConcurrentCdcTasks: 8,\n maxConcurrentBackfillTasks: 12,\n includeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n dropLargeObjects: {},\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n oracleExcludedObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Oracle Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n oracle_profile=gcp.datastream.ConnectionProfileOracleProfileArgs(\n hostname=\"hostname\",\n port=1521,\n username=\"user\",\n password=\"pass\",\n database_service=\"ORCL\",\n ))\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs())\nstream5 = gcp.datastream.Stream(\"stream5\",\n display_name=\"Oracle to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source.id,\n oracle_source_config=gcp.datastream.StreamSourceConfigOracleSourceConfigArgs(\n max_concurrent_cdc_tasks=8,\n max_concurrent_backfill_tasks=12,\n include_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(\n oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(\n schema=\"schema\",\n oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(\n table=\"table\",\n oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n exclude_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(\n oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(\n schema=\"schema\",\n oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(\n table=\"table\",\n oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n drop_large_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(),\n ),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination.id,\n bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs(\n data_freshness=\"900s\",\n source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs(\n dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs(\n location=\"us-central1\",\n ),\n ),\n ),\n ),\n backfill_all=gcp.datastream.StreamBackfillAllArgs(\n oracle_excluded_objects=gcp.datastream.StreamBackfillAllOracleExcludedObjectsArgs(\n oracle_schemas=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(\n schema=\"schema\",\n oracle_tables=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(\n table=\"table\",\n oracle_columns=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(\n column=\"column\",\n )],\n )],\n )],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Oracle Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n OracleProfile = new Gcp.Datastream.Inputs.ConnectionProfileOracleProfileArgs\n {\n Hostname = \"hostname\",\n Port = 1521,\n Username = \"user\",\n Password = \"pass\",\n DatabaseService = \"ORCL\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var stream5 = new Gcp.Datastream.Stream(\"stream5\", new()\n {\n DisplayName = \"Oracle to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n OracleSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigArgs\n {\n MaxConcurrentCdcTasks = 8,\n MaxConcurrentBackfillTasks = 12,\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n DropLargeObjects = null,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n OracleExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tOracleProfile: \u0026datastream.ConnectionProfileOracleProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(1521),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabaseService: pulumi.String(\"ORCL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"stream5\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tOracleSourceConfig: \u0026datastream.StreamSourceConfigOracleSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(8),\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDropLargeObjects: nil,\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tOracleExcludedObjects: \u0026datastream.StreamBackfillAllOracleExcludedObjectsArgs{\n\t\t\t\t\tOracleSchemas: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tOracleTables: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileOracleProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder() \n .displayName(\"Oracle Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .oracleProfile(ConnectionProfileOracleProfileArgs.builder()\n .hostname(\"hostname\")\n .port(1521)\n .username(\"user\")\n .password(\"pass\")\n .databaseService(\"ORCL\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder() \n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var stream5 = new Stream(\"stream5\", StreamArgs.builder() \n .displayName(\"Oracle to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .oracleSourceConfig(StreamSourceConfigOracleSourceConfigArgs.builder()\n .maxConcurrentCdcTasks(8)\n .maxConcurrentBackfillTasks(12)\n .includeObjects(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .dropLargeObjects()\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .oracleExcludedObjects(StreamBackfillAllOracleExcludedObjectsArgs.builder()\n .oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Oracle Source\n location: us-central1\n connectionProfileId: source-profile\n oracleProfile:\n hostname: hostname\n port: 1521\n username: user\n password: pass\n databaseService: ORCL\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n stream5:\n type: gcp:datastream:Stream\n properties:\n displayName: Oracle to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n oracleSourceConfig:\n maxConcurrentCdcTasks: 8\n maxConcurrentBackfillTasks: 12\n includeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n excludeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n dropLargeObjects: {}\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n oracleExcludedObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n```\n{{% /example %}}\n{{% example %}}\n### Datastream Stream Bigquery\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {instance: instance.name});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bqSa = gcp.bigquery.getDefaultServiceAccount({});\nconst bigqueryKeyUser = new gcp.kms.CryptoKeyIAMMember(\"bigqueryKeyUser\", {\n cryptoKeyId: \"bigquery-kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: bqSa.then(bqSa =\u003e `serviceAccount:${bqSa.email}`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n location: \"us-central1\",\n displayName: \"my stream\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n bigqueryDestinationConfig: {\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n kmsKeyName: \"bigquery-kms-name\",\n },\n },\n },\n },\n backfillNone: {},\n}, {\n dependsOn: [bigqueryKeyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n backup_configuration=gcp.sql.DatabaseInstanceSettingsBackupConfigurationArgs(\n enabled=True,\n binary_log_enabled=True,\n ),\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n authorized_networks=[\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.71.242.81\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.28.29\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.6.157\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.67.234.134\",\n ),\n gcp.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs(\n value=\"34.72.239.218\",\n ),\n ],\n ),\n ),\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\", instance=instance.name)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"sourceConnectionProfile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile=gcp.datastream.ConnectionProfileMysqlProfileArgs(\n hostname=instance.public_ip_address,\n username=user.name,\n password=user.password,\n ))\nbq_sa = gcp.bigquery.get_default_service_account()\nbigquery_key_user = gcp.kms.CryptoKeyIAMMember(\"bigqueryKeyUser\",\n crypto_key_id=\"bigquery-kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:{bq_sa.email}\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destinationConnectionProfile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs())\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n location=\"us-central1\",\n display_name=\"my stream\",\n source_config=gcp.datastream.StreamSourceConfigArgs(\n source_connection_profile=source_connection_profile.id,\n mysql_source_config=gcp.datastream.StreamSourceConfigMysqlSourceConfigArgs(),\n ),\n destination_config=gcp.datastream.StreamDestinationConfigArgs(\n destination_connection_profile=destination_connection_profile.id,\n bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs(\n source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs(\n dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs(\n location=\"us-central1\",\n kms_key_name=\"bigquery-kms-name\",\n ),\n ),\n ),\n ),\n backfill_none=gcp.datastream.StreamBackfillNoneArgs(),\n opts=pulumi.ResourceOptions(depends_on=[bigquery_key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"sourceConnectionProfile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bqSa = Gcp.BigQuery.GetDefaultServiceAccount.Invoke();\n\n var bigqueryKeyUser = new Gcp.Kms.CryptoKeyIAMMember(\"bigqueryKeyUser\", new()\n {\n CryptoKeyId = \"bigquery-kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:{bqSa.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)}\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destinationConnectionProfile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n KmsKeyName = \"bigquery-kms-name\",\n },\n },\n },\n },\n BackfillNone = null,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n bigqueryKeyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"sourceConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqSa, err := bigquery.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbigqueryKeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"bigqueryKeyUser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"bigquery-kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", bqSa.Email)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destinationConnectionProfile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t\tKmsKeyName: pulumi.String(\"bigquery-kms-name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbigqueryKeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.bigquery.BigqueryFunctions;\nimport com.pulumi.gcp.bigquery.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder() \n .instance(instance.name())\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder() \n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder() \n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n final var bqSa = BigqueryFunctions.getDefaultServiceAccount();\n\n var bigqueryKeyUser = new CryptoKeyIAMMember(\"bigqueryKeyUser\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(\"bigquery-kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:%s\", bqSa.applyValue(getDefaultServiceAccountResult -\u003e getDefaultServiceAccountResult.email())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder() \n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder() \n .streamId(\"my-stream\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .kmsKeyName(\"bigquery-kms-name\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build(), CustomResourceOptions.builder()\n .dependsOn(bigqueryKeyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bigqueryKeyUser:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: bigquery-kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${bqSa.email}\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n location: us-central1\n displayName: my stream\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n bigqueryDestinationConfig:\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n kmsKeyName: bigquery-kms-name\n backfillNone: {}\n options:\n dependson:\n - ${bigqueryKeyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n bqSa:\n fn::invoke:\n Function: gcp:bigquery:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nStream can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default projects/{{project}}/locations/{{location}}/streams/{{stream_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default {{project}}/{{location}}/{{stream_id}}\n```\n\n\n\n```sh\n $ pulumi import gcp:datastream/stream:Stream default {{location}}/{{stream_id}}\n```\n\n ", "properties": { "backfillAll": { "$ref": "#/types/gcp:datastream/StreamBackfillAll:StreamBackfillAll", @@ -162373,7 +164293,7 @@ } }, "gcp:eventarc/channel:Channel": { - "description": "The Eventarc Channel resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testProject = gcp.organizations.getProject({\n projectId: \"my-project-name\",\n});\nconst testKeyRing = gcp.kms.getKMSKeyRing({\n name: \"keyring\",\n location: \"us-west1\",\n});\nconst key = testKeyRing.then(testKeyRing =\u003e gcp.kms.getKMSCryptoKey({\n name: \"key\",\n keyRing: testKeyRing.id,\n}));\nconst key1Binding = new gcp.kms.CryptoKeyIAMBinding(\"key1Binding\", {\n cryptoKeyId: data.google_kms_crypto_key.key1.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [testProject.then(testProject =\u003e `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`)],\n});\nconst primary = new gcp.eventarc.Channel(\"primary\", {\n location: \"us-west1\",\n project: testProject.then(testProject =\u003e testProject.projectId),\n cryptoKeyName: data.google_kms_crypto_key.key1.id,\n thirdPartyProvider: testProject.then(testProject =\u003e `projects/${testProject.projectId}/locations/us-west1/providers/datadog`),\n}, {\n dependsOn: [key1Binding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_project = gcp.organizations.get_project(project_id=\"my-project-name\")\ntest_key_ring = gcp.kms.get_kms_key_ring(name=\"keyring\",\n location=\"us-west1\")\nkey = gcp.kms.get_kms_crypto_key(name=\"key\",\n key_ring=test_key_ring.id)\nkey1_binding = gcp.kms.CryptoKeyIAMBinding(\"key1Binding\",\n crypto_key_id=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com\"])\nprimary = gcp.eventarc.Channel(\"primary\",\n location=\"us-west1\",\n project=test_project.project_id,\n crypto_key_name=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n third_party_provider=f\"projects/{test_project.project_id}/locations/us-west1/providers/datadog\",\n opts=pulumi.ResourceOptions(depends_on=[key1_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke(new()\n {\n ProjectId = \"my-project-name\",\n });\n\n var testKeyRing = Gcp.Kms.GetKMSKeyRing.Invoke(new()\n {\n Name = \"keyring\",\n Location = \"us-west1\",\n });\n\n var key = Gcp.Kms.GetKMSCryptoKey.Invoke(new()\n {\n Name = \"key\",\n KeyRing = testKeyRing.Apply(getKMSKeyRingResult =\u003e getKMSKeyRingResult.Id),\n });\n\n var key1Binding = new Gcp.Kms.CryptoKeyIAMBinding(\"key1Binding\", new()\n {\n CryptoKeyId = data.Google_kms_crypto_key.Key1.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{testProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com\",\n },\n });\n\n var primary = new Gcp.Eventarc.Channel(\"primary\", new()\n {\n Location = \"us-west1\",\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n CryptoKeyName = data.Google_kms_crypto_key.Key1.Id,\n ThirdPartyProvider = $\"projects/{testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId)}/locations/us-west1/providers/datadog\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n key1Binding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/eventarc\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, \u0026organizations.LookupProjectArgs{\n\t\t\tProjectId: pulumi.StringRef(\"my-project-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestKeyRing, err := kms.GetKMSKeyRing(ctx, \u0026kms.GetKMSKeyRingArgs{\n\t\t\tName: \"keyring\",\n\t\t\tLocation: \"us-west1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.GetKMSCryptoKey(ctx, \u0026kms.GetKMSCryptoKeyArgs{\n\t\t\tName: \"key\",\n\t\t\tKeyRing: testKeyRing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey1Binding, err := kms.NewCryptoKeyIAMBinding(ctx, \"key1Binding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventarc.NewChannel(ctx, \"primary\", \u0026eventarc.ChannelArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tProject: *pulumi.String(testProject.ProjectId),\n\t\t\tCryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tThirdPartyProvider: pulumi.String(fmt.Sprintf(\"projects/%v/locations/us-west1/providers/datadog\", testProject.ProjectId)),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkey1Binding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.KmsFunctions;\nimport com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs;\nimport com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.eventarc.Channel;\nimport com.pulumi.gcp.eventarc.ChannelArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()\n .projectId(\"my-project-name\")\n .build());\n\n final var testKeyRing = KmsFunctions.getKMSKeyRing(GetKMSKeyRingArgs.builder()\n .name(\"keyring\")\n .location(\"us-west1\")\n .build());\n\n final var key = KmsFunctions.getKMSCryptoKey(GetKMSCryptoKeyArgs.builder()\n .name(\"key\")\n .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -\u003e getKMSKeyRingResult.id()))\n .build());\n\n var key1Binding = new CryptoKeyIAMBinding(\"key1Binding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(data.google_kms_crypto_key().key1().id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var primary = new Channel(\"primary\", ChannelArgs.builder() \n .location(\"us-west1\")\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .cryptoKeyName(data.google_kms_crypto_key().key1().id())\n .thirdPartyProvider(String.format(\"projects/%s/locations/us-west1/providers/datadog\", testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId())))\n .build(), CustomResourceOptions.builder()\n .dependsOn(key1Binding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key1Binding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${data.google_kms_crypto_key.key1.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com\n primary:\n type: gcp:eventarc:Channel\n properties:\n location: us-west1\n project: ${testProject.projectId}\n cryptoKeyName: ${data.google_kms_crypto_key.key1.id}\n thirdPartyProvider: projects/${testProject.projectId}/locations/us-west1/providers/datadog\n options:\n dependson:\n - ${key1Binding}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments:\n projectId: my-project-name\n testKeyRing:\n fn::invoke:\n Function: gcp:kms:getKMSKeyRing\n Arguments:\n name: keyring\n location: us-west1\n key:\n fn::invoke:\n Function: gcp:kms:getKMSCryptoKey\n Arguments:\n name: key\n keyRing: ${testKeyRing.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nChannel can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default projects/{{project}}/locations/{{location}}/channels/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default {{project}}/{{location}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default {{location}}/{{name}}\n```\n\n ", + "description": "The Eventarc Channel resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testProject = gcp.organizations.getProject({\n projectId: \"my-project-name\",\n});\nconst testKeyRing = gcp.kms.getKMSKeyRing({\n name: \"keyring\",\n location: \"us-west1\",\n});\nconst key = testKeyRing.then(testKeyRing =\u003e gcp.kms.getKMSCryptoKey({\n name: \"key\",\n keyRing: testKeyRing.id,\n}));\nconst key1Member = new gcp.kms.CryptoKeyIAMMember(\"key1Member\", {\n cryptoKeyId: data.google_kms_crypto_key.key1.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: testProject.then(testProject =\u003e `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`),\n});\nconst primary = new gcp.eventarc.Channel(\"primary\", {\n location: \"us-west1\",\n project: testProject.then(testProject =\u003e testProject.projectId),\n cryptoKeyName: data.google_kms_crypto_key.key1.id,\n thirdPartyProvider: testProject.then(testProject =\u003e `projects/${testProject.projectId}/locations/us-west1/providers/datadog`),\n}, {\n dependsOn: [key1Member],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_project = gcp.organizations.get_project(project_id=\"my-project-name\")\ntest_key_ring = gcp.kms.get_kms_key_ring(name=\"keyring\",\n location=\"us-west1\")\nkey = gcp.kms.get_kms_crypto_key(name=\"key\",\n key_ring=test_key_ring.id)\nkey1_member = gcp.kms.CryptoKeyIAMMember(\"key1Member\",\n crypto_key_id=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com\")\nprimary = gcp.eventarc.Channel(\"primary\",\n location=\"us-west1\",\n project=test_project.project_id,\n crypto_key_name=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n third_party_provider=f\"projects/{test_project.project_id}/locations/us-west1/providers/datadog\",\n opts=pulumi.ResourceOptions(depends_on=[key1_member]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke(new()\n {\n ProjectId = \"my-project-name\",\n });\n\n var testKeyRing = Gcp.Kms.GetKMSKeyRing.Invoke(new()\n {\n Name = \"keyring\",\n Location = \"us-west1\",\n });\n\n var key = Gcp.Kms.GetKMSCryptoKey.Invoke(new()\n {\n Name = \"key\",\n KeyRing = testKeyRing.Apply(getKMSKeyRingResult =\u003e getKMSKeyRingResult.Id),\n });\n\n var key1Member = new Gcp.Kms.CryptoKeyIAMMember(\"key1Member\", new()\n {\n CryptoKeyId = data.Google_kms_crypto_key.Key1.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{testProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com\",\n });\n\n var primary = new Gcp.Eventarc.Channel(\"primary\", new()\n {\n Location = \"us-west1\",\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n CryptoKeyName = data.Google_kms_crypto_key.Key1.Id,\n ThirdPartyProvider = $\"projects/{testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId)}/locations/us-west1/providers/datadog\",\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n key1Member,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/eventarc\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, \u0026organizations.LookupProjectArgs{\n\t\t\tProjectId: pulumi.StringRef(\"my-project-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestKeyRing, err := kms.GetKMSKeyRing(ctx, \u0026kms.GetKMSKeyRingArgs{\n\t\t\tName: \"keyring\",\n\t\t\tLocation: \"us-west1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.GetKMSCryptoKey(ctx, \u0026kms.GetKMSCryptoKeyArgs{\n\t\t\tName: \"key\",\n\t\t\tKeyRing: testKeyRing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey1Member, err := kms.NewCryptoKeyIAMMember(ctx, \"key1Member\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventarc.NewChannel(ctx, \"primary\", \u0026eventarc.ChannelArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tProject: *pulumi.String(testProject.ProjectId),\n\t\t\tCryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tThirdPartyProvider: pulumi.String(fmt.Sprintf(\"projects/%v/locations/us-west1/providers/datadog\", testProject.ProjectId)),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkey1Member,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.KmsFunctions;\nimport com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs;\nimport com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.eventarc.Channel;\nimport com.pulumi.gcp.eventarc.ChannelArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()\n .projectId(\"my-project-name\")\n .build());\n\n final var testKeyRing = KmsFunctions.getKMSKeyRing(GetKMSKeyRingArgs.builder()\n .name(\"keyring\")\n .location(\"us-west1\")\n .build());\n\n final var key = KmsFunctions.getKMSCryptoKey(GetKMSCryptoKeyArgs.builder()\n .name(\"key\")\n .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -\u003e getKMSKeyRingResult.id()))\n .build());\n\n var key1Member = new CryptoKeyIAMMember(\"key1Member\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(data.google_kms_crypto_key().key1().id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var primary = new Channel(\"primary\", ChannelArgs.builder() \n .location(\"us-west1\")\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .cryptoKeyName(data.google_kms_crypto_key().key1().id())\n .thirdPartyProvider(String.format(\"projects/%s/locations/us-west1/providers/datadog\", testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId())))\n .build(), CustomResourceOptions.builder()\n .dependsOn(key1Member)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key1Member:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: ${data.google_kms_crypto_key.key1.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com\n primary:\n type: gcp:eventarc:Channel\n properties:\n location: us-west1\n project: ${testProject.projectId}\n cryptoKeyName: ${data.google_kms_crypto_key.key1.id}\n thirdPartyProvider: projects/${testProject.projectId}/locations/us-west1/providers/datadog\n options:\n dependson:\n - ${key1Member}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments:\n projectId: my-project-name\n testKeyRing:\n fn::invoke:\n Function: gcp:kms:getKMSKeyRing\n Arguments:\n name: keyring\n location: us-west1\n key:\n fn::invoke:\n Function: gcp:kms:getKMSCryptoKey\n Arguments:\n name: key\n keyRing: ${testKeyRing.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nChannel can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default projects/{{project}}/locations/{{location}}/channels/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default {{project}}/{{location}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/channel:Channel default {{location}}/{{name}}\n```\n\n ", "properties": { "activationToken": { "type": "string", @@ -162516,7 +164436,7 @@ } }, "gcp:eventarc/googleChannelConfig:GoogleChannelConfig": { - "description": "The Eventarc GoogleChannelConfig resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testProject = gcp.organizations.getProject({\n projectId: \"my-project-name\",\n});\nconst testKeyRing = gcp.kms.getKMSKeyRing({\n name: \"keyring\",\n location: \"us-west1\",\n});\nconst key = testKeyRing.then(testKeyRing =\u003e gcp.kms.getKMSCryptoKey({\n name: \"key\",\n keyRing: testKeyRing.id,\n}));\nconst key1Binding = new gcp.kms.CryptoKeyIAMBinding(\"key1Binding\", {\n cryptoKeyId: data.google_kms_crypto_key.key1.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [testProject.then(testProject =\u003e `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`)],\n});\nconst primary = new gcp.eventarc.GoogleChannelConfig(\"primary\", {\n location: \"us-west1\",\n project: testProject.then(testProject =\u003e testProject.projectId),\n cryptoKeyName: data.google_kms_crypto_key.key1.id,\n}, {\n dependsOn: [key1Binding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_project = gcp.organizations.get_project(project_id=\"my-project-name\")\ntest_key_ring = gcp.kms.get_kms_key_ring(name=\"keyring\",\n location=\"us-west1\")\nkey = gcp.kms.get_kms_crypto_key(name=\"key\",\n key_ring=test_key_ring.id)\nkey1_binding = gcp.kms.CryptoKeyIAMBinding(\"key1Binding\",\n crypto_key_id=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com\"])\nprimary = gcp.eventarc.GoogleChannelConfig(\"primary\",\n location=\"us-west1\",\n project=test_project.project_id,\n crypto_key_name=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n opts=pulumi.ResourceOptions(depends_on=[key1_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke(new()\n {\n ProjectId = \"my-project-name\",\n });\n\n var testKeyRing = Gcp.Kms.GetKMSKeyRing.Invoke(new()\n {\n Name = \"keyring\",\n Location = \"us-west1\",\n });\n\n var key = Gcp.Kms.GetKMSCryptoKey.Invoke(new()\n {\n Name = \"key\",\n KeyRing = testKeyRing.Apply(getKMSKeyRingResult =\u003e getKMSKeyRingResult.Id),\n });\n\n var key1Binding = new Gcp.Kms.CryptoKeyIAMBinding(\"key1Binding\", new()\n {\n CryptoKeyId = data.Google_kms_crypto_key.Key1.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{testProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com\",\n },\n });\n\n var primary = new Gcp.Eventarc.GoogleChannelConfig(\"primary\", new()\n {\n Location = \"us-west1\",\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n CryptoKeyName = data.Google_kms_crypto_key.Key1.Id,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n key1Binding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/eventarc\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, \u0026organizations.LookupProjectArgs{\n\t\t\tProjectId: pulumi.StringRef(\"my-project-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestKeyRing, err := kms.GetKMSKeyRing(ctx, \u0026kms.GetKMSKeyRingArgs{\n\t\t\tName: \"keyring\",\n\t\t\tLocation: \"us-west1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.GetKMSCryptoKey(ctx, \u0026kms.GetKMSCryptoKeyArgs{\n\t\t\tName: \"key\",\n\t\t\tKeyRing: testKeyRing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey1Binding, err := kms.NewCryptoKeyIAMBinding(ctx, \"key1Binding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventarc.NewGoogleChannelConfig(ctx, \"primary\", \u0026eventarc.GoogleChannelConfigArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tProject: *pulumi.String(testProject.ProjectId),\n\t\t\tCryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkey1Binding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.KmsFunctions;\nimport com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs;\nimport com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.eventarc.GoogleChannelConfig;\nimport com.pulumi.gcp.eventarc.GoogleChannelConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()\n .projectId(\"my-project-name\")\n .build());\n\n final var testKeyRing = KmsFunctions.getKMSKeyRing(GetKMSKeyRingArgs.builder()\n .name(\"keyring\")\n .location(\"us-west1\")\n .build());\n\n final var key = KmsFunctions.getKMSCryptoKey(GetKMSCryptoKeyArgs.builder()\n .name(\"key\")\n .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -\u003e getKMSKeyRingResult.id()))\n .build());\n\n var key1Binding = new CryptoKeyIAMBinding(\"key1Binding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(data.google_kms_crypto_key().key1().id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var primary = new GoogleChannelConfig(\"primary\", GoogleChannelConfigArgs.builder() \n .location(\"us-west1\")\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .cryptoKeyName(data.google_kms_crypto_key().key1().id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(key1Binding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key1Binding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${data.google_kms_crypto_key.key1.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com\n primary:\n type: gcp:eventarc:GoogleChannelConfig\n properties:\n location: us-west1\n project: ${testProject.projectId}\n cryptoKeyName: ${data.google_kms_crypto_key.key1.id}\n options:\n dependson:\n - ${key1Binding}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments:\n projectId: my-project-name\n testKeyRing:\n fn::invoke:\n Function: gcp:kms:getKMSKeyRing\n Arguments:\n name: keyring\n location: us-west1\n key:\n fn::invoke:\n Function: gcp:kms:getKMSCryptoKey\n Arguments:\n name: key\n keyRing: ${testKeyRing.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGoogleChannelConfig can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default projects/{{project}}/locations/{{location}}/googleChannelConfig\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default {{project}}/{{location}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default {{location}}\n```\n\n ", + "description": "The Eventarc GoogleChannelConfig resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst testProject = gcp.organizations.getProject({\n projectId: \"my-project-name\",\n});\nconst testKeyRing = gcp.kms.getKMSKeyRing({\n name: \"keyring\",\n location: \"us-west1\",\n});\nconst key = testKeyRing.then(testKeyRing =\u003e gcp.kms.getKMSCryptoKey({\n name: \"key\",\n keyRing: testKeyRing.id,\n}));\nconst key1Member = new gcp.kms.CryptoKeyIAMMember(\"key1Member\", {\n cryptoKeyId: data.google_kms_crypto_key.key1.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: testProject.then(testProject =\u003e `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`),\n});\nconst primary = new gcp.eventarc.GoogleChannelConfig(\"primary\", {\n location: \"us-west1\",\n project: testProject.then(testProject =\u003e testProject.projectId),\n cryptoKeyName: data.google_kms_crypto_key.key1.id,\n}, {\n dependsOn: [key1Member],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ntest_project = gcp.organizations.get_project(project_id=\"my-project-name\")\ntest_key_ring = gcp.kms.get_kms_key_ring(name=\"keyring\",\n location=\"us-west1\")\nkey = gcp.kms.get_kms_crypto_key(name=\"key\",\n key_ring=test_key_ring.id)\nkey1_member = gcp.kms.CryptoKeyIAMMember(\"key1Member\",\n crypto_key_id=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com\")\nprimary = gcp.eventarc.GoogleChannelConfig(\"primary\",\n location=\"us-west1\",\n project=test_project.project_id,\n crypto_key_name=data[\"google_kms_crypto_key\"][\"key1\"][\"id\"],\n opts=pulumi.ResourceOptions(depends_on=[key1_member]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke(new()\n {\n ProjectId = \"my-project-name\",\n });\n\n var testKeyRing = Gcp.Kms.GetKMSKeyRing.Invoke(new()\n {\n Name = \"keyring\",\n Location = \"us-west1\",\n });\n\n var key = Gcp.Kms.GetKMSCryptoKey.Invoke(new()\n {\n Name = \"key\",\n KeyRing = testKeyRing.Apply(getKMSKeyRingResult =\u003e getKMSKeyRingResult.Id),\n });\n\n var key1Member = new Gcp.Kms.CryptoKeyIAMMember(\"key1Member\", new()\n {\n CryptoKeyId = data.Google_kms_crypto_key.Key1.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{testProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com\",\n });\n\n var primary = new Gcp.Eventarc.GoogleChannelConfig(\"primary\", new()\n {\n Location = \"us-west1\",\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n CryptoKeyName = data.Google_kms_crypto_key.Key1.Id,\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n key1Member,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/eventarc\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, \u0026organizations.LookupProjectArgs{\n\t\t\tProjectId: pulumi.StringRef(\"my-project-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestKeyRing, err := kms.GetKMSKeyRing(ctx, \u0026kms.GetKMSKeyRingArgs{\n\t\t\tName: \"keyring\",\n\t\t\tLocation: \"us-west1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kms.GetKMSCryptoKey(ctx, \u0026kms.GetKMSCryptoKeyArgs{\n\t\t\tName: \"key\",\n\t\t\tKeyRing: testKeyRing.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey1Member, err := kms.NewCryptoKeyIAMMember(ctx, \"key1Member\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = eventarc.NewGoogleChannelConfig(ctx, \"primary\", \u0026eventarc.GoogleChannelConfigArgs{\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tProject: *pulumi.String(testProject.ProjectId),\n\t\t\tCryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkey1Member,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.KmsFunctions;\nimport com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs;\nimport com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.eventarc.GoogleChannelConfig;\nimport com.pulumi.gcp.eventarc.GoogleChannelConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()\n .projectId(\"my-project-name\")\n .build());\n\n final var testKeyRing = KmsFunctions.getKMSKeyRing(GetKMSKeyRingArgs.builder()\n .name(\"keyring\")\n .location(\"us-west1\")\n .build());\n\n final var key = KmsFunctions.getKMSCryptoKey(GetKMSCryptoKeyArgs.builder()\n .name(\"key\")\n .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -\u003e getKMSKeyRingResult.id()))\n .build());\n\n var key1Member = new CryptoKeyIAMMember(\"key1Member\", CryptoKeyIAMMemberArgs.builder() \n .cryptoKeyId(data.google_kms_crypto_key().key1().id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com\", testProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var primary = new GoogleChannelConfig(\"primary\", GoogleChannelConfigArgs.builder() \n .location(\"us-west1\")\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .cryptoKeyName(data.google_kms_crypto_key().key1().id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(key1Member)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n key1Member:\n type: gcp:kms:CryptoKeyIAMMember\n properties:\n cryptoKeyId: ${data.google_kms_crypto_key.key1.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com\n primary:\n type: gcp:eventarc:GoogleChannelConfig\n properties:\n location: us-west1\n project: ${testProject.projectId}\n cryptoKeyName: ${data.google_kms_crypto_key.key1.id}\n options:\n dependson:\n - ${key1Member}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments:\n projectId: my-project-name\n testKeyRing:\n fn::invoke:\n Function: gcp:kms:getKMSKeyRing\n Arguments:\n name: keyring\n location: us-west1\n key:\n fn::invoke:\n Function: gcp:kms:getKMSCryptoKey\n Arguments:\n name: key\n keyRing: ${testKeyRing.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGoogleChannelConfig can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default projects/{{project}}/locations/{{location}}/googleChannelConfig\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default {{project}}/{{location}}\n```\n\n\n\n```sh\n $ pulumi import gcp:eventarc/googleChannelConfig:GoogleChannelConfig default {{location}}\n```\n\n ", "properties": { "cryptoKeyName": { "type": "string", @@ -163356,7 +165276,7 @@ }, "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Default to 'DELETE'.\n" + "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Defaults to 'DELETE'.\n" }, "displayName": { "type": "string", @@ -163403,8 +165323,7 @@ "inputProperties": { "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Default to 'DELETE'.\n", - "willReplaceOnChanges": true + "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Defaults to 'DELETE'.\n" }, "displayName": { "type": "string", @@ -163446,8 +165365,7 @@ }, "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Default to 'DELETE'.\n", - "willReplaceOnChanges": true + "description": "(Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the\nAndroidApp. Defaults to 'DELETE'.\n" }, "displayName": { "type": "string", @@ -163505,7 +165423,7 @@ }, "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp.\nDefault to 'DELETE'.\n" + "description": "(Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform\ndestroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to\n'DELETE'.\n" }, "displayName": { "type": "string", @@ -163541,8 +165459,7 @@ }, "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp.\nDefault to 'DELETE'.\n", - "willReplaceOnChanges": true + "description": "(Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform\ndestroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to\n'DELETE'.\n" }, "displayName": { "type": "string", @@ -163578,8 +165495,7 @@ }, "deletionPolicy": { "type": "string", - "description": "(Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon\n'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp.\nDefault to 'DELETE'.\n", - "willReplaceOnChanges": true + "description": "(Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform\ndestroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to\n'DELETE'.\n" }, "displayName": { "type": "string", @@ -164336,6 +166252,136 @@ "type": "object" } }, + "gcp:firestore/database:Database": { + "description": "{{% examples %}}\n## Example Usage\n{{% /examples %}}\n\n## Import\n\nDatabase can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:firestore/database:Database default {{name}}\n```\n\n ", + "properties": { + "appEngineIntegrationMode": { + "type": "string", + "description": "The App Engine integration mode to use for this database.\nPossible values are `ENABLED` and `DISABLED`.\n" + }, + "concurrencyMode": { + "type": "string", + "description": "The concurrency control mode to use for this database.\nPossible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`.\n" + }, + "createTime": { + "type": "string", + "description": "The timestamp at which this database was created.\n" + }, + "etag": { + "type": "string", + "description": "This checksum is computed by the server based on the value of other fields,\nand may be sent on update and delete requests to ensure the client has an\nup-to-date value before proceeding.\n" + }, + "keyPrefix": { + "type": "string", + "description": "Output only. The keyPrefix for this database.\nThis keyPrefix is used, in combination with the project id (\"~\") to construct the application id\nthat is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes.\nThis value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo).\n" + }, + "locationId": { + "type": "string", + "description": "The location of the database. Available databases are listed at\nhttps://cloud.google.com/firestore/docs/locations.\n" + }, + "name": { + "type": "string", + "description": "Required. The ID to use for the database, which will become the final\ncomponent of the database's resource name. This value should be 4-63\ncharacters. Valid characters are /[a-z][0-9]-/ with first character\na letter and the last a letter or a number. Must not be\nUUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.\n\"(default)\" database id is also valid.\n" + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" + }, + "type": { + "type": "string", + "description": "The type of the database.\nSee https://cloud.google.com/datastore/docs/firestore-or-datastore\nfor information about how to choose.\nPossible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`.\n" + } + }, + "required": [ + "appEngineIntegrationMode", + "concurrencyMode", + "createTime", + "etag", + "keyPrefix", + "locationId", + "name", + "project", + "type" + ], + "inputProperties": { + "appEngineIntegrationMode": { + "type": "string", + "description": "The App Engine integration mode to use for this database.\nPossible values are `ENABLED` and `DISABLED`.\n" + }, + "concurrencyMode": { + "type": "string", + "description": "The concurrency control mode to use for this database.\nPossible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`.\n" + }, + "locationId": { + "type": "string", + "description": "The location of the database. Available databases are listed at\nhttps://cloud.google.com/firestore/docs/locations.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. The ID to use for the database, which will become the final\ncomponent of the database's resource name. This value should be 4-63\ncharacters. Valid characters are /[a-z][0-9]-/ with first character\na letter and the last a letter or a number. Must not be\nUUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.\n\"(default)\" database id is also valid.\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "The type of the database.\nSee https://cloud.google.com/datastore/docs/firestore-or-datastore\nfor information about how to choose.\nPossible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`.\n" + } + }, + "requiredInputs": [ + "locationId", + "type" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Database resources.\n", + "properties": { + "appEngineIntegrationMode": { + "type": "string", + "description": "The App Engine integration mode to use for this database.\nPossible values are `ENABLED` and `DISABLED`.\n" + }, + "concurrencyMode": { + "type": "string", + "description": "The concurrency control mode to use for this database.\nPossible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`.\n" + }, + "createTime": { + "type": "string", + "description": "The timestamp at which this database was created.\n" + }, + "etag": { + "type": "string", + "description": "This checksum is computed by the server based on the value of other fields,\nand may be sent on update and delete requests to ensure the client has an\nup-to-date value before proceeding.\n" + }, + "keyPrefix": { + "type": "string", + "description": "Output only. The keyPrefix for this database.\nThis keyPrefix is used, in combination with the project id (\"~\") to construct the application id\nthat is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes.\nThis value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo).\n" + }, + "locationId": { + "type": "string", + "description": "The location of the database. Available databases are listed at\nhttps://cloud.google.com/firestore/docs/locations.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. The ID to use for the database, which will become the final\ncomponent of the database's resource name. This value should be 4-63\ncharacters. Valid characters are /[a-z][0-9]-/ with first character\na letter and the last a letter or a number. Must not be\nUUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.\n\"(default)\" database id is also valid.\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "The type of the database.\nSee https://cloud.google.com/datastore/docs/firestore-or-datastore\nfor information about how to choose.\nPossible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`.\n" + } + }, + "type": "object" + } + }, "gcp:firestore/document:Document": { "description": "In Cloud Firestore, the unit of storage is the document. A document is a lightweight record\nthat contains fields, which map to values. Each document is identified by a name.\n\n\nTo get more information about Document, see:\n\n* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/firestore/docs/manage-data/add-data)\n\n\u003e **Warning:** This resource creates a Firestore Document on a project that already has\nFirestore enabled. If you haven't already enabled it, you can create a\n`gcp.appengine.Application` resource with `database_type` set to\n`\"CLOUD_FIRESTORE\"` to do so. Your Firestore location will be the same as\nthe App Engine location specified.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Firestore Document Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst mydoc = new gcp.firestore.Document(\"mydoc\", {\n collection: \"somenewcollection\",\n documentId: `my-doc-%{random_suffix}`,\n fields: \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n project: \"my-project-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmydoc = gcp.firestore.Document(\"mydoc\",\n collection=\"somenewcollection\",\n document_id=\"my-doc-%{random_suffix}\",\n fields=\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n project=\"my-project-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mydoc = new Gcp.Firestore.Document(\"mydoc\", new()\n {\n Collection = \"somenewcollection\",\n DocumentId = \"my-doc-%{random_suffix}\",\n Fields = \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n Project = \"my-project-name\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := firestore.NewDocument(ctx, \"mydoc\", \u0026firestore.DocumentArgs{\n\t\t\tCollection: pulumi.String(\"somenewcollection\"),\n\t\t\tDocumentId: pulumi.String(fmt.Sprintf(\"my-doc-%vrandom_suffix}\", \"%{\")),\n\t\t\tFields: pulumi.String(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\"),\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Document;\nimport com.pulumi.gcp.firestore.DocumentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mydoc = new Document(\"mydoc\", DocumentArgs.builder() \n .collection(\"somenewcollection\")\n .documentId(\"my-doc-%{random_suffix}\")\n .fields(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\")\n .project(\"my-project-name\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mydoc:\n type: gcp:firestore:Document\n properties:\n collection: somenewcollection\n documentId: my-doc-%{random_suffix}\n fields: '{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}'\n project: my-project-name\n```\n{{% /example %}}\n{{% example %}}\n### Firestore Document Nested Document\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst mydoc = new gcp.firestore.Document(\"mydoc\", {\n collection: \"somenewcollection\",\n documentId: `my-doc-%{random_suffix}`,\n fields: \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n project: \"my-project-name\",\n});\nconst subDocument = new gcp.firestore.Document(\"subDocument\", {\n collection: pulumi.interpolate`${mydoc.path}/subdocs`,\n documentId: \"bitcoinkey\",\n fields: \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"ayo\\\":{\\\"stringValue\\\":\\\"val2\\\"}}}}}\",\n project: \"my-project-name\",\n});\nconst subSubDocument = new gcp.firestore.Document(\"subSubDocument\", {\n collection: pulumi.interpolate`${subDocument.path}/subsubdocs`,\n documentId: \"asecret\",\n fields: \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"secret\\\":{\\\"stringValue\\\":\\\"hithere\\\"}}}}}\",\n project: \"my-project-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmydoc = gcp.firestore.Document(\"mydoc\",\n collection=\"somenewcollection\",\n document_id=\"my-doc-%{random_suffix}\",\n fields=\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n project=\"my-project-name\")\nsub_document = gcp.firestore.Document(\"subDocument\",\n collection=mydoc.path.apply(lambda path: f\"{path}/subdocs\"),\n document_id=\"bitcoinkey\",\n fields=\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"ayo\\\":{\\\"stringValue\\\":\\\"val2\\\"}}}}}\",\n project=\"my-project-name\")\nsub_sub_document = gcp.firestore.Document(\"subSubDocument\",\n collection=sub_document.path.apply(lambda path: f\"{path}/subsubdocs\"),\n document_id=\"asecret\",\n fields=\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"secret\\\":{\\\"stringValue\\\":\\\"hithere\\\"}}}}}\",\n project=\"my-project-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mydoc = new Gcp.Firestore.Document(\"mydoc\", new()\n {\n Collection = \"somenewcollection\",\n DocumentId = \"my-doc-%{random_suffix}\",\n Fields = \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\",\n Project = \"my-project-name\",\n });\n\n var subDocument = new Gcp.Firestore.Document(\"subDocument\", new()\n {\n Collection = mydoc.Path.Apply(path =\u003e $\"{path}/subdocs\"),\n DocumentId = \"bitcoinkey\",\n Fields = \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"ayo\\\":{\\\"stringValue\\\":\\\"val2\\\"}}}}}\",\n Project = \"my-project-name\",\n });\n\n var subSubDocument = new Gcp.Firestore.Document(\"subSubDocument\", new()\n {\n Collection = subDocument.Path.Apply(path =\u003e $\"{path}/subsubdocs\"),\n DocumentId = \"asecret\",\n Fields = \"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"secret\\\":{\\\"stringValue\\\":\\\"hithere\\\"}}}}}\",\n Project = \"my-project-name\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmydoc, err := firestore.NewDocument(ctx, \"mydoc\", \u0026firestore.DocumentArgs{\n\t\t\tCollection: pulumi.String(\"somenewcollection\"),\n\t\t\tDocumentId: pulumi.String(fmt.Sprintf(\"my-doc-%vrandom_suffix}\", \"%{\")),\n\t\t\tFields: pulumi.String(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\"),\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubDocument, err := firestore.NewDocument(ctx, \"subDocument\", \u0026firestore.DocumentArgs{\n\t\t\tCollection: mydoc.Path.ApplyT(func(path string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/subdocs\", path), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tDocumentId: pulumi.String(\"bitcoinkey\"),\n\t\t\tFields: pulumi.String(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"ayo\\\":{\\\"stringValue\\\":\\\"val2\\\"}}}}}\"),\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewDocument(ctx, \"subSubDocument\", \u0026firestore.DocumentArgs{\n\t\t\tCollection: subDocument.Path.ApplyT(func(path string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/subsubdocs\", path), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tDocumentId: pulumi.String(\"asecret\"),\n\t\t\tFields: pulumi.String(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"secret\\\":{\\\"stringValue\\\":\\\"hithere\\\"}}}}}\"),\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Document;\nimport com.pulumi.gcp.firestore.DocumentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mydoc = new Document(\"mydoc\", DocumentArgs.builder() \n .collection(\"somenewcollection\")\n .documentId(\"my-doc-%{random_suffix}\")\n .fields(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"akey\\\":{\\\"stringValue\\\":\\\"avalue\\\"}}}}}\")\n .project(\"my-project-name\")\n .build());\n\n var subDocument = new Document(\"subDocument\", DocumentArgs.builder() \n .collection(mydoc.path().applyValue(path -\u003e String.format(\"%s/subdocs\", path)))\n .documentId(\"bitcoinkey\")\n .fields(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"ayo\\\":{\\\"stringValue\\\":\\\"val2\\\"}}}}}\")\n .project(\"my-project-name\")\n .build());\n\n var subSubDocument = new Document(\"subSubDocument\", DocumentArgs.builder() \n .collection(subDocument.path().applyValue(path -\u003e String.format(\"%s/subsubdocs\", path)))\n .documentId(\"asecret\")\n .fields(\"{\\\"something\\\":{\\\"mapValue\\\":{\\\"fields\\\":{\\\"secret\\\":{\\\"stringValue\\\":\\\"hithere\\\"}}}}}\")\n .project(\"my-project-name\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mydoc:\n type: gcp:firestore:Document\n properties:\n collection: somenewcollection\n documentId: my-doc-%{random_suffix}\n fields: '{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}'\n project: my-project-name\n subDocument:\n type: gcp:firestore:Document\n properties:\n collection: ${mydoc.path}/subdocs\n documentId: bitcoinkey\n fields: '{\"something\":{\"mapValue\":{\"fields\":{\"ayo\":{\"stringValue\":\"val2\"}}}}}'\n project: my-project-name\n subSubDocument:\n type: gcp:firestore:Document\n properties:\n collection: ${subDocument.path}/subsubdocs\n documentId: asecret\n fields: '{\"something\":{\"mapValue\":{\"fields\":{\"secret\":{\"stringValue\":\"hithere\"}}}}}'\n project: my-project-name\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDocument can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:firestore/document:Document default {{name}}\n```\n\n ", "properties": { @@ -186276,7 +188322,7 @@ } }, "gcp:securitycenter/instanceIamBinding:InstanceIamBinding": { - "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n options: {\n prober_test_run: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ),\n options={\n \"prober_test_run\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .options(Map.of(\"prober_test_run\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{name}}\n```\n\n ", + "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamBinding:InstanceIamBinding default {{name}}\n```\n\n ", "properties": { "condition": { "$ref": "#/types/gcp:securitycenter/InstanceIamBindingCondition:InstanceIamBindingCondition" @@ -186389,7 +188435,7 @@ } }, "gcp:securitycenter/instanceIamMember:InstanceIamMember": { - "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n options: {\n prober_test_run: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ),\n options={\n \"prober_test_run\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .options(Map.of(\"prober_test_run\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{name}}\n```\n\n ", + "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamMember:InstanceIamMember default {{name}}\n```\n\n ", "properties": { "condition": { "$ref": "#/types/gcp:securitycenter/InstanceIamMemberCondition:InstanceIamMemberCondition" @@ -186495,7 +188541,7 @@ } }, "gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy": { - "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n options: {\n prober_test_run: \"true\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ),\n options={\n \"prober_test_run\": \"true\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .options(Map.of(\"prober_test_run\", \"true\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n options: {\n prober_test_run: \"true\",\n },\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n options={\n \"prober_test_run\": \"true\",\n },\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Options = \n {\n { \"prober_test_run\", \"true\" },\n },\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tOptions: pulumi.StringMap{\n\t\t\t\t\"prober_test_run\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .options(Map.of(\"prober_test_run\", \"true\"))\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n # Mark for testing to avoid service networking connection usage that is not cleaned up\n options:\n prober_test_run: 'true'\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{name}}\n```\n\n ", + "description": "Represents a Data Fusion instance.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/data-fusion/docs/reference/rest/v1beta1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/data-fusion/docs/)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Data Fusion Instance Basic\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basicInstance = new gcp.datafusion.Instance(\"basicInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic_instance = gcp.datafusion.Instance(\"basicInstance\",\n region=\"us-central1\",\n type=\"BASIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basicInstance = new Gcp.DataFusion.Instance(\"basicInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"basicInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basicInstance = new Instance(\"basicInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basicInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Full\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.appengine.getDefaultServiceAccount({});\nconst network = new gcp.compute.Network(\"network\", {});\nconst privateIpAlloc = new gcp.compute.GlobalAddress(\"privateIpAlloc\", {\n addressType: \"INTERNAL\",\n purpose: \"VPC_PEERING\",\n prefixLength: 22,\n network: network.id,\n});\nconst extendedInstance = new gcp.datafusion.Instance(\"extendedInstance\", {\n description: \"My Data Fusion instance\",\n displayName: \"My Data Fusion instance\",\n region: \"us-central1\",\n type: \"BASIC\",\n enableStackdriverLogging: true,\n enableStackdriverMonitoring: true,\n privateInstance: true,\n version: \"6.6.0\",\n dataprocServiceAccount: _default.then(_default =\u003e _default.email),\n labels: {\n example_key: \"example_value\",\n },\n networkConfig: {\n network: \"default\",\n ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) =\u003e `${address}/${prefixLength}`),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.appengine.get_default_service_account()\nnetwork = gcp.compute.Network(\"network\")\nprivate_ip_alloc = gcp.compute.GlobalAddress(\"privateIpAlloc\",\n address_type=\"INTERNAL\",\n purpose=\"VPC_PEERING\",\n prefix_length=22,\n network=network.id)\nextended_instance = gcp.datafusion.Instance(\"extendedInstance\",\n description=\"My Data Fusion instance\",\n display_name=\"My Data Fusion instance\",\n region=\"us-central1\",\n type=\"BASIC\",\n enable_stackdriver_logging=True,\n enable_stackdriver_monitoring=True,\n private_instance=True,\n version=\"6.6.0\",\n dataproc_service_account=default.email,\n labels={\n \"example_key\": \"example_value\",\n },\n network_config=gcp.datafusion.InstanceNetworkConfigArgs(\n network=\"default\",\n ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f\"{address}/{prefix_length}\"),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.AppEngine.GetDefaultServiceAccount.Invoke();\n\n var network = new Gcp.Compute.Network(\"network\");\n\n var privateIpAlloc = new Gcp.Compute.GlobalAddress(\"privateIpAlloc\", new()\n {\n AddressType = \"INTERNAL\",\n Purpose = \"VPC_PEERING\",\n PrefixLength = 22,\n Network = network.Id,\n });\n\n var extendedInstance = new Gcp.DataFusion.Instance(\"extendedInstance\", new()\n {\n Description = \"My Data Fusion instance\",\n DisplayName = \"My Data Fusion instance\",\n Region = \"us-central1\",\n Type = \"BASIC\",\n EnableStackdriverLogging = true,\n EnableStackdriverMonitoring = true,\n PrivateInstance = true,\n Version = \"6.6.0\",\n DataprocServiceAccount = @default.Apply(@default =\u003e @default.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)),\n Labels = \n {\n { \"example_key\", \"example_value\" },\n },\n NetworkConfig = new Gcp.DataFusion.Inputs.InstanceNetworkConfigArgs\n {\n Network = \"default\",\n IpAllocation = Output.Tuple(privateIpAlloc.Address, privateIpAlloc.PrefixLength).Apply(values =\u003e\n {\n var address = values.Item1;\n var prefixLength = values.Item2;\n return $\"{address}/{prefixLength}\";\n }),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/appengine\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := appengine.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAlloc, err := compute.NewGlobalAddress(ctx, \"privateIpAlloc\", \u0026compute.GlobalAddressArgs{\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: network.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"extendedInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tDescription: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tDisplayName: pulumi.String(\"My Data Fusion instance\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tEnableStackdriverLogging: pulumi.Bool(true),\n\t\t\tEnableStackdriverMonitoring: pulumi.Bool(true),\n\t\t\tPrivateInstance: pulumi.Bool(true),\n\t\t\tVersion: pulumi.String(\"6.6.0\"),\n\t\t\tDataprocServiceAccount: *pulumi.String(_default.Email),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"example_key\": pulumi.String(\"example_value\"),\n\t\t\t},\n\t\t\tNetworkConfig: \u0026datafusion.InstanceNetworkConfigArgs{\n\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\tIpAllocation: pulumi.All(privateIpAlloc.Address, privateIpAlloc.PrefixLength).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\taddress := _args[0].(string)\n\t\t\t\t\tprefixLength := _args[1].(*int)\n\t\t\t\t\treturn fmt.Sprintf(\"%v/%v\", address, prefixLength), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.appengine.AppengineFunctions;\nimport com.pulumi.gcp.appengine.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceNetworkConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = AppengineFunctions.getDefaultServiceAccount();\n\n var network = new Network(\"network\");\n\n var privateIpAlloc = new GlobalAddress(\"privateIpAlloc\", GlobalAddressArgs.builder() \n .addressType(\"INTERNAL\")\n .purpose(\"VPC_PEERING\")\n .prefixLength(22)\n .network(network.id())\n .build());\n\n var extendedInstance = new Instance(\"extendedInstance\", InstanceArgs.builder() \n .description(\"My Data Fusion instance\")\n .displayName(\"My Data Fusion instance\")\n .region(\"us-central1\")\n .type(\"BASIC\")\n .enableStackdriverLogging(true)\n .enableStackdriverMonitoring(true)\n .privateInstance(true)\n .version(\"6.6.0\")\n .dataprocServiceAccount(default_.email())\n .labels(Map.of(\"example_key\", \"example_value\"))\n .networkConfig(InstanceNetworkConfigArgs.builder()\n .network(\"default\")\n .ipAllocation(Output.tuple(privateIpAlloc.address(), privateIpAlloc.prefixLength()).applyValue(values -\u003e {\n var address = values.t1;\n var prefixLength = values.t2;\n return String.format(\"%s/%s\", address,prefixLength);\n }))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n extendedInstance:\n type: gcp:datafusion:Instance\n properties:\n description: My Data Fusion instance\n displayName: My Data Fusion instance\n region: us-central1\n type: BASIC\n enableStackdriverLogging: true\n enableStackdriverMonitoring: true\n privateInstance: true\n version: 6.6.0\n dataprocServiceAccount: ${default.email}\n labels:\n example_key: example_value\n networkConfig:\n network: default\n ipAllocation: ${privateIpAlloc.address}/${privateIpAlloc.prefixLength}\n network:\n type: gcp:compute:Network\n privateIpAlloc:\n type: gcp:compute:GlobalAddress\n properties:\n addressType: INTERNAL\n purpose: VPC_PEERING\n prefixLength: 22\n network: ${network.id}\nvariables:\n default:\n fn::invoke:\n Function: gcp:appengine:getDefaultServiceAccount\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Cmek\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"keyRing\", {location: \"us-central1\"});\nconst cryptoKey = new gcp.kms.CryptoKey(\"cryptoKey\", {keyRing: keyRing.id});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com`)],\n});\nconst cmek = new gcp.datafusion.Instance(\"cmek\", {\n region: \"us-central1\",\n type: \"BASIC\",\n cryptoKeyConfig: {\n keyReference: cryptoKey.id,\n },\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"keyRing\", location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"cryptoKey\", key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\"])\ncmek = gcp.datafusion.Instance(\"cmek\",\n region=\"us-central1\",\n type=\"BASIC\",\n crypto_key_config=gcp.datafusion.InstanceCryptoKeyConfigArgs(\n key_reference=crypto_key.id,\n ),\n opts=pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"keyRing\", new()\n {\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"cryptoKey\", new()\n {\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMBinding(\"cryptoKeyBinding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datafusion.iam.gserviceaccount.com\",\n },\n });\n\n var cmek = new Gcp.DataFusion.Instance(\"cmek\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n CryptoKeyConfig = new Gcp.DataFusion.Inputs.InstanceCryptoKeyConfigArgs\n {\n KeyReference = cryptoKey.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"keyRing\", \u0026kms.KeyRingArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"cryptoKey\", \u0026kms.CryptoKeyArgs{\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, \"cryptoKeyBinding\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datafusion.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"cmek\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tCryptoKeyConfig: \u0026datafusion.InstanceCryptoKeyConfigArgs{\n\t\t\t\tKeyReference: cryptoKey.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceCryptoKeyConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder() \n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder() \n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMBinding(\"cryptoKeyBinding\", CryptoKeyIAMBindingArgs.builder() \n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-datafusion.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var cmek = new Instance(\"cmek\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .cryptoKeyConfig(InstanceCryptoKeyConfigArgs.builder()\n .keyReference(cryptoKey.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cmek:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n cryptoKeyConfig:\n keyReference: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\n cryptoKey:\n type: gcp:kms:CryptoKey\n properties:\n keyRing: ${keyRing.id}\n keyRing:\n type: gcp:kms:KeyRing\n properties:\n location: us-central1\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMBinding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${project.number}@gcp-sa-datafusion.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Enterprise\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst enterpriseInstance = new gcp.datafusion.Instance(\"enterpriseInstance\", {\n enableRbac: true,\n region: \"us-central1\",\n type: \"ENTERPRISE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nenterprise_instance = gcp.datafusion.Instance(\"enterpriseInstance\",\n enable_rbac=True,\n region=\"us-central1\",\n type=\"ENTERPRISE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var enterpriseInstance = new Gcp.DataFusion.Instance(\"enterpriseInstance\", new()\n {\n EnableRbac = true,\n Region = \"us-central1\",\n Type = \"ENTERPRISE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"enterpriseInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tEnableRbac: pulumi.Bool(true),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"ENTERPRISE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var enterpriseInstance = new Instance(\"enterpriseInstance\", InstanceArgs.builder() \n .enableRbac(true)\n .region(\"us-central1\")\n .type(\"ENTERPRISE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enterpriseInstance:\n type: gcp:datafusion:Instance\n properties:\n enableRbac: true\n region: us-central1\n type: ENTERPRISE\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Event\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst eventTopic = new gcp.pubsub.Topic(\"eventTopic\", {});\nconst eventInstance = new gcp.datafusion.Instance(\"eventInstance\", {\n region: \"us-central1\",\n type: \"BASIC\",\n version: \"6.7.0\",\n eventPublishConfig: {\n enabled: true,\n topic: eventTopic.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nevent_topic = gcp.pubsub.Topic(\"eventTopic\")\nevent_instance = gcp.datafusion.Instance(\"eventInstance\",\n region=\"us-central1\",\n type=\"BASIC\",\n version=\"6.7.0\",\n event_publish_config=gcp.datafusion.InstanceEventPublishConfigArgs(\n enabled=True,\n topic=event_topic.id,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventTopic = new Gcp.PubSub.Topic(\"eventTopic\");\n\n var eventInstance = new Gcp.DataFusion.Instance(\"eventInstance\", new()\n {\n Region = \"us-central1\",\n Type = \"BASIC\",\n Version = \"6.7.0\",\n EventPublishConfig = new Gcp.DataFusion.Inputs.InstanceEventPublishConfigArgs\n {\n Enabled = true,\n Topic = eventTopic.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\teventTopic, err := pubsub.NewTopic(ctx, \"eventTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datafusion.NewInstance(ctx, \"eventInstance\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"BASIC\"),\n\t\t\tVersion: pulumi.String(\"6.7.0\"),\n\t\t\tEventPublishConfig: \u0026datafusion.InstanceEventPublishConfigArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tTopic: eventTopic.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport com.pulumi.gcp.datafusion.inputs.InstanceEventPublishConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventTopic = new Topic(\"eventTopic\");\n\n var eventInstance = new Instance(\"eventInstance\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"BASIC\")\n .version(\"6.7.0\")\n .eventPublishConfig(InstanceEventPublishConfigArgs.builder()\n .enabled(true)\n .topic(eventTopic.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventInstance:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: BASIC\n version: 6.7.0\n eventPublishConfig:\n enabled: true\n topic: ${eventTopic.id}\n eventTopic:\n type: gcp:pubsub:Topic\n```\n{{% /example %}}\n{{% example %}}\n### Data Fusion Instance Zone\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst zone = new gcp.datafusion.Instance(\"zone\", {\n region: \"us-central1\",\n type: \"DEVELOPER\",\n zone: \"us-central1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nzone = gcp.datafusion.Instance(\"zone\",\n region=\"us-central1\",\n type=\"DEVELOPER\",\n zone=\"us-central1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var zone = new Gcp.DataFusion.Instance(\"zone\", new()\n {\n Region = \"us-central1\",\n Type = \"DEVELOPER\",\n Zone = \"us-central1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datafusion\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datafusion.NewInstance(ctx, \"zone\", \u0026datafusion.InstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tType: pulumi.String(\"DEVELOPER\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datafusion.Instance;\nimport com.pulumi.gcp.datafusion.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var zone = new Instance(\"zone\", InstanceArgs.builder() \n .region(\"us-central1\")\n .type(\"DEVELOPER\")\n .zone(\"us-central1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zone:\n type: gcp:datafusion:Instance\n properties:\n region: us-central1\n type: DEVELOPER\n zone: us-central1-a\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstance can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default projects/{{project}}/locations/{{region}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy default {{name}}\n```\n\n ", "properties": { "etag": { "type": "string" @@ -189911,7 +191957,7 @@ } }, "gcp:sql/databaseInstance:DatabaseInstance": { - "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### SQL Second Generation Instance\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n databaseVersion: \"POSTGRES_14\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n database_version=\"POSTGRES_14\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n DatabaseVersion = \"POSTGRES_14\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"POSTGRES_14\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"POSTGRES_14\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: POSTGRES_14\n region: us-central1\n settings:\n tier: db-f1-micro\n```\n{{% /example %}}\n{{% example %}}\n### Private IP Instance\n\u003e **NOTE:** For private IP instance setup, note that the `gcp.sql.DatabaseInstance` does not actually interpolate values from `gcp.servicenetworking.Connection`. You must explicitly add a `depends_on`reference as shown below.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst privateNetwork = new gcp.compute.Network(\"privateNetwork\", {}, {\n provider: google_beta,\n});\nconst privateIpAddress = new gcp.compute.GlobalAddress(\"privateIpAddress\", {\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: privateNetwork.id,\n}, {\n provider: google_beta,\n});\nconst privateVpcConnection = new gcp.servicenetworking.Connection(\"privateVpcConnection\", {\n network: privateNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAddress.name],\n}, {\n provider: google_beta,\n});\nconst dbNameSuffix = new random.RandomId(\"dbNameSuffix\", {byteLength: 4});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n region: \"us-central1\",\n databaseVersion: \"MYSQL_5_7\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n ipv4Enabled: false,\n privateNetwork: privateNetwork.id,\n },\n },\n}, {\n provider: google_beta,\n dependsOn: [privateVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nprivate_network = gcp.compute.Network(\"privateNetwork\", opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_ip_address = gcp.compute.GlobalAddress(\"privateIpAddress\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=private_network.id,\n opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_vpc_connection = gcp.servicenetworking.Connection(\"privateVpcConnection\",\n network=private_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_address.name],\n opts=pulumi.ResourceOptions(provider=google_beta))\ndb_name_suffix = random.RandomId(\"dbNameSuffix\", byte_length=4)\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n region=\"us-central1\",\n database_version=\"MYSQL_5_7\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n ipv4_enabled=False,\n private_network=private_network.id,\n ),\n ),\n opts=pulumi.ResourceOptions(provider=google_beta,\n depends_on=[private_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privateNetwork = new Gcp.Compute.Network(\"privateNetwork\", new()\n {\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateIpAddress = new Gcp.Compute.GlobalAddress(\"privateIpAddress\", new()\n {\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = privateNetwork.Id,\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateVpcConnection = new Gcp.ServiceNetworking.Connection(\"privateVpcConnection\", new()\n {\n Network = privateNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAddress.Name,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var dbNameSuffix = new Random.RandomId(\"dbNameSuffix\", new()\n {\n ByteLength = 4,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Region = \"us-central1\",\n DatabaseVersion = \"MYSQL_5_7\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n Ipv4Enabled = false,\n PrivateNetwork = privateNetwork.Id,\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n DependsOn = new[]\n {\n privateVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetwork, err := compute.NewNetwork(ctx, \"privateNetwork\", nil, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAddress, err := compute.NewGlobalAddress(ctx, \"privateIpAddress\", \u0026compute.GlobalAddressArgs{\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateVpcConnection, err := servicenetworking.NewConnection(ctx, \"privateVpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAddress.Name,\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"dbNameSuffix\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_5_7\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t\tPrivateNetwork: privateNetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivateVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privateNetwork = new Network(\"privateNetwork\", NetworkArgs.Empty, CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateIpAddress = new GlobalAddress(\"privateIpAddress\", GlobalAddressArgs.builder() \n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(privateNetwork.id())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateVpcConnection = new Connection(\"privateVpcConnection\", ConnectionArgs.builder() \n .network(privateNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAddress.name())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var dbNameSuffix = new RandomId(\"dbNameSuffix\", RandomIdArgs.builder() \n .byteLength(4)\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .region(\"us-central1\")\n .databaseVersion(\"MYSQL_5_7\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .ipv4Enabled(false)\n .privateNetwork(privateNetwork.id())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .dependsOn(privateVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privateNetwork:\n type: gcp:compute:Network\n options:\n provider: ${[\"google-beta\"]}\n privateIpAddress:\n type: gcp:compute:GlobalAddress\n properties:\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${privateNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n privateVpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${privateNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAddress.name}\n options:\n provider: ${[\"google-beta\"]}\n dbNameSuffix:\n type: random:RandomId\n properties:\n byteLength: 4\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n region: us-central1\n databaseVersion: MYSQL_5_7\n settings:\n tier: db-f1-micro\n ipConfiguration:\n ipv4Enabled: false\n privateNetwork: ${privateNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n dependson:\n - ${privateVpcConnection}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabase instances can be imported using one of any of these accepted formats\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main projects/{{project}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{project}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{name}}\n```\n\n config and set on the server. When importing, double-check that your config has all the fields set that you expect- just seeing no diff isn't sufficient to know that your config could reproduce the imported resource. ", + "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n### SQL Second Generation Instance\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n databaseVersion: \"POSTGRES_14\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n database_version=\"POSTGRES_14\",\n region=\"us-central1\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n DatabaseVersion = \"POSTGRES_14\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tDatabaseVersion: pulumi.String(\"POSTGRES_14\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder() \n .databaseVersion(\"POSTGRES_14\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n databaseVersion: POSTGRES_14\n region: us-central1\n settings:\n tier: db-f1-micro\n```\n{{% /example %}}\n{{% example %}}\n### Private IP Instance\n\u003e **NOTE:** For private IP instance setup, note that the `gcp.sql.DatabaseInstance` does not actually interpolate values from `gcp.servicenetworking.Connection`. You must explicitly add a `depends_on`reference as shown below.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst privateNetwork = new gcp.compute.Network(\"privateNetwork\", {}, {\n provider: google_beta,\n});\nconst privateIpAddress = new gcp.compute.GlobalAddress(\"privateIpAddress\", {\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: privateNetwork.id,\n}, {\n provider: google_beta,\n});\nconst privateVpcConnection = new gcp.servicenetworking.Connection(\"privateVpcConnection\", {\n network: privateNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAddress.name],\n}, {\n provider: google_beta,\n});\nconst dbNameSuffix = new random.RandomId(\"dbNameSuffix\", {byteLength: 4});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n region: \"us-central1\",\n databaseVersion: \"MYSQL_5_7\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n ipv4Enabled: false,\n privateNetwork: privateNetwork.id,\n enablePrivatePathForGoogleCloudServices: true,\n },\n },\n}, {\n provider: google_beta,\n dependsOn: [privateVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nprivate_network = gcp.compute.Network(\"privateNetwork\", opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_ip_address = gcp.compute.GlobalAddress(\"privateIpAddress\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=private_network.id,\n opts=pulumi.ResourceOptions(provider=google_beta))\nprivate_vpc_connection = gcp.servicenetworking.Connection(\"privateVpcConnection\",\n network=private_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_address.name],\n opts=pulumi.ResourceOptions(provider=google_beta))\ndb_name_suffix = random.RandomId(\"dbNameSuffix\", byte_length=4)\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n region=\"us-central1\",\n database_version=\"MYSQL_5_7\",\n settings=gcp.sql.DatabaseInstanceSettingsArgs(\n tier=\"db-f1-micro\",\n ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs(\n ipv4_enabled=False,\n private_network=private_network.id,\n enable_private_path_for_google_cloud_services=True,\n ),\n ),\n opts=pulumi.ResourceOptions(provider=google_beta,\n depends_on=[private_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privateNetwork = new Gcp.Compute.Network(\"privateNetwork\", new()\n {\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateIpAddress = new Gcp.Compute.GlobalAddress(\"privateIpAddress\", new()\n {\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = privateNetwork.Id,\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var privateVpcConnection = new Gcp.ServiceNetworking.Connection(\"privateVpcConnection\", new()\n {\n Network = privateNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAddress.Name,\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var dbNameSuffix = new Random.RandomId(\"dbNameSuffix\", new()\n {\n ByteLength = 4,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Region = \"us-central1\",\n DatabaseVersion = \"MYSQL_5_7\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n Ipv4Enabled = false,\n PrivateNetwork = privateNetwork.Id,\n EnablePrivatePathForGoogleCloudServices = true,\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n DependsOn = new[]\n {\n privateVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetwork, err := compute.NewNetwork(ctx, \"privateNetwork\", nil, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAddress, err := compute.NewGlobalAddress(ctx, \"privateIpAddress\", \u0026compute.GlobalAddressArgs{\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateVpcConnection, err := servicenetworking.NewConnection(ctx, \"privateVpcConnection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAddress.Name,\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = random.NewRandomId(ctx, \"dbNameSuffix\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_5_7\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t\tPrivateNetwork: privateNetwork.ID(),\n\t\t\t\t\tEnablePrivatePathForGoogleCloudServices: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivateVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privateNetwork = new Network(\"privateNetwork\", NetworkArgs.Empty, CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateIpAddress = new GlobalAddress(\"privateIpAddress\", GlobalAddressArgs.builder() \n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(privateNetwork.id())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var privateVpcConnection = new Connection(\"privateVpcConnection\", ConnectionArgs.builder() \n .network(privateNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAddress.name())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var dbNameSuffix = new RandomId(\"dbNameSuffix\", RandomIdArgs.builder() \n .byteLength(4)\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder() \n .region(\"us-central1\")\n .databaseVersion(\"MYSQL_5_7\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .ipv4Enabled(false)\n .privateNetwork(privateNetwork.id())\n .enablePrivatePathForGoogleCloudServices(true)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .dependsOn(privateVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privateNetwork:\n type: gcp:compute:Network\n options:\n provider: ${[\"google-beta\"]}\n privateIpAddress:\n type: gcp:compute:GlobalAddress\n properties:\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${privateNetwork.id}\n options:\n provider: ${[\"google-beta\"]}\n privateVpcConnection:\n type: gcp:servicenetworking:Connection\n properties:\n network: ${privateNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAddress.name}\n options:\n provider: ${[\"google-beta\"]}\n dbNameSuffix:\n type: random:RandomId\n properties:\n byteLength: 4\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n region: us-central1\n databaseVersion: MYSQL_5_7\n settings:\n tier: db-f1-micro\n ipConfiguration:\n ipv4Enabled: false\n privateNetwork: ${privateNetwork.id}\n enablePrivatePathForGoogleCloudServices: true\n options:\n provider: ${[\"google-beta\"]}\n dependson:\n - ${privateVpcConnection}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDatabase instances can be imported using one of any of these accepted formats\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main projects/{{project}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{project}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{name}}\n```\n\n config and set on the server. When importing, double-check that your config has all the fields set that you expect- just seeing no diff isn't sufficient to know that your config could reproduce the imported resource. ", "properties": { "availableMaintenanceVersions": { "type": "array", @@ -193857,7 +195903,7 @@ } }, "gcp:vertex/aiFeatureStore:AiFeatureStore": { - "description": "A collection of DataItems and Annotations on them.\n\n\nTo get more information about Featurestore, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Vertex Ai Featurestore\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n forceDestroy: true,\n labels: {\n foo: \"bar\",\n },\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n region: \"us-central1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n force_destroy=True,\n labels={\n \"foo\": \"bar\",\n },\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n region=\"us-central1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n ForceDestroy = true,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n Region = \"us-central1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .forceDestroy(true)\n .labels(Map.of(\"foo\", \"bar\"))\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .region(\"us-central1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n encryptionSpec:\n kmsKeyName: kms-name\n forceDestroy: true\n labels:\n foo: bar\n onlineServingConfig:\n fixedNodeCount: 2\n region: us-central1\n```\n{{% /example %}}\n{{% example %}}\n### Vertex Ai Featurestore Scaling\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n forceDestroy: true,\n labels: {\n foo: \"bar\",\n },\n onlineServingConfig: {\n scaling: {\n maxNodeCount: 10,\n minNodeCount: 2,\n },\n },\n region: \"us-central1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n force_destroy=True,\n labels={\n \"foo\": \"bar\",\n },\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n scaling=gcp.vertex.AiFeatureStoreOnlineServingConfigScalingArgs(\n max_node_count=10,\n min_node_count=2,\n ),\n ),\n region=\"us-central1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n ForceDestroy = true,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n Scaling = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigScalingArgs\n {\n MaxNodeCount = 10,\n MinNodeCount = 2,\n },\n },\n Region = \"us-central1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tScaling: \u0026vertex.AiFeatureStoreOnlineServingConfigScalingArgs{\n\t\t\t\t\tMaxNodeCount: pulumi.Int(10),\n\t\t\t\t\tMinNodeCount: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigScalingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .forceDestroy(true)\n .labels(Map.of(\"foo\", \"bar\"))\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .scaling(AiFeatureStoreOnlineServingConfigScalingArgs.builder()\n .maxNodeCount(10)\n .minNodeCount(2)\n .build())\n .build())\n .region(\"us-central1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n encryptionSpec:\n kmsKeyName: kms-name\n forceDestroy: true\n labels:\n foo: bar\n onlineServingConfig:\n scaling:\n maxNodeCount: 10\n minNodeCount: 2\n region: us-central1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFeaturestore can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default projects/{{project}}/locations/{{region}}/featurestores/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{name}}\n```\n\n ", + "description": "A collection of DataItems and Annotations on them.\n\n\nTo get more information about Featurestore, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Vertex Ai Featurestore\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n forceDestroy: true,\n labels: {\n foo: \"bar\",\n },\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n region: \"us-central1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n force_destroy=True,\n labels={\n \"foo\": \"bar\",\n },\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n region=\"us-central1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n ForceDestroy = true,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n Region = \"us-central1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .forceDestroy(true)\n .labels(Map.of(\"foo\", \"bar\"))\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .region(\"us-central1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n encryptionSpec:\n kmsKeyName: kms-name\n forceDestroy: true\n labels:\n foo: bar\n onlineServingConfig:\n fixedNodeCount: 2\n region: us-central1\n```\n{{% /example %}}\n{{% example %}}\n### Vertex Ai Featurestore With Beta Fields\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n onlineStorageTtlDays: 30,\n forceDestroy: true,\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n online_storage_ttl_days=30,\n force_destroy=True,\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n OnlineStorageTtlDays = 30,\n ForceDestroy = true,\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t\tOnlineStorageTtlDays: pulumi.Int(30),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .onlineStorageTtlDays(30)\n .forceDestroy(true)\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n labels:\n foo: bar\n region: us-central1\n onlineServingConfig:\n fixedNodeCount: 2\n encryptionSpec:\n kmsKeyName: kms-name\n onlineStorageTtlDays: 30\n forceDestroy: true\n options:\n provider: ${[\"google-beta\"]}\n```\n{{% /example %}}\n{{% example %}}\n### Vertex Ai Featurestore Scaling\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n forceDestroy: true,\n labels: {\n foo: \"bar\",\n },\n onlineServingConfig: {\n scaling: {\n maxNodeCount: 10,\n minNodeCount: 2,\n },\n },\n region: \"us-central1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n force_destroy=True,\n labels={\n \"foo\": \"bar\",\n },\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n scaling=gcp.vertex.AiFeatureStoreOnlineServingConfigScalingArgs(\n max_node_count=10,\n min_node_count=2,\n ),\n ),\n region=\"us-central1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n ForceDestroy = true,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n Scaling = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigScalingArgs\n {\n MaxNodeCount = 10,\n MinNodeCount = 2,\n },\n },\n Region = \"us-central1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tScaling: \u0026vertex.AiFeatureStoreOnlineServingConfigScalingArgs{\n\t\t\t\t\tMaxNodeCount: pulumi.Int(10),\n\t\t\t\t\tMinNodeCount: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigScalingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .forceDestroy(true)\n .labels(Map.of(\"foo\", \"bar\"))\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .scaling(AiFeatureStoreOnlineServingConfigScalingArgs.builder()\n .maxNodeCount(10)\n .minNodeCount(2)\n .build())\n .build())\n .region(\"us-central1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n encryptionSpec:\n kmsKeyName: kms-name\n forceDestroy: true\n labels:\n foo: bar\n onlineServingConfig:\n scaling:\n maxNodeCount: 10\n minNodeCount: 2\n region: us-central1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFeaturestore can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default projects/{{project}}/locations/{{region}}/featurestores/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{project}}/{{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{region}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStore:AiFeatureStore default {{name}}\n```\n\n ", "properties": { "createTime": { "type": "string", @@ -193890,6 +195936,10 @@ "$ref": "#/types/gcp:vertex/AiFeatureStoreOnlineServingConfig:AiFeatureStoreOnlineServingConfig", "description": "Config for online serving resources.\nStructure is documented below.\n" }, + "onlineStorageTtlDays": { + "type": "integer", + "description": "TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage\nperiodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note\nthat onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a\nfeaturestore. If not set, default to 4000 days\n" + }, "project": { "type": "string", "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" @@ -193936,6 +195986,10 @@ "$ref": "#/types/gcp:vertex/AiFeatureStoreOnlineServingConfig:AiFeatureStoreOnlineServingConfig", "description": "Config for online serving resources.\nStructure is documented below.\n" }, + "onlineStorageTtlDays": { + "type": "integer", + "description": "TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage\nperiodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note\nthat onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a\nfeaturestore. If not set, default to 4000 days\n" + }, "project": { "type": "string", "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", @@ -193982,6 +196036,10 @@ "$ref": "#/types/gcp:vertex/AiFeatureStoreOnlineServingConfig:AiFeatureStoreOnlineServingConfig", "description": "Config for online serving resources.\nStructure is documented below.\n" }, + "onlineStorageTtlDays": { + "type": "integer", + "description": "TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage\nperiodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note\nthat onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a\nfeaturestore. If not set, default to 4000 days\n" + }, "project": { "type": "string", "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", @@ -194001,12 +196059,16 @@ } }, "gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType": { - "description": "An entity type is a type of object in a system that needs to be modeled and have stored information about. For example, driver is an entity type, and driver0 is an instance of an entity type driver.\n\n\nTo get more information about FeaturestoreEntitytype, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores.entityTypes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Vertex Ai Featurestore Entitytype\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n});\nconst entity = new gcp.vertex.AiFeatureStoreEntityType(\"entity\", {\n labels: {\n foo: \"bar\",\n },\n featurestore: featurestore.id,\n monitoringConfig: {\n snapshotAnalysis: {\n disabled: false,\n monitoringIntervalDays: 1,\n stalenessDays: 21,\n },\n numericalThresholdConfig: {\n value: 0.8,\n },\n categoricalThresholdConfig: {\n value: 10,\n },\n importFeaturesAnalysis: {\n state: \"ENABLED\",\n anomalyDetectionBaseline: \"PREVIOUS_IMPORT_FEATURES_STATS\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ))\nentity = gcp.vertex.AiFeatureStoreEntityType(\"entity\",\n labels={\n \"foo\": \"bar\",\n },\n featurestore=featurestore.id,\n monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs(\n snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs(\n disabled=False,\n monitoring_interval_days=1,\n staleness_days=21,\n ),\n numerical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs(\n value=0.8,\n ),\n categorical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs(\n value=10,\n ),\n import_features_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs(\n state=\"ENABLED\",\n anomaly_detection_baseline=\"PREVIOUS_IMPORT_FEATURES_STATS\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n });\n\n var entity = new Gcp.Vertex.AiFeatureStoreEntityType(\"entity\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Featurestore = featurestore.Id,\n MonitoringConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs\n {\n SnapshotAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs\n {\n Disabled = false,\n MonitoringIntervalDays = 1,\n StalenessDays = 21,\n },\n NumericalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs\n {\n Value = 0.8,\n },\n CategoricalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs\n {\n Value = 10,\n },\n ImportFeaturesAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs\n {\n State = \"ENABLED\",\n AnomalyDetectionBaseline = \"PREVIOUS_IMPORT_FEATURES_STATS\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeaturestore, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureStoreEntityType(ctx, \"entity\", \u0026vertex.AiFeatureStoreEntityTypeArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tFeaturestore: featurestore.ID(),\n\t\t\tMonitoringConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs{\n\t\t\t\tSnapshotAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tMonitoringIntervalDays: pulumi.Int(1),\n\t\t\t\t\tStalenessDays: pulumi.Int(21),\n\t\t\t\t},\n\t\t\t\tNumericalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.8),\n\t\t\t\t},\n\t\t\t\tCategoricalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t\tImportFeaturesAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs{\n\t\t\t\t\tState: pulumi.String(\"ENABLED\"),\n\t\t\t\t\tAnomalyDetectionBaseline: pulumi.String(\"PREVIOUS_IMPORT_FEATURES_STATS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityType;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityTypeArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .build());\n\n var entity = new AiFeatureStoreEntityType(\"entity\", AiFeatureStoreEntityTypeArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .featurestore(featurestore.id())\n .monitoringConfig(AiFeatureStoreEntityTypeMonitoringConfigArgs.builder()\n .snapshotAnalysis(AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs.builder()\n .disabled(false)\n .monitoringIntervalDays(1)\n .stalenessDays(21)\n .build())\n .numericalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs.builder()\n .value(0.8)\n .build())\n .categoricalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs.builder()\n .value(10)\n .build())\n .importFeaturesAnalysis(AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs.builder()\n .state(\"ENABLED\")\n .anomalyDetectionBaseline(\"PREVIOUS_IMPORT_FEATURES_STATS\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n labels:\n foo: bar\n region: us-central1\n onlineServingConfig:\n fixedNodeCount: 2\n encryptionSpec:\n kmsKeyName: kms-name\n entity:\n type: gcp:vertex:AiFeatureStoreEntityType\n properties:\n labels:\n foo: bar\n featurestore: ${featurestore.id}\n monitoringConfig:\n snapshotAnalysis:\n disabled: false\n monitoringIntervalDays: 1\n stalenessDays: 21\n numericalThresholdConfig:\n value: 0.8\n categoricalThresholdConfig:\n value: 10\n importFeaturesAnalysis:\n state: ENABLED\n anomalyDetectionBaseline: PREVIOUS_IMPORT_FEATURES_STATS\n```\n{{% /example %}}\n{{% example %}}\n### Vertex Ai Featurestore Entitytype With Beta Fields\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n}, {\n provider: google_beta,\n});\nconst entity = new gcp.vertex.AiFeatureStoreEntityType(\"entity\", {\n labels: {\n foo: \"bar\",\n },\n featurestore: featurestore.id,\n monitoringConfig: {\n snapshotAnalysis: {\n disabled: false,\n monitoringInterval: \"86400s\",\n },\n categoricalThresholdConfig: {\n value: 0.3,\n },\n numericalThresholdConfig: {\n value: 0.3,\n },\n },\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\nentity = gcp.vertex.AiFeatureStoreEntityType(\"entity\",\n labels={\n \"foo\": \"bar\",\n },\n featurestore=featurestore.id,\n monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs(\n snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs(\n disabled=False,\n monitoring_interval=\"86400s\",\n ),\n categorical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs(\n value=0.3,\n ),\n numerical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs(\n value=0.3,\n ),\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var entity = new Gcp.Vertex.AiFeatureStoreEntityType(\"entity\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Featurestore = featurestore.Id,\n MonitoringConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs\n {\n SnapshotAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs\n {\n Disabled = false,\n MonitoringInterval = \"86400s\",\n },\n CategoricalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs\n {\n Value = 0.3,\n },\n NumericalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs\n {\n Value = 0.3,\n },\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeaturestore, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureStoreEntityType(ctx, \"entity\", \u0026vertex.AiFeatureStoreEntityTypeArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tFeaturestore: featurestore.ID(),\n\t\t\tMonitoringConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs{\n\t\t\t\tSnapshotAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tMonitoringInterval: pulumi.String(\"86400s\"),\n\t\t\t\t},\n\t\t\t\tCategoricalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.3),\n\t\t\t\t},\n\t\t\t\tNumericalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.3),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityType;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityTypeArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var entity = new AiFeatureStoreEntityType(\"entity\", AiFeatureStoreEntityTypeArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .featurestore(featurestore.id())\n .monitoringConfig(AiFeatureStoreEntityTypeMonitoringConfigArgs.builder()\n .snapshotAnalysis(AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs.builder()\n .disabled(false)\n .monitoringInterval(\"86400s\")\n .build())\n .categoricalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs.builder()\n .value(0.3)\n .build())\n .numericalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs.builder()\n .value(0.3)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n labels:\n foo: bar\n region: us-central1\n onlineServingConfig:\n fixedNodeCount: 2\n encryptionSpec:\n kmsKeyName: kms-name\n options:\n provider: ${[\"google-beta\"]}\n entity:\n type: gcp:vertex:AiFeatureStoreEntityType\n properties:\n labels:\n foo: bar\n featurestore: ${featurestore.id}\n monitoringConfig:\n snapshotAnalysis:\n disabled: false\n monitoringInterval: 86400s\n categoricalThresholdConfig:\n value: 0.3\n numericalThresholdConfig:\n value: 0.3\n options:\n provider: ${[\"google-beta\"]}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFeaturestoreEntitytype can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType default {{featurestore}}/entityTypes/{{name}}\n```\n\n ", + "description": "An entity type is a type of object in a system that needs to be modeled and have stored information about. For example, driver is an entity type, and driver0 is an instance of an entity type driver.\n\n\nTo get more information about FeaturestoreEntitytype, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featurestores.entityTypes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Vertex Ai Featurestore Entitytype\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n});\nconst entity = new gcp.vertex.AiFeatureStoreEntityType(\"entity\", {\n labels: {\n foo: \"bar\",\n },\n description: \"test description\",\n featurestore: featurestore.id,\n monitoringConfig: {\n snapshotAnalysis: {\n disabled: false,\n monitoringIntervalDays: 1,\n stalenessDays: 21,\n },\n numericalThresholdConfig: {\n value: 0.8,\n },\n categoricalThresholdConfig: {\n value: 10,\n },\n importFeaturesAnalysis: {\n state: \"ENABLED\",\n anomalyDetectionBaseline: \"PREVIOUS_IMPORT_FEATURES_STATS\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ))\nentity = gcp.vertex.AiFeatureStoreEntityType(\"entity\",\n labels={\n \"foo\": \"bar\",\n },\n description=\"test description\",\n featurestore=featurestore.id,\n monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs(\n snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs(\n disabled=False,\n monitoring_interval_days=1,\n staleness_days=21,\n ),\n numerical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs(\n value=0.8,\n ),\n categorical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs(\n value=10,\n ),\n import_features_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs(\n state=\"ENABLED\",\n anomaly_detection_baseline=\"PREVIOUS_IMPORT_FEATURES_STATS\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n });\n\n var entity = new Gcp.Vertex.AiFeatureStoreEntityType(\"entity\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Description = \"test description\",\n Featurestore = featurestore.Id,\n MonitoringConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs\n {\n SnapshotAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs\n {\n Disabled = false,\n MonitoringIntervalDays = 1,\n StalenessDays = 21,\n },\n NumericalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs\n {\n Value = 0.8,\n },\n CategoricalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs\n {\n Value = 10,\n },\n ImportFeaturesAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs\n {\n State = \"ENABLED\",\n AnomalyDetectionBaseline = \"PREVIOUS_IMPORT_FEATURES_STATS\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeaturestore, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureStoreEntityType(ctx, \"entity\", \u0026vertex.AiFeatureStoreEntityTypeArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"test description\"),\n\t\t\tFeaturestore: featurestore.ID(),\n\t\t\tMonitoringConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs{\n\t\t\t\tSnapshotAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tMonitoringIntervalDays: pulumi.Int(1),\n\t\t\t\t\tStalenessDays: pulumi.Int(21),\n\t\t\t\t},\n\t\t\t\tNumericalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.8),\n\t\t\t\t},\n\t\t\t\tCategoricalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(10),\n\t\t\t\t},\n\t\t\t\tImportFeaturesAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs{\n\t\t\t\t\tState: pulumi.String(\"ENABLED\"),\n\t\t\t\t\tAnomalyDetectionBaseline: pulumi.String(\"PREVIOUS_IMPORT_FEATURES_STATS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityType;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityTypeArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .build());\n\n var entity = new AiFeatureStoreEntityType(\"entity\", AiFeatureStoreEntityTypeArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .description(\"test description\")\n .featurestore(featurestore.id())\n .monitoringConfig(AiFeatureStoreEntityTypeMonitoringConfigArgs.builder()\n .snapshotAnalysis(AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs.builder()\n .disabled(false)\n .monitoringIntervalDays(1)\n .stalenessDays(21)\n .build())\n .numericalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs.builder()\n .value(0.8)\n .build())\n .categoricalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs.builder()\n .value(10)\n .build())\n .importFeaturesAnalysis(AiFeatureStoreEntityTypeMonitoringConfigImportFeaturesAnalysisArgs.builder()\n .state(\"ENABLED\")\n .anomalyDetectionBaseline(\"PREVIOUS_IMPORT_FEATURES_STATS\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n labels:\n foo: bar\n region: us-central1\n onlineServingConfig:\n fixedNodeCount: 2\n encryptionSpec:\n kmsKeyName: kms-name\n entity:\n type: gcp:vertex:AiFeatureStoreEntityType\n properties:\n labels:\n foo: bar\n description: test description\n featurestore: ${featurestore.id}\n monitoringConfig:\n snapshotAnalysis:\n disabled: false\n monitoringIntervalDays: 1\n stalenessDays: 21\n numericalThresholdConfig:\n value: 0.8\n categoricalThresholdConfig:\n value: 10\n importFeaturesAnalysis:\n state: ENABLED\n anomalyDetectionBaseline: PREVIOUS_IMPORT_FEATURES_STATS\n```\n{{% /example %}}\n{{% example %}}\n### Vertex Ai Featurestore Entitytype With Beta Fields\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featurestore = new gcp.vertex.AiFeatureStore(\"featurestore\", {\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n onlineServingConfig: {\n fixedNodeCount: 2,\n },\n encryptionSpec: {\n kmsKeyName: \"kms-name\",\n },\n}, {\n provider: google_beta,\n});\nconst entity = new gcp.vertex.AiFeatureStoreEntityType(\"entity\", {\n labels: {\n foo: \"bar\",\n },\n featurestore: featurestore.id,\n monitoringConfig: {\n snapshotAnalysis: {\n disabled: false,\n monitoringInterval: \"86400s\",\n },\n categoricalThresholdConfig: {\n value: 0.3,\n },\n numericalThresholdConfig: {\n value: 0.3,\n },\n },\n offlineStorageTtlDays: 30,\n}, {\n provider: google_beta,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeaturestore = gcp.vertex.AiFeatureStore(\"featurestore\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs(\n fixed_node_count=2,\n ),\n encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs(\n kms_key_name=\"kms-name\",\n ),\n opts=pulumi.ResourceOptions(provider=google_beta))\nentity = gcp.vertex.AiFeatureStoreEntityType(\"entity\",\n labels={\n \"foo\": \"bar\",\n },\n featurestore=featurestore.id,\n monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs(\n snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs(\n disabled=False,\n monitoring_interval=\"86400s\",\n ),\n categorical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs(\n value=0.3,\n ),\n numerical_threshold_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs(\n value=0.3,\n ),\n ),\n offline_storage_ttl_days=30,\n opts=pulumi.ResourceOptions(provider=google_beta))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featurestore = new Gcp.Vertex.AiFeatureStore(\"featurestore\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs\n {\n FixedNodeCount = 2,\n },\n EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs\n {\n KmsKeyName = \"kms-name\",\n },\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n var entity = new Gcp.Vertex.AiFeatureStoreEntityType(\"entity\", new()\n {\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Featurestore = featurestore.Id,\n MonitoringConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs\n {\n SnapshotAnalysis = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs\n {\n Disabled = false,\n MonitoringInterval = \"86400s\",\n },\n CategoricalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs\n {\n Value = 0.3,\n },\n NumericalThresholdConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs\n {\n Value = 0.3,\n },\n },\n OfflineStorageTtlDays = 30,\n }, new CustomResourceOptions\n {\n Provider = google_beta,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeaturestore, err := vertex.NewAiFeatureStore(ctx, \"featurestore\", \u0026vertex.AiFeatureStoreArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tOnlineServingConfig: \u0026vertex.AiFeatureStoreOnlineServingConfigArgs{\n\t\t\t\tFixedNodeCount: pulumi.Int(2),\n\t\t\t},\n\t\t\tEncryptionSpec: \u0026vertex.AiFeatureStoreEncryptionSpecArgs{\n\t\t\t\tKmsKeyName: pulumi.String(\"kms-name\"),\n\t\t\t},\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureStoreEntityType(ctx, \"entity\", \u0026vertex.AiFeatureStoreEntityTypeArgs{\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tFeaturestore: featurestore.ID(),\n\t\t\tMonitoringConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs{\n\t\t\t\tSnapshotAnalysis: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs{\n\t\t\t\t\tDisabled: pulumi.Bool(false),\n\t\t\t\t\tMonitoringInterval: pulumi.String(\"86400s\"),\n\t\t\t\t},\n\t\t\t\tCategoricalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.3),\n\t\t\t\t},\n\t\t\t\tNumericalThresholdConfig: \u0026vertex.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs{\n\t\t\t\t\tValue: pulumi.Float64(0.3),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOfflineStorageTtlDays: pulumi.Int(30),\n\t\t}, pulumi.Provider(google_beta))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureStore;\nimport com.pulumi.gcp.vertex.AiFeatureStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityType;\nimport com.pulumi.gcp.vertex.AiFeatureStoreEntityTypeArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featurestore = new AiFeatureStore(\"featurestore\", AiFeatureStoreArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder()\n .fixedNodeCount(2)\n .build())\n .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder()\n .kmsKeyName(\"kms-name\")\n .build())\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n var entity = new AiFeatureStoreEntityType(\"entity\", AiFeatureStoreEntityTypeArgs.builder() \n .labels(Map.of(\"foo\", \"bar\"))\n .featurestore(featurestore.id())\n .monitoringConfig(AiFeatureStoreEntityTypeMonitoringConfigArgs.builder()\n .snapshotAnalysis(AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs.builder()\n .disabled(false)\n .monitoringInterval(\"86400s\")\n .build())\n .categoricalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigCategoricalThresholdConfigArgs.builder()\n .value(0.3)\n .build())\n .numericalThresholdConfig(AiFeatureStoreEntityTypeMonitoringConfigNumericalThresholdConfigArgs.builder()\n .value(0.3)\n .build())\n .build())\n .offlineStorageTtlDays(30)\n .build(), CustomResourceOptions.builder()\n .provider(google_beta)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featurestore:\n type: gcp:vertex:AiFeatureStore\n properties:\n labels:\n foo: bar\n region: us-central1\n onlineServingConfig:\n fixedNodeCount: 2\n encryptionSpec:\n kmsKeyName: kms-name\n options:\n provider: ${[\"google-beta\"]}\n entity:\n type: gcp:vertex:AiFeatureStoreEntityType\n properties:\n labels:\n foo: bar\n featurestore: ${featurestore.id}\n monitoringConfig:\n snapshotAnalysis:\n disabled: false\n monitoringInterval: 86400s\n categoricalThresholdConfig:\n value: 0.3\n numericalThresholdConfig:\n value: 0.3\n offlineStorageTtlDays: 30\n options:\n provider: ${[\"google-beta\"]}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFeaturestoreEntitytype can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType default {{featurestore}}/entityTypes/{{name}}\n```\n\n ", "properties": { "createTime": { "type": "string", "description": "The timestamp of when the featurestore was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\n" }, + "description": { + "type": "string", + "description": "Optional. Description of the EntityType.\n" + }, "etag": { "type": "string", "description": "Used to perform consistent read-modify-write updates.\n" @@ -194030,6 +196092,10 @@ "type": "string", "description": "The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.\n" }, + "offlineStorageTtlDays": { + "type": "integer", + "description": "Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline\nstorage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays\nsince the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL.\n" + }, "region": { "type": "string", "description": "The region of the EntityType.\n" @@ -194048,6 +196114,10 @@ "updateTime" ], "inputProperties": { + "description": { + "type": "string", + "description": "Optional. Description of the EntityType.\n" + }, "featurestore": { "type": "string", "description": "The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}.\n", @@ -194068,6 +196138,10 @@ "type": "string", "description": "The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.\n", "willReplaceOnChanges": true + }, + "offlineStorageTtlDays": { + "type": "integer", + "description": "Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline\nstorage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays\nsince the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL.\n" } }, "requiredInputs": [ @@ -194080,6 +196154,10 @@ "type": "string", "description": "The timestamp of when the featurestore was created in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\n" }, + "description": { + "type": "string", + "description": "Optional. Description of the EntityType.\n" + }, "etag": { "type": "string", "description": "Used to perform consistent read-modify-write updates.\n" @@ -194105,6 +196183,10 @@ "description": "The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number.\n", "willReplaceOnChanges": true }, + "offlineStorageTtlDays": { + "type": "integer", + "description": "Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline\nstorage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays\nsince the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL.\n" + }, "region": { "type": "string", "description": "The region of the EntityType.\n" @@ -199133,6 +201215,12 @@ "instanceGroup": { "type": "string" }, + "instanceLifecyclePolicies": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/getInstanceGroupManagerInstanceLifecyclePolicy:getInstanceGroupManagerInstanceLifecyclePolicy" + } + }, "listManagedInstancesResults": { "type": "string" }, @@ -199217,6 +201305,7 @@ "description", "fingerprint", "instanceGroup", + "instanceLifecyclePolicies", "listManagedInstancesResults", "namedPorts", "operation", @@ -199442,6 +201531,13 @@ "$ref": "#/types/gcp:compute/getInstanceTemplateReservationAffinity:getInstanceTemplateReservationAffinity" } }, + "resourcePolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "(Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.\n" + }, "schedulings": { "type": "array", "items": { @@ -199500,6 +201596,7 @@ "networkPerformanceConfigs", "region", "reservationAffinities", + "resourcePolicies", "schedulings", "selfLink", "serviceAccounts", diff --git a/provider/resources.go b/provider/resources.go index fcaf48ff8e..fbd5e097b1 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -632,6 +632,24 @@ func Provider() tfbridge.ProviderInfo { // Cloud Build V2 "google_cloudbuildv2_connection": {Tok: gcpResource(gcpCloudBuildV2, "Connection")}, "google_cloudbuildv2_repository": {Tok: gcpResource(gcpCloudBuildV2, "Repository")}, + "google_cloudbuildv2_connection_iam_binding": { + Tok: gcpResource(gcpCloudBuildV2, "ConnectionIAMBinding"), + Docs: &tfbridge.DocInfo{ + Source: "cloudbuildv2_connection_iam.html.markdown", + }, + }, + "google_cloudbuildv2_connection_iam_member": { + Tok: gcpResource(gcpCloudBuildV2, "ConnectionIAMMember"), + Docs: &tfbridge.DocInfo{ + Source: "cloudbuildv2_connection_iam.html.markdown", + }, + }, + "google_cloudbuildv2_connection_iam_policy": { + Tok: gcpResource(gcpCloudBuildV2, "ConnectionIAMPolicy"), + Docs: &tfbridge.DocInfo{ + Source: "cloudbuildv2_connection_iam.html.markdown", + }, + }, // Cloud Deploy "google_clouddeploy_delivery_pipeline": {Tok: gcpResource(gcpCloudDeploy, "DeliveryPipeline")}, @@ -1472,6 +1490,7 @@ func Provider() tfbridge.ProviderInfo { // Firestore resources "google_firestore_index": {Tok: gcpResource(gcpFirestore, "Index")}, "google_firestore_document": {Tok: gcpResource(gcpFirestore, "Document")}, + "google_firestore_database": {Tok: gcpResource(gcpFirestore, "Database")}, // Monitoring resources "google_monitoring_alert_policy": {Tok: gcpResource(gcpMonitoring, "AlertPolicy")}, @@ -2610,6 +2629,14 @@ func Provider() tfbridge.ProviderInfo { "google_apigee_endpoint_attachment": {Tok: gcpResource(gcpApigee, "EndpointAttachment")}, "google_apigee_nat_address": {Tok: gcpResource(gcpApigee, "NatAddress")}, "google_apigee_sync_authorization": {Tok: gcpResource(gcpApigee, "SyncAuthorization")}, + "google_apigee_addons_config": { + Tok: gcpResource(gcpApigee, "AddonsConfig"), + Fields: map[string]*tfbridge.SchemaInfo{ + "addons_config": { + CSharpName: "AddonsConfigDetails", + }, + }, + }, // API Gateway "google_api_gateway_api_config_iam_binding": { diff --git a/sdk/dotnet/Alloydb/Backup.cs b/sdk/dotnet/Alloydb/Backup.cs index b4b6c6e1ea..d28f7e25e5 100644 --- a/sdk/dotnet/Alloydb/Backup.cs +++ b/sdk/dotnet/Alloydb/Backup.cs @@ -10,6 +10,14 @@ namespace Pulumi.Gcp.Alloydb { /// + /// An AlloyDB Backup. + /// + /// To get more information about Backup, see: + /// + /// * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) + /// * How-to Guides + /// * [AlloyDB](https://cloud.google.com/alloydb/docs/) + /// /// ## Example Usage /// ### Alloydb Backup Full /// @@ -30,9 +38,6 @@ namespace Pulumi.Gcp.Alloydb /// ClusterId = "alloydb-cluster", /// Location = "us-central1", /// Network = defaultNetwork.Apply(getNetworkResult => getNetworkResult.Id), - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var privateIpAlloc = new Gcp.Compute.GlobalAddress("privateIpAlloc", new() @@ -41,9 +46,6 @@ namespace Pulumi.Gcp.Alloydb /// Purpose = "VPC_PEERING", /// PrefixLength = 16, /// Network = defaultNetwork.Apply(getNetworkResult => getNetworkResult.Id), - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var vpcConnection = new Gcp.ServiceNetworking.Connection("vpcConnection", new() @@ -54,9 +56,6 @@ namespace Pulumi.Gcp.Alloydb /// { /// privateIpAlloc.Name, /// }, - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var defaultInstance = new Gcp.Alloydb.Instance("defaultInstance", new() @@ -66,7 +65,6 @@ namespace Pulumi.Gcp.Alloydb /// InstanceType = "PRIMARY", /// }, new CustomResourceOptions /// { - /// Provider = google_beta, /// DependsOn = new[] /// { /// vpcConnection, @@ -85,7 +83,6 @@ namespace Pulumi.Gcp.Alloydb /// }, /// }, new CustomResourceOptions /// { - /// Provider = google_beta, /// DependsOn = new[] /// { /// defaultInstance, diff --git a/sdk/dotnet/Alloydb/Cluster.cs b/sdk/dotnet/Alloydb/Cluster.cs index 2681d17b5e..96b993e113 100644 --- a/sdk/dotnet/Alloydb/Cluster.cs +++ b/sdk/dotnet/Alloydb/Cluster.cs @@ -22,12 +22,7 @@ namespace Pulumi.Gcp.Alloydb /// { /// var project = Gcp.Organizations.GetProject.Invoke(); /// - /// var defaultNetwork = new Gcp.Compute.Network("defaultNetwork", new() - /// { - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, - /// }); + /// var defaultNetwork = new Gcp.Compute.Network("defaultNetwork"); /// /// var defaultCluster = new Gcp.Alloydb.Cluster("defaultCluster", new() /// { @@ -39,84 +34,6 @@ namespace Pulumi.Gcp.Alloydb /// var name = values.Item2; /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/global/networks/{name}"; /// }), - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, - /// }); - /// - /// }); - /// ``` - /// ### Alloydb Cluster Full - /// - /// ```csharp - /// using System.Collections.Generic; - /// using Pulumi; - /// using Gcp = Pulumi.Gcp; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var project = Gcp.Organizations.GetProject.Invoke(); - /// - /// var @default = new Gcp.Compute.Network("default", new() - /// { - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, - /// }); - /// - /// var full = new Gcp.Alloydb.Cluster("full", new() - /// { - /// ClusterId = "alloydb-cluster-full", - /// Location = "us-central1", - /// Network = Output.Tuple(project, @default.Name).Apply(values => - /// { - /// var project = values.Item1; - /// var name = values.Item2; - /// return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/global/networks/{name}"; - /// }), - /// InitialUser = new Gcp.Alloydb.Inputs.ClusterInitialUserArgs - /// { - /// User = "alloydb-cluster-full", - /// Password = "alloydb-cluster-full", - /// }, - /// AutomatedBackupPolicy = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyArgs - /// { - /// Location = "us-central1", - /// BackupWindow = "1800s", - /// Enabled = true, - /// WeeklySchedule = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs - /// { - /// DaysOfWeeks = new[] - /// { - /// "MONDAY", - /// }, - /// StartTimes = new[] - /// { - /// new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs - /// { - /// Hours = 23, - /// Minutes = 0, - /// Seconds = 0, - /// Nanos = 0, - /// }, - /// }, - /// }, - /// QuantityBasedRetention = new Gcp.Alloydb.Inputs.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs - /// { - /// Count = 1, - /// }, - /// Labels = - /// { - /// { "test", "alloydb-cluster-full" }, - /// }, - /// }, - /// Labels = - /// { - /// { "test", "alloydb-cluster-full" }, - /// }, - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// }); diff --git a/sdk/dotnet/Alloydb/Instance.cs b/sdk/dotnet/Alloydb/Instance.cs index b2643206f3..701a095184 100644 --- a/sdk/dotnet/Alloydb/Instance.cs +++ b/sdk/dotnet/Alloydb/Instance.cs @@ -10,6 +10,14 @@ namespace Pulumi.Gcp.Alloydb { /// + /// A managed alloydb cluster instance. + /// + /// To get more information about Instance, see: + /// + /// * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) + /// * How-to Guides + /// * [AlloyDB](https://cloud.google.com/alloydb/docs/) + /// /// ## Example Usage /// ### Alloydb Instance Basic /// @@ -22,12 +30,7 @@ namespace Pulumi.Gcp.Alloydb /// { /// var project = Gcp.Organizations.GetProject.Invoke(); /// - /// var defaultNetwork = new Gcp.Compute.Network("defaultNetwork", new() - /// { - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, - /// }); + /// var defaultNetwork = new Gcp.Compute.Network("defaultNetwork"); /// /// var defaultCluster = new Gcp.Alloydb.Cluster("defaultCluster", new() /// { @@ -43,9 +46,6 @@ namespace Pulumi.Gcp.Alloydb /// { /// Password = "alloydb-cluster", /// }, - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var privateIpAlloc = new Gcp.Compute.GlobalAddress("privateIpAlloc", new() @@ -54,9 +54,6 @@ namespace Pulumi.Gcp.Alloydb /// Purpose = "VPC_PEERING", /// PrefixLength = 16, /// Network = defaultNetwork.Id, - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var vpcConnection = new Gcp.ServiceNetworking.Connection("vpcConnection", new() @@ -67,9 +64,6 @@ namespace Pulumi.Gcp.Alloydb /// { /// privateIpAlloc.Name, /// }, - /// }, new CustomResourceOptions - /// { - /// Provider = google_beta, /// }); /// /// var defaultInstance = new Gcp.Alloydb.Instance("defaultInstance", new() @@ -83,7 +77,6 @@ namespace Pulumi.Gcp.Alloydb /// }, /// }, new CustomResourceOptions /// { - /// Provider = google_beta, /// DependsOn = new[] /// { /// vpcConnection, diff --git a/sdk/dotnet/Apigee/AddonsConfig.cs b/sdk/dotnet/Apigee/AddonsConfig.cs new file mode 100644 index 0000000000..9b0bfb0158 --- /dev/null +++ b/sdk/dotnet/Apigee/AddonsConfig.cs @@ -0,0 +1,267 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee +{ + /// + /// Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. + /// + /// To get more information about AddonsConfig, see: + /// + /// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) + /// * How-to Guides + /// * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) + /// + /// ## Example Usage + /// ### Apigee Addons Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var testOrganization = new Gcp.Apigee.AddonsConfig("testOrganization", new() + /// { + /// AddonsConfigDetails = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigArgs + /// { + /// ApiSecurityConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs + /// { + /// Enabled = true, + /// }, + /// MonetizationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigMonetizationConfigArgs + /// { + /// Enabled = true, + /// }, + /// }, + /// Org = "test_organization", + /// }); + /// + /// }); + /// ``` + /// ### Apigee Addons Full + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Gcp.Organizations.GetClientConfig.Invoke(); + /// + /// var apigee = new Gcp.Projects.Service("apigee", new() + /// { + /// Project = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// ServiceName = "apigee.googleapis.com", + /// }); + /// + /// var compute = new Gcp.Projects.Service("compute", new() + /// { + /// Project = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// ServiceName = "compute.googleapis.com", + /// }); + /// + /// var servicenetworking = new Gcp.Projects.Service("servicenetworking", new() + /// { + /// Project = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// ServiceName = "servicenetworking.googleapis.com", + /// }); + /// + /// var apigeeNetwork = new Gcp.Compute.Network("apigeeNetwork", new() + /// { + /// Project = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// }, new CustomResourceOptions + /// { + /// DependsOn = new[] + /// { + /// compute, + /// }, + /// }); + /// + /// var apigeeRange = new Gcp.Compute.GlobalAddress("apigeeRange", new() + /// { + /// Purpose = "VPC_PEERING", + /// AddressType = "INTERNAL", + /// PrefixLength = 16, + /// Network = apigeeNetwork.Id, + /// Project = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// }); + /// + /// var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection("apigeeVpcConnection", new() + /// { + /// Network = apigeeNetwork.Id, + /// Service = "servicenetworking.googleapis.com", + /// ReservedPeeringRanges = new[] + /// { + /// apigeeRange.Name, + /// }, + /// }); + /// + /// var org = new Gcp.Apigee.Organization("org", new() + /// { + /// AnalyticsRegion = "us-central1", + /// ProjectId = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// AuthorizedNetwork = apigeeNetwork.Id, + /// BillingType = "EVALUATION", + /// }, new CustomResourceOptions + /// { + /// DependsOn = new[] + /// { + /// apigeeVpcConnection, + /// apigee, + /// }, + /// }); + /// + /// var testOrganization = new Gcp.Apigee.AddonsConfig("testOrganization", new() + /// { + /// Org = org.Name, + /// AddonsConfigDetails = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigArgs + /// { + /// IntegrationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigIntegrationConfigArgs + /// { + /// Enabled = true, + /// }, + /// ApiSecurityConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs + /// { + /// Enabled = true, + /// }, + /// ConnectorsPlatformConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs + /// { + /// Enabled = true, + /// }, + /// MonetizationConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigMonetizationConfigArgs + /// { + /// Enabled = true, + /// }, + /// AdvancedApiOpsConfig = new Gcp.Apigee.Inputs.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs + /// { + /// Enabled = true, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// AddonsConfig can be imported using any of these accepted formats + /// + /// ```sh + /// $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} + /// ``` + /// + [GcpResourceType("gcp:apigee/addonsConfig:AddonsConfig")] + public partial class AddonsConfig : global::Pulumi.CustomResource + { + /// + /// Addon configurations of the Apigee organization. + /// Structure is documented below. + /// + [Output("addonsConfig")] + public Output AddonsConfigDetails { get; private set; } = null!; + + /// + /// Name of the Apigee organization. + /// + [Output("org")] + public Output Org { get; private set; } = null!; + + + /// + /// Create a AddonsConfig resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public AddonsConfig(string name, AddonsConfigArgs args, CustomResourceOptions? options = null) + : base("gcp:apigee/addonsConfig:AddonsConfig", name, args ?? new AddonsConfigArgs(), MakeResourceOptions(options, "")) + { + } + + private AddonsConfig(string name, Input id, AddonsConfigState? state = null, CustomResourceOptions? options = null) + : base("gcp:apigee/addonsConfig:AddonsConfig", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing AddonsConfig resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static AddonsConfig Get(string name, Input id, AddonsConfigState? state = null, CustomResourceOptions? options = null) + { + return new AddonsConfig(name, id, state, options); + } + } + + public sealed class AddonsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Addon configurations of the Apigee organization. + /// Structure is documented below. + /// + [Input("addonsConfig")] + public Input? AddonsConfigDetails { get; set; } + + /// + /// Name of the Apigee organization. + /// + [Input("org", required: true)] + public Input Org { get; set; } = null!; + + public AddonsConfigArgs() + { + } + public static new AddonsConfigArgs Empty => new AddonsConfigArgs(); + } + + public sealed class AddonsConfigState : global::Pulumi.ResourceArgs + { + /// + /// Addon configurations of the Apigee organization. + /// Structure is documented below. + /// + [Input("addonsConfig")] + public Input? AddonsConfigDetails { get; set; } + + /// + /// Name of the Apigee organization. + /// + [Input("org")] + public Input? Org { get; set; } + + public AddonsConfigState() + { + } + public static new AddonsConfigState Empty => new AddonsConfigState(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.cs new file mode 100644 index 0000000000..bb5f115419 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs() + { + } + public static new AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs Empty => new AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs.cs new file mode 100644 index 0000000000..ee8c4801e1 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs Empty => new AddonsConfigAddonsConfigAdvancedApiOpsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.cs new file mode 100644 index 0000000000..34a186f438 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigApiSecurityConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + public AddonsConfigAddonsConfigApiSecurityConfigArgs() + { + } + public static new AddonsConfigAddonsConfigApiSecurityConfigArgs Empty => new AddonsConfigAddonsConfigApiSecurityConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigGetArgs.cs new file mode 100644 index 0000000000..de6805e06a --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigApiSecurityConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigApiSecurityConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + public AddonsConfigAddonsConfigApiSecurityConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigApiSecurityConfigGetArgs Empty => new AddonsConfigAddonsConfigApiSecurityConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigArgs.cs new file mode 100644 index 0000000000..21d8ab0dac --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("advancedApiOpsConfig")] + public Input? AdvancedApiOpsConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("apiSecurityConfig")] + public Input? ApiSecurityConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("connectorsPlatformConfig")] + public Input? ConnectorsPlatformConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("integrationConfig")] + public Input? IntegrationConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("monetizationConfig")] + public Input? MonetizationConfig { get; set; } + + public AddonsConfigAddonsConfigArgs() + { + } + public static new AddonsConfigAddonsConfigArgs Empty => new AddonsConfigAddonsConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.cs new file mode 100644 index 0000000000..f832107387 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigConnectorsPlatformConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + public AddonsConfigAddonsConfigConnectorsPlatformConfigArgs() + { + } + public static new AddonsConfigAddonsConfigConnectorsPlatformConfigArgs Empty => new AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs.cs new file mode 100644 index 0000000000..d7de134fa5 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("expiresAt")] + public Input? ExpiresAt { get; set; } + + public AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs Empty => new AddonsConfigAddonsConfigConnectorsPlatformConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigGetArgs.cs new file mode 100644 index 0000000000..b05dbd46ed --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("advancedApiOpsConfig")] + public Input? AdvancedApiOpsConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("apiSecurityConfig")] + public Input? ApiSecurityConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("connectorsPlatformConfig")] + public Input? ConnectorsPlatformConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("integrationConfig")] + public Input? IntegrationConfig { get; set; } + + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + [Input("monetizationConfig")] + public Input? MonetizationConfig { get; set; } + + public AddonsConfigAddonsConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigGetArgs Empty => new AddonsConfigAddonsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.cs new file mode 100644 index 0000000000..2bfbc635c0 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigIntegrationConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigIntegrationConfigArgs() + { + } + public static new AddonsConfigAddonsConfigIntegrationConfigArgs Empty => new AddonsConfigAddonsConfigIntegrationConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigGetArgs.cs new file mode 100644 index 0000000000..3ebd87a4ff --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigIntegrationConfigGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigIntegrationConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigIntegrationConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigIntegrationConfigGetArgs Empty => new AddonsConfigAddonsConfigIntegrationConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.cs new file mode 100644 index 0000000000..9e46007b15 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigMonetizationConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigMonetizationConfigArgs() + { + } + public static new AddonsConfigAddonsConfigMonetizationConfigArgs Empty => new AddonsConfigAddonsConfigMonetizationConfigArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigGetArgs.cs b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigGetArgs.cs new file mode 100644 index 0000000000..4ef020f641 --- /dev/null +++ b/sdk/dotnet/Apigee/Inputs/AddonsConfigAddonsConfigMonetizationConfigGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Inputs +{ + + public sealed class AddonsConfigAddonsConfigMonetizationConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public AddonsConfigAddonsConfigMonetizationConfigGetArgs() + { + } + public static new AddonsConfigAddonsConfigMonetizationConfigGetArgs Empty => new AddonsConfigAddonsConfigMonetizationConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfig.cs new file mode 100644 index 0000000000..9c68051ba5 --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfig.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfig + { + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + public readonly Outputs.AddonsConfigAddonsConfigAdvancedApiOpsConfig? AdvancedApiOpsConfig; + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + public readonly Outputs.AddonsConfigAddonsConfigApiSecurityConfig? ApiSecurityConfig; + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + public readonly Outputs.AddonsConfigAddonsConfigConnectorsPlatformConfig? ConnectorsPlatformConfig; + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + public readonly Outputs.AddonsConfigAddonsConfigIntegrationConfig? IntegrationConfig; + /// + /// Configuration for the Monetization add-on. + /// Structure is documented below. + /// + public readonly Outputs.AddonsConfigAddonsConfigMonetizationConfig? MonetizationConfig; + + [OutputConstructor] + private AddonsConfigAddonsConfig( + Outputs.AddonsConfigAddonsConfigAdvancedApiOpsConfig? advancedApiOpsConfig, + + Outputs.AddonsConfigAddonsConfigApiSecurityConfig? apiSecurityConfig, + + Outputs.AddonsConfigAddonsConfigConnectorsPlatformConfig? connectorsPlatformConfig, + + Outputs.AddonsConfigAddonsConfigIntegrationConfig? integrationConfig, + + Outputs.AddonsConfigAddonsConfigMonetizationConfig? monetizationConfig) + { + AdvancedApiOpsConfig = advancedApiOpsConfig; + ApiSecurityConfig = apiSecurityConfig; + ConnectorsPlatformConfig = connectorsPlatformConfig; + IntegrationConfig = integrationConfig; + MonetizationConfig = monetizationConfig; + } + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.cs new file mode 100644 index 0000000000..c597812381 --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfigAdvancedApiOpsConfig + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly bool? Enabled; + + [OutputConstructor] + private AddonsConfigAddonsConfigAdvancedApiOpsConfig(bool? enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigApiSecurityConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigApiSecurityConfig.cs new file mode 100644 index 0000000000..4f886ee40d --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigApiSecurityConfig.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfigApiSecurityConfig + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly bool? Enabled; + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly string? ExpiresAt; + + [OutputConstructor] + private AddonsConfigAddonsConfigApiSecurityConfig( + bool? enabled, + + string? expiresAt) + { + Enabled = enabled; + ExpiresAt = expiresAt; + } + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.cs new file mode 100644 index 0000000000..e3399b8161 --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfigConnectorsPlatformConfig + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly bool? Enabled; + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly string? ExpiresAt; + + [OutputConstructor] + private AddonsConfigAddonsConfigConnectorsPlatformConfig( + bool? enabled, + + string? expiresAt) + { + Enabled = enabled; + ExpiresAt = expiresAt; + } + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigIntegrationConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigIntegrationConfig.cs new file mode 100644 index 0000000000..ad97a8f3dd --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigIntegrationConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfigIntegrationConfig + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly bool? Enabled; + + [OutputConstructor] + private AddonsConfigAddonsConfigIntegrationConfig(bool? enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigMonetizationConfig.cs b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigMonetizationConfig.cs new file mode 100644 index 0000000000..e3f9e7bd15 --- /dev/null +++ b/sdk/dotnet/Apigee/Outputs/AddonsConfigAddonsConfigMonetizationConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee.Outputs +{ + + [OutputType] + public sealed class AddonsConfigAddonsConfigMonetizationConfig + { + /// + /// Flag that specifies whether the Advanced API Ops add-on is enabled. + /// + public readonly bool? Enabled; + + [OutputConstructor] + private AddonsConfigAddonsConfigMonetizationConfig(bool? enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/CloudBuildV2/ConnectionIAMBinding.cs b/sdk/dotnet/CloudBuildV2/ConnectionIAMBinding.cs new file mode 100644 index 0000000000..c9c9af5f73 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/ConnectionIAMBinding.cs @@ -0,0 +1,211 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2 +{ + /// + /// ## Import + /// + /// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + /// ``` + /// + /// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + /// ``` + /// + /// IAM policy imports use the identifier of the resource in question, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + /// ``` + /// + /// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + /// + /// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + /// + [GcpResourceType("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding")] + public partial class ConnectionIAMBinding : global::Pulumi.CustomResource + { + [Output("condition")] + public Output Condition { get; private set; } = null!; + + /// + /// (Computed) The etag of the IAM policy. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + [Output("location")] + public Output Location { get; private set; } = null!; + + [Output("members")] + public Output> Members { get; private set; } = null!; + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Output("role")] + public Output Role { get; private set; } = null!; + + + /// + /// Create a ConnectionIAMBinding resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ConnectionIAMBinding(string name, ConnectionIAMBindingArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, args ?? new ConnectionIAMBindingArgs(), MakeResourceOptions(options, "")) + { + } + + private ConnectionIAMBinding(string name, Input id, ConnectionIAMBindingState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ConnectionIAMBinding resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ConnectionIAMBinding Get(string name, Input id, ConnectionIAMBindingState? state = null, CustomResourceOptions? options = null) + { + return new ConnectionIAMBinding(name, id, state, options); + } + } + + public sealed class ConnectionIAMBindingArgs : global::Pulumi.ResourceArgs + { + [Input("condition")] + public Input? Condition { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("members", required: true)] + private InputList? _members; + public InputList Members + { + get => _members ?? (_members = new InputList()); + set => _members = value; + } + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Input("role", required: true)] + public Input Role { get; set; } = null!; + + public ConnectionIAMBindingArgs() + { + } + public static new ConnectionIAMBindingArgs Empty => new ConnectionIAMBindingArgs(); + } + + public sealed class ConnectionIAMBindingState : global::Pulumi.ResourceArgs + { + [Input("condition")] + public Input? Condition { get; set; } + + /// + /// (Computed) The etag of the IAM policy. + /// + [Input("etag")] + public Input? Etag { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("members")] + private InputList? _members; + public InputList Members + { + get => _members ?? (_members = new InputList()); + set => _members = value; + } + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Input("role")] + public Input? Role { get; set; } + + public ConnectionIAMBindingState() + { + } + public static new ConnectionIAMBindingState Empty => new ConnectionIAMBindingState(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/ConnectionIAMMember.cs b/sdk/dotnet/CloudBuildV2/ConnectionIAMMember.cs new file mode 100644 index 0000000000..24ab3122e8 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/ConnectionIAMMember.cs @@ -0,0 +1,201 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2 +{ + /// + /// ## Import + /// + /// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + /// ``` + /// + /// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + /// ``` + /// + /// IAM policy imports use the identifier of the resource in question, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + /// ``` + /// + /// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + /// + /// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + /// + [GcpResourceType("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember")] + public partial class ConnectionIAMMember : global::Pulumi.CustomResource + { + [Output("condition")] + public Output Condition { get; private set; } = null!; + + /// + /// (Computed) The etag of the IAM policy. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + [Output("location")] + public Output Location { get; private set; } = null!; + + [Output("member")] + public Output Member { get; private set; } = null!; + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Output("role")] + public Output Role { get; private set; } = null!; + + + /// + /// Create a ConnectionIAMMember resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ConnectionIAMMember(string name, ConnectionIAMMemberArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, args ?? new ConnectionIAMMemberArgs(), MakeResourceOptions(options, "")) + { + } + + private ConnectionIAMMember(string name, Input id, ConnectionIAMMemberState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ConnectionIAMMember resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ConnectionIAMMember Get(string name, Input id, ConnectionIAMMemberState? state = null, CustomResourceOptions? options = null) + { + return new ConnectionIAMMember(name, id, state, options); + } + } + + public sealed class ConnectionIAMMemberArgs : global::Pulumi.ResourceArgs + { + [Input("condition")] + public Input? Condition { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("member", required: true)] + public Input Member { get; set; } = null!; + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Input("role", required: true)] + public Input Role { get; set; } = null!; + + public ConnectionIAMMemberArgs() + { + } + public static new ConnectionIAMMemberArgs Empty => new ConnectionIAMMemberArgs(); + } + + public sealed class ConnectionIAMMemberState : global::Pulumi.ResourceArgs + { + [Input("condition")] + public Input? Condition { get; set; } + + /// + /// (Computed) The etag of the IAM policy. + /// + [Input("etag")] + public Input? Etag { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + [Input("member")] + public Input? Member { get; set; } + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The role that should be applied. Only one + /// `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + /// `[projects|organizations]/{parent-name}/roles/{role-name}`. + /// + [Input("role")] + public Input? Role { get; set; } + + public ConnectionIAMMemberState() + { + } + public static new ConnectionIAMMemberState Empty => new ConnectionIAMMemberState(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/ConnectionIAMPolicy.cs b/sdk/dotnet/CloudBuildV2/ConnectionIAMPolicy.cs new file mode 100644 index 0000000000..79c9877a79 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/ConnectionIAMPolicy.cs @@ -0,0 +1,180 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2 +{ + /// + /// ## Import + /// + /// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + /// ``` + /// + /// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + /// ``` + /// + /// IAM policy imports use the identifier of the resource in question, e.g. + /// + /// ```sh + /// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + /// ``` + /// + /// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + /// + /// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + /// + [GcpResourceType("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy")] + public partial class ConnectionIAMPolicy : global::Pulumi.CustomResource + { + /// + /// (Computed) The etag of the IAM policy. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The policy data generated by + /// a `gcp.organizations.getIAMPolicy` data source. + /// + [Output("policyData")] + public Output PolicyData { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + + /// + /// Create a ConnectionIAMPolicy resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ConnectionIAMPolicy(string name, ConnectionIAMPolicyArgs args, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, args ?? new ConnectionIAMPolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private ConnectionIAMPolicy(string name, Input id, ConnectionIAMPolicyState? state = null, CustomResourceOptions? options = null) + : base("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ConnectionIAMPolicy resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ConnectionIAMPolicy Get(string name, Input id, ConnectionIAMPolicyState? state = null, CustomResourceOptions? options = null) + { + return new ConnectionIAMPolicy(name, id, state, options); + } + } + + public sealed class ConnectionIAMPolicyArgs : global::Pulumi.ResourceArgs + { + [Input("location")] + public Input? Location { get; set; } + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The policy data generated by + /// a `gcp.organizations.getIAMPolicy` data source. + /// + [Input("policyData", required: true)] + public Input PolicyData { get; set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + public ConnectionIAMPolicyArgs() + { + } + public static new ConnectionIAMPolicyArgs Empty => new ConnectionIAMPolicyArgs(); + } + + public sealed class ConnectionIAMPolicyState : global::Pulumi.ResourceArgs + { + /// + /// (Computed) The etag of the IAM policy. + /// + [Input("etag")] + public Input? Etag { get; set; } + + [Input("location")] + public Input? Location { get; set; } + + /// + /// Used to find the parent resource to bind the IAM policy to + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The policy data generated by + /// a `gcp.organizations.getIAMPolicy` data source. + /// + [Input("policyData")] + public Input? PolicyData { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + public ConnectionIAMPolicyState() + { + } + public static new ConnectionIAMPolicyState Empty => new ConnectionIAMPolicyState(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionArgs.cs b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionArgs.cs new file mode 100644 index 0000000000..9c40abf635 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Inputs +{ + + public sealed class ConnectionIAMBindingConditionArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + [Input("title", required: true)] + public Input Title { get; set; } = null!; + + public ConnectionIAMBindingConditionArgs() + { + } + public static new ConnectionIAMBindingConditionArgs Empty => new ConnectionIAMBindingConditionArgs(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionGetArgs.cs b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionGetArgs.cs new file mode 100644 index 0000000000..45935e4900 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMBindingConditionGetArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Inputs +{ + + public sealed class ConnectionIAMBindingConditionGetArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + [Input("title", required: true)] + public Input Title { get; set; } = null!; + + public ConnectionIAMBindingConditionGetArgs() + { + } + public static new ConnectionIAMBindingConditionGetArgs Empty => new ConnectionIAMBindingConditionGetArgs(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionArgs.cs b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionArgs.cs new file mode 100644 index 0000000000..1bb92bfa8b --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Inputs +{ + + public sealed class ConnectionIAMMemberConditionArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + [Input("title", required: true)] + public Input Title { get; set; } = null!; + + public ConnectionIAMMemberConditionArgs() + { + } + public static new ConnectionIAMMemberConditionArgs Empty => new ConnectionIAMMemberConditionArgs(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionGetArgs.cs b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionGetArgs.cs new file mode 100644 index 0000000000..05fa63d9ec --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Inputs/ConnectionIAMMemberConditionGetArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Inputs +{ + + public sealed class ConnectionIAMMemberConditionGetArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + [Input("title", required: true)] + public Input Title { get; set; } = null!; + + public ConnectionIAMMemberConditionGetArgs() + { + } + public static new ConnectionIAMMemberConditionGetArgs Empty => new ConnectionIAMMemberConditionGetArgs(); + } +} diff --git a/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMBindingCondition.cs b/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMBindingCondition.cs new file mode 100644 index 0000000000..3dfd7c9df8 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMBindingCondition.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Outputs +{ + + [OutputType] + public sealed class ConnectionIAMBindingCondition + { + public readonly string? Description; + public readonly string Expression; + public readonly string Title; + + [OutputConstructor] + private ConnectionIAMBindingCondition( + string? description, + + string expression, + + string title) + { + Description = description; + Expression = expression; + Title = title; + } + } +} diff --git a/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMMemberCondition.cs b/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMMemberCondition.cs new file mode 100644 index 0000000000..2ca0767509 --- /dev/null +++ b/sdk/dotnet/CloudBuildV2/Outputs/ConnectionIAMMemberCondition.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.CloudBuildV2.Outputs +{ + + [OutputType] + public sealed class ConnectionIAMMemberCondition + { + public readonly string? Description; + public readonly string Expression; + public readonly string Title; + + [OutputConstructor] + private ConnectionIAMMemberCondition( + string? description, + + string expression, + + string title) + { + Description = description; + Expression = expression; + Title = title; + } + } +} diff --git a/sdk/dotnet/Compute/ExternalVpnGateway.cs b/sdk/dotnet/Compute/ExternalVpnGateway.cs index 9acbcfb6c1..b372b2aa35 100644 --- a/sdk/dotnet/Compute/ExternalVpnGateway.cs +++ b/sdk/dotnet/Compute/ExternalVpnGateway.cs @@ -168,6 +168,12 @@ public partial class ExternalVpnGateway : global::Pulumi.CustomResource [Output("interfaces")] public Output> Interfaces { get; private set; } = null!; + /// + /// Labels for the external VPN gateway resource. + /// + [Output("labels")] + public Output?> Labels { get; private set; } = null!; + /// /// Name of the resource. Provided by the client when the resource is /// created. The name must be 1-63 characters long, and comply with @@ -265,6 +271,18 @@ public InputList Interfaces set => _interfaces = value; } + [Input("labels")] + private InputMap? _labels; + + /// + /// Labels for the external VPN gateway resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + /// /// Name of the resource. Provided by the client when the resource is /// created. The name must be 1-63 characters long, and comply with @@ -318,6 +336,18 @@ public InputList Interfaces set => _interfaces = value; } + [Input("labels")] + private InputMap? _labels; + + /// + /// Labels for the external VPN gateway resource. + /// + public InputMap Labels + { + get => _labels ?? (_labels = new InputMap()); + set => _labels = value; + } + /// /// Name of the resource. Provided by the client when the resource is /// created. The name must be 1-63 characters long, and comply with diff --git a/sdk/dotnet/Compute/GetInstanceGroupManager.cs b/sdk/dotnet/Compute/GetInstanceGroupManager.cs index 5e3570e469..a822d41748 100644 --- a/sdk/dotnet/Compute/GetInstanceGroupManager.cs +++ b/sdk/dotnet/Compute/GetInstanceGroupManager.cs @@ -161,6 +161,7 @@ public sealed class GetInstanceGroupManagerResult /// public readonly string Id; public readonly string InstanceGroup; + public readonly ImmutableArray InstanceLifecyclePolicies; public readonly string ListManagedInstancesResults; public readonly string? Name; public readonly ImmutableArray NamedPorts; @@ -195,6 +196,8 @@ private GetInstanceGroupManagerResult( string instanceGroup, + ImmutableArray instanceLifecyclePolicies, + string listManagedInstancesResults, string? name, @@ -236,6 +239,7 @@ private GetInstanceGroupManagerResult( Fingerprint = fingerprint; Id = id; InstanceGroup = instanceGroup; + InstanceLifecyclePolicies = instanceLifecyclePolicies; ListManagedInstancesResults = listManagedInstancesResults; Name = name; NamedPorts = namedPorts; diff --git a/sdk/dotnet/Compute/GetInstanceTemplate.cs b/sdk/dotnet/Compute/GetInstanceTemplate.cs index 7e992c3c81..7552f7789f 100644 --- a/sdk/dotnet/Compute/GetInstanceTemplate.cs +++ b/sdk/dotnet/Compute/GetInstanceTemplate.cs @@ -262,6 +262,10 @@ public sealed class GetInstanceTemplateResult public readonly string Region; public readonly ImmutableArray ReservationAffinities; /// + /// (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + /// + public readonly ImmutableArray ResourcePolicies; + /// /// The scheduling strategy to use. More details about /// this configuration option are detailed below. /// @@ -338,6 +342,8 @@ private GetInstanceTemplateResult( ImmutableArray reservationAffinities, + ImmutableArray resourcePolicies, + ImmutableArray schedulings, string selfLink, @@ -374,6 +380,7 @@ private GetInstanceTemplateResult( Project = project; Region = region; ReservationAffinities = reservationAffinities; + ResourcePolicies = resourcePolicies; Schedulings = schedulings; SelfLink = selfLink; ServiceAccounts = serviceAccounts; diff --git a/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.cs new file mode 100644 index 0000000000..e9f7f49db4 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class InstanceGroupManagerInstanceLifecyclePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + /// + [Input("forceUpdateOnRepair")] + public Input? ForceUpdateOnRepair { get; set; } + + public InstanceGroupManagerInstanceLifecyclePolicyArgs() + { + } + public static new InstanceGroupManagerInstanceLifecyclePolicyArgs Empty => new InstanceGroupManagerInstanceLifecyclePolicyArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs new file mode 100644 index 0000000000..04b017925e --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/InstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class InstanceGroupManagerInstanceLifecyclePolicyGetArgs : global::Pulumi.ResourceArgs + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + /// + [Input("forceUpdateOnRepair")] + public Input? ForceUpdateOnRepair { get; set; } + + public InstanceGroupManagerInstanceLifecyclePolicyGetArgs() + { + } + public static new InstanceGroupManagerInstanceLifecyclePolicyGetArgs Empty => new InstanceGroupManagerInstanceLifecyclePolicyGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs new file mode 100644 index 0000000000..0553c4121b --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + /// - - - + /// + [Input("forceUpdateOnRepair")] + public Input? ForceUpdateOnRepair { get; set; } + + public RegionInstanceGroupManagerInstanceLifecyclePolicyArgs() + { + } + public static new RegionInstanceGroupManagerInstanceLifecyclePolicyArgs Empty => new RegionInstanceGroupManagerInstanceLifecyclePolicyArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs new file mode 100644 index 0000000000..d4232f6c6b --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs : global::Pulumi.ResourceArgs + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + /// - - - + /// + [Input("forceUpdateOnRepair")] + public Input? ForceUpdateOnRepair { get; set; } + + public RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs() + { + } + public static new RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs Empty => new RegionInstanceGroupManagerInstanceLifecyclePolicyGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/InstanceGroupManager.cs b/sdk/dotnet/Compute/InstanceGroupManager.cs index d8bb9b3a1b..bbe6aa3fec 100644 --- a/sdk/dotnet/Compute/InstanceGroupManager.cs +++ b/sdk/dotnet/Compute/InstanceGroupManager.cs @@ -191,6 +191,12 @@ public partial class InstanceGroupManager : global::Pulumi.CustomResource [Output("instanceGroup")] public Output InstanceGroup { get; private set; } = null!; + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Output("instanceLifecyclePolicy")] + public Output InstanceLifecyclePolicy { get; private set; } = null!; + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -391,6 +397,12 @@ public sealed class InstanceGroupManagerArgs : global::Pulumi.ResourceArgs [Input("description")] public Input? Description { get; set; } + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Input("instanceLifecyclePolicy")] + public Input? InstanceLifecyclePolicy { get; set; } + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -586,6 +598,12 @@ public sealed class InstanceGroupManagerState : global::Pulumi.ResourceArgs [Input("instanceGroup")] public Input? InstanceGroup { get; set; } + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Input("instanceLifecyclePolicy")] + public Input? InstanceLifecyclePolicy { get; set; } + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/dotnet/Compute/InstanceTemplate.cs b/sdk/dotnet/Compute/InstanceTemplate.cs index bb63aabf2a..e7f588c177 100644 --- a/sdk/dotnet/Compute/InstanceTemplate.cs +++ b/sdk/dotnet/Compute/InstanceTemplate.cs @@ -183,6 +183,12 @@ public partial class InstanceTemplate : global::Pulumi.CustomResource [Output("reservationAffinity")] public Output ReservationAffinity { get; private set; } = null!; + /// + /// - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + /// + [Output("resourcePolicies")] + public Output ResourcePolicies { get; private set; } = null!; + /// /// The scheduling strategy to use. More details about /// this configuration option are detailed below. @@ -443,6 +449,12 @@ public InputList NetworkInterfaces [Input("reservationAffinity")] public Input? ReservationAffinity { get; set; } + /// + /// - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + /// + [Input("resourcePolicies")] + public Input? ResourcePolicies { get; set; } + /// /// The scheduling strategy to use. More details about /// this configuration option are detailed below. @@ -665,6 +677,12 @@ public InputList NetworkInterfac [Input("reservationAffinity")] public Input? ReservationAffinity { get; set; } + /// + /// - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + /// + [Input("resourcePolicies")] + public Input? ResourcePolicies { get; set; } + /// /// The scheduling strategy to use. More details about /// this configuration option are detailed below. diff --git a/sdk/dotnet/Compute/Network.cs b/sdk/dotnet/Compute/Network.cs index ae20e2ca05..117be29dda 100644 --- a/sdk/dotnet/Compute/Network.cs +++ b/sdk/dotnet/Compute/Network.cs @@ -119,8 +119,11 @@ public partial class Network : global::Pulumi.CustomResource public Output InternalIpv6Range { get; private set; } = null!; /// - /// Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - /// and the maximum value is 1500 bytes. + /// Maximum Transmission Unit in bytes. The default value is 1460 bytes. + /// The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + /// Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + /// with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + /// with varying MTUs. /// [Output("mtu")] public Output Mtu { get; private set; } = null!; @@ -249,8 +252,11 @@ public sealed class NetworkArgs : global::Pulumi.ResourceArgs public Input? InternalIpv6Range { get; set; } /// - /// Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - /// and the maximum value is 1500 bytes. + /// Maximum Transmission Unit in bytes. The default value is 1460 bytes. + /// The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + /// Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + /// with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + /// with varying MTUs. /// [Input("mtu")] public Input? Mtu { get; set; } @@ -342,8 +348,11 @@ public sealed class NetworkState : global::Pulumi.ResourceArgs public Input? InternalIpv6Range { get; set; } /// - /// Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - /// and the maximum value is 1500 bytes. + /// Maximum Transmission Unit in bytes. The default value is 1460 bytes. + /// The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + /// Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + /// with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + /// with varying MTUs. /// [Input("mtu")] public Input? Mtu { get; set; } diff --git a/sdk/dotnet/Compute/Outputs/GetInstanceGroupManagerInstanceLifecyclePolicyResult.cs b/sdk/dotnet/Compute/Outputs/GetInstanceGroupManagerInstanceLifecyclePolicyResult.cs new file mode 100644 index 0000000000..7c5f6b961b --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/GetInstanceGroupManagerInstanceLifecyclePolicyResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class GetInstanceGroupManagerInstanceLifecyclePolicyResult + { + public readonly string ForceUpdateOnRepair; + + [OutputConstructor] + private GetInstanceGroupManagerInstanceLifecyclePolicyResult(string forceUpdateOnRepair) + { + ForceUpdateOnRepair = forceUpdateOnRepair; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/InstanceGroupManagerInstanceLifecyclePolicy.cs b/sdk/dotnet/Compute/Outputs/InstanceGroupManagerInstanceLifecyclePolicy.cs new file mode 100644 index 0000000000..ec210dc396 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/InstanceGroupManagerInstanceLifecyclePolicy.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class InstanceGroupManagerInstanceLifecyclePolicy + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + /// + public readonly string? ForceUpdateOnRepair; + + [OutputConstructor] + private InstanceGroupManagerInstanceLifecyclePolicy(string? forceUpdateOnRepair) + { + ForceUpdateOnRepair = forceUpdateOnRepair; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs new file mode 100644 index 0000000000..92226791be --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RegionInstanceGroupManagerInstanceLifecyclePolicy + { + /// + /// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + /// - - - + /// + public readonly string? ForceUpdateOnRepair; + + [OutputConstructor] + private RegionInstanceGroupManagerInstanceLifecyclePolicy(string? forceUpdateOnRepair) + { + ForceUpdateOnRepair = forceUpdateOnRepair; + } + } +} diff --git a/sdk/dotnet/Compute/RegionInstanceGroupManager.cs b/sdk/dotnet/Compute/RegionInstanceGroupManager.cs index ad1f2a7864..55091c9bbd 100644 --- a/sdk/dotnet/Compute/RegionInstanceGroupManager.cs +++ b/sdk/dotnet/Compute/RegionInstanceGroupManager.cs @@ -197,6 +197,12 @@ public partial class RegionInstanceGroupManager : global::Pulumi.CustomResource [Output("instanceGroup")] public Output InstanceGroup { get; private set; } = null!; + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Output("instanceLifecyclePolicy")] + public Output InstanceLifecyclePolicy { get; private set; } = null!; + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -412,6 +418,12 @@ public InputList DistributionPolicyZones set => _distributionPolicyZones = value; } + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Input("instanceLifecyclePolicy")] + public Input? InstanceLifecyclePolicy { get; set; } + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -625,6 +637,12 @@ public InputList DistributionPolicyZones [Input("instanceGroup")] public Input? InstanceGroup { get; set; } + /// + /// The instance lifecycle policy for this managed instance group. + /// + [Input("instanceLifecyclePolicy")] + public Input? InstanceLifecyclePolicy { get; set; } + /// /// Pagination behavior of the `listManagedInstances` API /// method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/dotnet/Compute/RegionTargetTcpProxy.cs b/sdk/dotnet/Compute/RegionTargetTcpProxy.cs index 92a6a3d502..72b6eb3c2f 100644 --- a/sdk/dotnet/Compute/RegionTargetTcpProxy.cs +++ b/sdk/dotnet/Compute/RegionTargetTcpProxy.cs @@ -10,6 +10,16 @@ namespace Pulumi.Gcp.Compute { /// + /// Represents a RegionTargetTcpProxy resource, which is used by one or more + /// forwarding rules to route incoming TCP requests to a regional TCP proxy load + /// balancer. + /// + /// To get more information about RegionTargetTcpProxy, see: + /// + /// * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) + /// /// ## Example Usage /// /// ## Import diff --git a/sdk/dotnet/DataFusion/Instance.cs b/sdk/dotnet/DataFusion/Instance.cs index 2bc509a5c2..9691fd86e9 100644 --- a/sdk/dotnet/DataFusion/Instance.cs +++ b/sdk/dotnet/DataFusion/Instance.cs @@ -30,10 +30,6 @@ namespace Pulumi.Gcp.DataFusion /// { /// var basicInstance = new Gcp.DataFusion.Instance("basicInstance", new() /// { - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "BASIC", /// }); @@ -86,10 +82,6 @@ namespace Pulumi.Gcp.DataFusion /// return $"{address}/{prefixLength}"; /// }), /// }, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// }); /// /// }); @@ -155,10 +147,6 @@ namespace Pulumi.Gcp.DataFusion /// var enterpriseInstance = new Gcp.DataFusion.Instance("enterpriseInstance", new() /// { /// EnableRbac = true, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "ENTERPRISE", /// }); diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllArgs.cs index 140ceecaa9..02fda784dd 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllArgs.cs @@ -19,6 +19,20 @@ public sealed class StreamBackfillAllArgs : global::Pulumi.ResourceArgs [Input("mysqlExcludedObjects")] public Input? MysqlExcludedObjects { get; set; } + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + [Input("oracleExcludedObjects")] + public Input? OracleExcludedObjects { get; set; } + + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + [Input("postgresqlExcludedObjects")] + public Input? PostgresqlExcludedObjects { get; set; } + public StreamBackfillAllArgs() { } diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllGetArgs.cs index fc72406861..9e103714e0 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllGetArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllGetArgs.cs @@ -19,6 +19,20 @@ public sealed class StreamBackfillAllGetArgs : global::Pulumi.ResourceArgs [Input("mysqlExcludedObjects")] public Input? MysqlExcludedObjects { get; set; } + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + [Input("oracleExcludedObjects")] + public Input? OracleExcludedObjects { get; set; } + + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + [Input("postgresqlExcludedObjects")] + public Input? PostgresqlExcludedObjects { get; set; } + public StreamBackfillAllGetArgs() { } diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsArgs.cs new file mode 100644 index 0000000000..e451dbc77a --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamBackfillAllOracleExcludedObjectsArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsArgs Empty => new StreamBackfillAllOracleExcludedObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsGetArgs.cs new file mode 100644 index 0000000000..b9490ed9a1 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamBackfillAllOracleExcludedObjectsGetArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsGetArgs Empty => new StreamBackfillAllOracleExcludedObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.cs new file mode 100644 index 0000000000..c570d7441c --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs.cs new file mode 100644 index 0000000000..dcad8ddf3c --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.cs new file mode 100644 index 0000000000..4e7424deff --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs.cs new file mode 100644 index 0000000000..8d0b8959c7 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.cs new file mode 100644 index 0000000000..952c54ee05 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs new file mode 100644 index 0000000000..f43e0d04d1 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs() + { + } + public static new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs Empty => new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.cs new file mode 100644 index 0000000000..bf72d12c87 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamBackfillAllPostgresqlExcludedObjectsArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsGetArgs.cs new file mode 100644 index 0000000000..6ca98cbb65 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamBackfillAllPostgresqlExcludedObjectsGetArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsGetArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.cs new file mode 100644 index 0000000000..7011d47104 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs.cs new file mode 100644 index 0000000000..c83979a4a2 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.cs new file mode 100644 index 0000000000..c44bf5151d --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs new file mode 100644 index 0000000000..851f187814 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs new file mode 100644 index 0000000000..8a31a89a41 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs new file mode 100644 index 0000000000..7d47015ff3 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs() + { + } + public static new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs Empty => new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigArgs.cs index 0d51a3bc37..99dddd1687 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigArgs.cs @@ -16,8 +16,22 @@ public sealed class StreamSourceConfigArgs : global::Pulumi.ResourceArgs /// MySQL data source configuration. /// Structure is documented below. /// - [Input("mysqlSourceConfig", required: true)] - public Input MysqlSourceConfig { get; set; } = null!; + [Input("mysqlSourceConfig")] + public Input? MysqlSourceConfig { get; set; } + + /// + /// MySQL data source configuration. + /// Structure is documented below. + /// + [Input("oracleSourceConfig")] + public Input? OracleSourceConfig { get; set; } + + /// + /// PostgreSQL data source configuration. + /// Structure is documented below. + /// + [Input("postgresqlSourceConfig")] + public Input? PostgresqlSourceConfig { get; set; } /// /// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigGetArgs.cs index 770107b5c2..e2c2aa3fc3 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigGetArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigGetArgs.cs @@ -16,8 +16,22 @@ public sealed class StreamSourceConfigGetArgs : global::Pulumi.ResourceArgs /// MySQL data source configuration. /// Structure is documented below. /// - [Input("mysqlSourceConfig", required: true)] - public Input MysqlSourceConfig { get; set; } = null!; + [Input("mysqlSourceConfig")] + public Input? MysqlSourceConfig { get; set; } + + /// + /// MySQL data source configuration. + /// Structure is documented below. + /// + [Input("oracleSourceConfig")] + public Input? OracleSourceConfig { get; set; } + + /// + /// PostgreSQL data source configuration. + /// Structure is documented below. + /// + [Input("postgresqlSourceConfig")] + public Input? PostgresqlSourceConfig { get; set; } /// /// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigArgs.cs new file mode 100644 index 0000000000..73477f47a6 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigArgs.cs @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration to drop large object values. + /// + [Input("dropLargeObjects")] + public Input? DropLargeObjects { get; set; } + + /// + /// Oracle objects to exclude from the stream. + /// Structure is documented below. + /// + [Input("excludeObjects")] + public Input? ExcludeObjects { get; set; } + + /// + /// Oracle objects to retrieve from the source. + /// Structure is documented below. + /// + [Input("includeObjects")] + public Input? IncludeObjects { get; set; } + + /// + /// Maximum number of concurrent backfill tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentBackfillTasks")] + public Input? MaxConcurrentBackfillTasks { get; set; } + + /// + /// Maximum number of concurrent CDC tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentCdcTasks")] + public Input? MaxConcurrentCdcTasks { get; set; } + + /// + /// Configuration to drop large object values. + /// + [Input("streamLargeObjects")] + public Input? StreamLargeObjects { get; set; } + + public StreamSourceConfigOracleSourceConfigArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigArgs Empty => new StreamSourceConfigOracleSourceConfigArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.cs new file mode 100644 index 0000000000..b948bc2a2f --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs : global::Pulumi.ResourceArgs + { + public StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs Empty => new StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs.cs new file mode 100644 index 0000000000..5f8a3f8814 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs : global::Pulumi.ResourceArgs + { + public StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs Empty => new StreamSourceConfigOracleSourceConfigDropLargeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.cs new file mode 100644 index 0000000000..6ce799e859 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs.cs new file mode 100644 index 0000000000..23b00ccb39 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.cs new file mode 100644 index 0000000000..fcd93962ec --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs.cs new file mode 100644 index 0000000000..5aa0f7cd77 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.cs new file mode 100644 index 0000000000..ad4f91c131 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs.cs new file mode 100644 index 0000000000..7145fccf7b --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs new file mode 100644 index 0000000000..82e143d939 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs new file mode 100644 index 0000000000..d082befde5 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs Empty => new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigGetArgs.cs new file mode 100644 index 0000000000..350a9449ff --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigGetArgs.cs @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration to drop large object values. + /// + [Input("dropLargeObjects")] + public Input? DropLargeObjects { get; set; } + + /// + /// Oracle objects to exclude from the stream. + /// Structure is documented below. + /// + [Input("excludeObjects")] + public Input? ExcludeObjects { get; set; } + + /// + /// Oracle objects to retrieve from the source. + /// Structure is documented below. + /// + [Input("includeObjects")] + public Input? IncludeObjects { get; set; } + + /// + /// Maximum number of concurrent backfill tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentBackfillTasks")] + public Input? MaxConcurrentBackfillTasks { get; set; } + + /// + /// Maximum number of concurrent CDC tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentCdcTasks")] + public Input? MaxConcurrentCdcTasks { get; set; } + + /// + /// Configuration to drop large object values. + /// + [Input("streamLargeObjects")] + public Input? StreamLargeObjects { get; set; } + + public StreamSourceConfigOracleSourceConfigGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigGetArgs Empty => new StreamSourceConfigOracleSourceConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.cs new file mode 100644 index 0000000000..64235941ef --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs.cs new file mode 100644 index 0000000000..c1d9f1480c --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleSchemas", required: true)] + private InputList? _oracleSchemas; + + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public InputList OracleSchemas + { + get => _oracleSchemas ?? (_oracleSchemas = new InputList()); + set => _oracleSchemas = value; + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.cs new file mode 100644 index 0000000000..6a0d719db4 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs.cs new file mode 100644 index 0000000000..c51368a926 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleTables")] + private InputList? _oracleTables; + + /// + /// Tables in the database. + /// Structure is documented below. + /// + public InputList OracleTables + { + get => _oracleTables ?? (_oracleTables = new InputList()); + set => _oracleTables = value; + } + + /// + /// Schema name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.cs new file mode 100644 index 0000000000..293ed41967 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs.cs new file mode 100644 index 0000000000..c7380b5b11 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("oracleColumns")] + private InputList? _oracleColumns; + + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList OracleColumns + { + get => _oracleColumns ?? (_oracleColumns = new InputList()); + set => _oracleColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs new file mode 100644 index 0000000000..0146164f1e --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs new file mode 100644 index 0000000000..4337837b2f --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs.cs @@ -0,0 +1,75 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column encoding. + /// + [Input("encoding")] + public Input? Encoding { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs Empty => new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.cs new file mode 100644 index 0000000000..5de1c607a2 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs : global::Pulumi.ResourceArgs + { + public StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs Empty => new StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs.cs new file mode 100644 index 0000000000..39a232c4c7 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs : global::Pulumi.ResourceArgs + { + public StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs() + { + } + public static new StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs Empty => new StreamSourceConfigOracleSourceConfigStreamLargeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigArgs.cs new file mode 100644 index 0000000000..91436d0257 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// PostgreSQL objects to exclude from the stream. + /// Structure is documented below. + /// + [Input("excludeObjects")] + public Input? ExcludeObjects { get; set; } + + /// + /// PostgreSQL objects to retrieve from the source. + /// Structure is documented below. + /// + [Input("includeObjects")] + public Input? IncludeObjects { get; set; } + + /// + /// Maximum number of concurrent backfill tasks. The number should be non + /// negative. If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentBackfillTasks")] + public Input? MaxConcurrentBackfillTasks { get; set; } + + /// + /// The name of the publication that includes the set of all tables + /// that are defined in the stream's include_objects. + /// + [Input("publication", required: true)] + public Input Publication { get; set; } = null!; + + /// + /// The name of the logical replication slot that's configured with + /// the pgoutput plugin. + /// + [Input("replicationSlot", required: true)] + public Input ReplicationSlot { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigArgs Empty => new StreamSourceConfigPostgresqlSourceConfigArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.cs new file mode 100644 index 0000000000..7f6d96b50a --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs.cs new file mode 100644 index 0000000000..6b1af6f8c1 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.cs new file mode 100644 index 0000000000..b6b1a5acd4 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs.cs new file mode 100644 index 0000000000..b72ae93e2f --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs new file mode 100644 index 0000000000..7ea4e3ad44 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs new file mode 100644 index 0000000000..d7e2e677c6 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs new file mode 100644 index 0000000000..bc80ff4f0c --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs new file mode 100644 index 0000000000..9c63c768c8 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigGetArgs.cs new file mode 100644 index 0000000000..9c9637a543 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// PostgreSQL objects to exclude from the stream. + /// Structure is documented below. + /// + [Input("excludeObjects")] + public Input? ExcludeObjects { get; set; } + + /// + /// PostgreSQL objects to retrieve from the source. + /// Structure is documented below. + /// + [Input("includeObjects")] + public Input? IncludeObjects { get; set; } + + /// + /// Maximum number of concurrent backfill tasks. The number should be non + /// negative. If not set (or set to 0), the system's default value will be used. + /// + [Input("maxConcurrentBackfillTasks")] + public Input? MaxConcurrentBackfillTasks { get; set; } + + /// + /// The name of the publication that includes the set of all tables + /// that are defined in the stream's include_objects. + /// + [Input("publication", required: true)] + public Input Publication { get; set; } = null!; + + /// + /// The name of the logical replication slot that's configured with + /// the pgoutput plugin. + /// + [Input("replicationSlot", required: true)] + public Input ReplicationSlot { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.cs new file mode 100644 index 0000000000..d469f8efbb --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs.cs new file mode 100644 index 0000000000..3b4e7c9ce8 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlSchemas", required: true)] + private InputList? _postgresqlSchemas; + + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public InputList PostgresqlSchemas + { + get => _postgresqlSchemas ?? (_postgresqlSchemas = new InputList()); + set => _postgresqlSchemas = value; + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.cs new file mode 100644 index 0000000000..c2e82bf923 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs.cs new file mode 100644 index 0000000000..8a0a27db5b --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlTables")] + private InputList? _postgresqlTables; + + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public InputList PostgresqlTables + { + get => _postgresqlTables ?? (_postgresqlTables = new InputList()); + set => _postgresqlTables = value; + } + + /// + /// Database name. + /// + [Input("schema", required: true)] + public Input Schema { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs new file mode 100644 index 0000000000..08b3dd99fc --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs new file mode 100644 index 0000000000..6e78928cd8 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs : global::Pulumi.ResourceArgs + { + [Input("postgresqlColumns")] + private InputList? _postgresqlColumns; + + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public InputList PostgresqlColumns + { + get => _postgresqlColumns ?? (_postgresqlColumns = new InputList()); + set => _postgresqlColumns = value; + } + + /// + /// Table name. + /// + [Input("table", required: true)] + public Input Table { get; set; } = null!; + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs new file mode 100644 index 0000000000..75c0626401 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs new file mode 100644 index 0000000000..1e46d5cea7 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Column name. + /// + [Input("column")] + public Input? Column { get; set; } + + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + [Input("dataType")] + public Input? DataType { get; set; } + + /// + /// Column length. + /// + [Input("length")] + public Input? Length { get; set; } + + /// + /// Whether or not the column can accept a null value. + /// + [Input("nullable")] + public Input? Nullable { get; set; } + + /// + /// The ordinal position of the column in the table. + /// + [Input("ordinalPosition")] + public Input? OrdinalPosition { get; set; } + + /// + /// Column precision. + /// + [Input("precision")] + public Input? Precision { get; set; } + + /// + /// Whether or not the column represents a primary key. + /// + [Input("primaryKey")] + public Input? PrimaryKey { get; set; } + + /// + /// Column scale. + /// + [Input("scale")] + public Input? Scale { get; set; } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs() + { + } + public static new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs Empty => new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAll.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAll.cs index 626160910d..e87ac18792 100644 --- a/sdk/dotnet/Datastream/Outputs/StreamBackfillAll.cs +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAll.cs @@ -18,11 +18,28 @@ public sealed class StreamBackfillAll /// Structure is documented below. /// public readonly Outputs.StreamBackfillAllMysqlExcludedObjects? MysqlExcludedObjects; + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + public readonly Outputs.StreamBackfillAllOracleExcludedObjects? OracleExcludedObjects; + /// + /// PostgreSQL data source objects to avoid backfilling. + /// Structure is documented below. + /// + public readonly Outputs.StreamBackfillAllPostgresqlExcludedObjects? PostgresqlExcludedObjects; [OutputConstructor] - private StreamBackfillAll(Outputs.StreamBackfillAllMysqlExcludedObjects? mysqlExcludedObjects) + private StreamBackfillAll( + Outputs.StreamBackfillAllMysqlExcludedObjects? mysqlExcludedObjects, + + Outputs.StreamBackfillAllOracleExcludedObjects? oracleExcludedObjects, + + Outputs.StreamBackfillAllPostgresqlExcludedObjects? postgresqlExcludedObjects) { MysqlExcludedObjects = mysqlExcludedObjects; + OracleExcludedObjects = oracleExcludedObjects; + PostgresqlExcludedObjects = postgresqlExcludedObjects; } } } diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjects.cs new file mode 100644 index 0000000000..00673ca54e --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllOracleExcludedObjects + { + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public readonly ImmutableArray OracleSchemas; + + [OutputConstructor] + private StreamBackfillAllOracleExcludedObjects(ImmutableArray oracleSchemas) + { + OracleSchemas = oracleSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.cs new file mode 100644 index 0000000000..45ac9903b4 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchema + { + /// + /// Tables in the database. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleTables; + /// + /// Schema name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamBackfillAllOracleExcludedObjectsOracleSchema( + ImmutableArray oracleTables, + + string schema) + { + OracleTables = oracleTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.cs new file mode 100644 index 0000000000..993dd17f8a --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable + { + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable( + ImmutableArray oracleColumns, + + string table) + { + OracleColumns = oracleColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.cs new file mode 100644 index 0000000000..a6fabcb27d --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.cs @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + public readonly string? DataType; + /// + /// Column encoding. + /// + public readonly string? Encoding; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn( + string? column, + + string? dataType, + + string? encoding, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Encoding = encoding; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjects.cs new file mode 100644 index 0000000000..9c4d6cfa57 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllPostgresqlExcludedObjects + { + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlSchemas; + + [OutputConstructor] + private StreamBackfillAllPostgresqlExcludedObjects(ImmutableArray postgresqlSchemas) + { + PostgresqlSchemas = postgresqlSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.cs new file mode 100644 index 0000000000..4bbdb78492 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema + { + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlTables; + /// + /// Database name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema( + ImmutableArray postgresqlTables, + + string schema) + { + PostgresqlTables = postgresqlTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.cs new file mode 100644 index 0000000000..1042735906 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable + { + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable( + ImmutableArray postgresqlColumns, + + string table) + { + PostgresqlColumns = postgresqlColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs new file mode 100644 index 0000000000..a18eebb228 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + public readonly string? DataType; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn( + string? column, + + string? dataType, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfig.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfig.cs index 01d83283da..73455234d9 100644 --- a/sdk/dotnet/Datastream/Outputs/StreamSourceConfig.cs +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfig.cs @@ -17,7 +17,17 @@ public sealed class StreamSourceConfig /// MySQL data source configuration. /// Structure is documented below. /// - public readonly Outputs.StreamSourceConfigMysqlSourceConfig MysqlSourceConfig; + public readonly Outputs.StreamSourceConfigMysqlSourceConfig? MysqlSourceConfig; + /// + /// MySQL data source configuration. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigOracleSourceConfig? OracleSourceConfig; + /// + /// PostgreSQL data source configuration. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigPostgresqlSourceConfig? PostgresqlSourceConfig; /// /// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} /// @@ -25,11 +35,17 @@ public sealed class StreamSourceConfig [OutputConstructor] private StreamSourceConfig( - Outputs.StreamSourceConfigMysqlSourceConfig mysqlSourceConfig, + Outputs.StreamSourceConfigMysqlSourceConfig? mysqlSourceConfig, + + Outputs.StreamSourceConfigOracleSourceConfig? oracleSourceConfig, + + Outputs.StreamSourceConfigPostgresqlSourceConfig? postgresqlSourceConfig, string sourceConnectionProfile) { MysqlSourceConfig = mysqlSourceConfig; + OracleSourceConfig = oracleSourceConfig; + PostgresqlSourceConfig = postgresqlSourceConfig; SourceConnectionProfile = sourceConnectionProfile; } } diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfig.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfig.cs new file mode 100644 index 0000000000..115562b8db --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfig.cs @@ -0,0 +1,67 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfig + { + /// + /// Configuration to drop large object values. + /// + public readonly Outputs.StreamSourceConfigOracleSourceConfigDropLargeObjects? DropLargeObjects; + /// + /// Oracle objects to exclude from the stream. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigOracleSourceConfigExcludeObjects? ExcludeObjects; + /// + /// Oracle objects to retrieve from the source. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigOracleSourceConfigIncludeObjects? IncludeObjects; + /// + /// Maximum number of concurrent backfill tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + public readonly int? MaxConcurrentBackfillTasks; + /// + /// Maximum number of concurrent CDC tasks. The number should be non negative. + /// If not set (or set to 0), the system's default value will be used. + /// + public readonly int? MaxConcurrentCdcTasks; + /// + /// Configuration to drop large object values. + /// + public readonly Outputs.StreamSourceConfigOracleSourceConfigStreamLargeObjects? StreamLargeObjects; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfig( + Outputs.StreamSourceConfigOracleSourceConfigDropLargeObjects? dropLargeObjects, + + Outputs.StreamSourceConfigOracleSourceConfigExcludeObjects? excludeObjects, + + Outputs.StreamSourceConfigOracleSourceConfigIncludeObjects? includeObjects, + + int? maxConcurrentBackfillTasks, + + int? maxConcurrentCdcTasks, + + Outputs.StreamSourceConfigOracleSourceConfigStreamLargeObjects? streamLargeObjects) + { + DropLargeObjects = dropLargeObjects; + ExcludeObjects = excludeObjects; + IncludeObjects = includeObjects; + MaxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + MaxConcurrentCdcTasks = maxConcurrentCdcTasks; + StreamLargeObjects = streamLargeObjects; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.cs new file mode 100644 index 0000000000..81437c4039 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigDropLargeObjects + { + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigDropLargeObjects() + { + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.cs new file mode 100644 index 0000000000..1a1db59218 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjects + { + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public readonly ImmutableArray OracleSchemas; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigExcludeObjects(ImmutableArray oracleSchemas) + { + OracleSchemas = oracleSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.cs new file mode 100644 index 0000000000..4cc658d8af --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema + { + /// + /// Tables in the database. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleTables; + /// + /// Schema name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema( + ImmutableArray oracleTables, + + string schema) + { + OracleTables = oracleTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.cs new file mode 100644 index 0000000000..bcb2bfeaa0 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable + { + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable( + ImmutableArray oracleColumns, + + string table) + { + OracleColumns = oracleColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.cs new file mode 100644 index 0000000000..0a9e9b7ca7 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.cs @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + public readonly string? DataType; + /// + /// Column encoding. + /// + public readonly string? Encoding; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn( + string? column, + + string? dataType, + + string? encoding, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Encoding = encoding; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.cs new file mode 100644 index 0000000000..dbf6cfde09 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjects + { + /// + /// Oracle schemas/databases in the database server + /// Structure is documented below. + /// + public readonly ImmutableArray OracleSchemas; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigIncludeObjects(ImmutableArray oracleSchemas) + { + OracleSchemas = oracleSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.cs new file mode 100644 index 0000000000..05d88a6c3a --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema + { + /// + /// Tables in the database. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleTables; + /// + /// Schema name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema( + ImmutableArray oracleTables, + + string schema) + { + OracleTables = oracleTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.cs new file mode 100644 index 0000000000..9e92733a6f --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable + { + /// + /// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray OracleColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable( + ImmutableArray oracleColumns, + + string table) + { + OracleColumns = oracleColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.cs new file mode 100644 index 0000000000..cdba03f3be --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.cs @@ -0,0 +1,85 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The Oracle data type. Full data types list can be found here: + /// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + /// + public readonly string? DataType; + /// + /// Column encoding. + /// + public readonly string? Encoding; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn( + string? column, + + string? dataType, + + string? encoding, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Encoding = encoding; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.cs new file mode 100644 index 0000000000..9940eefbf7 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigOracleSourceConfigStreamLargeObjects + { + [OutputConstructor] + private StreamSourceConfigOracleSourceConfigStreamLargeObjects() + { + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfig.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfig.cs new file mode 100644 index 0000000000..b4e1b44e00 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfig.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfig + { + /// + /// PostgreSQL objects to exclude from the stream. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjects? ExcludeObjects; + /// + /// PostgreSQL objects to retrieve from the source. + /// Structure is documented below. + /// + public readonly Outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjects? IncludeObjects; + /// + /// Maximum number of concurrent backfill tasks. The number should be non + /// negative. If not set (or set to 0), the system's default value will be used. + /// + public readonly int? MaxConcurrentBackfillTasks; + /// + /// The name of the publication that includes the set of all tables + /// that are defined in the stream's include_objects. + /// + public readonly string Publication; + /// + /// The name of the logical replication slot that's configured with + /// the pgoutput plugin. + /// + public readonly string ReplicationSlot; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfig( + Outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjects? excludeObjects, + + Outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjects? includeObjects, + + int? maxConcurrentBackfillTasks, + + string publication, + + string replicationSlot) + { + ExcludeObjects = excludeObjects; + IncludeObjects = includeObjects; + MaxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + Publication = publication; + ReplicationSlot = replicationSlot; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.cs new file mode 100644 index 0000000000..841c303d29 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjects + { + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlSchemas; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigExcludeObjects(ImmutableArray postgresqlSchemas) + { + PostgresqlSchemas = postgresqlSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.cs new file mode 100644 index 0000000000..3a76e39805 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema + { + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlTables; + /// + /// Database name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema( + ImmutableArray postgresqlTables, + + string schema) + { + PostgresqlTables = postgresqlTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.cs new file mode 100644 index 0000000000..46156c13b3 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable + { + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable( + ImmutableArray postgresqlColumns, + + string table) + { + PostgresqlColumns = postgresqlColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs new file mode 100644 index 0000000000..204ad60e47 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + public readonly string? DataType; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn( + string? column, + + string? dataType, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.cs new file mode 100644 index 0000000000..d553c11509 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjects + { + /// + /// PostgreSQL schemas on the server + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlSchemas; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigIncludeObjects(ImmutableArray postgresqlSchemas) + { + PostgresqlSchemas = postgresqlSchemas; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.cs new file mode 100644 index 0000000000..d4d340a1f2 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema + { + /// + /// Tables in the schema. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlTables; + /// + /// Database name. + /// + public readonly string Schema; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema( + ImmutableArray postgresqlTables, + + string schema) + { + PostgresqlTables = postgresqlTables; + Schema = schema; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.cs new file mode 100644 index 0000000000..03ed0e2414 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable + { + /// + /// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + /// Structure is documented below. + /// + public readonly ImmutableArray PostgresqlColumns; + /// + /// Table name. + /// + public readonly string Table; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable( + ImmutableArray postgresqlColumns, + + string table) + { + PostgresqlColumns = postgresqlColumns; + Table = table; + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs new file mode 100644 index 0000000000..1d0c931338 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.cs @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn + { + /// + /// Column name. + /// + public readonly string? Column; + /// + /// The PostgreSQL data type. Full data types list can be found here: + /// https://www.postgresql.org/docs/current/datatype.html + /// + public readonly string? DataType; + /// + /// Column length. + /// + public readonly int? Length; + /// + /// Whether or not the column can accept a null value. + /// + public readonly bool? Nullable; + /// + /// The ordinal position of the column in the table. + /// + public readonly int? OrdinalPosition; + /// + /// Column precision. + /// + public readonly int? Precision; + /// + /// Whether or not the column represents a primary key. + /// + public readonly bool? PrimaryKey; + /// + /// Column scale. + /// + public readonly int? Scale; + + [OutputConstructor] + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn( + string? column, + + string? dataType, + + int? length, + + bool? nullable, + + int? ordinalPosition, + + int? precision, + + bool? primaryKey, + + int? scale) + { + Column = column; + DataType = dataType; + Length = length; + Nullable = nullable; + OrdinalPosition = ordinalPosition; + Precision = precision; + PrimaryKey = primaryKey; + Scale = scale; + } + } +} diff --git a/sdk/dotnet/Datastream/Stream.cs b/sdk/dotnet/Datastream/Stream.cs index 0e97d8393b..d0ed9c35c9 100644 --- a/sdk/dotnet/Datastream/Stream.cs +++ b/sdk/dotnet/Datastream/Stream.cs @@ -284,6 +284,290 @@ namespace Pulumi.Gcp.Datastream /// /// }); /// ``` + /// ### Datastream Stream Postgresql + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var source = new Gcp.Datastream.ConnectionProfile("source", new() + /// { + /// DisplayName = "Postgresql Source", + /// Location = "us-central1", + /// ConnectionProfileId = "source-profile", + /// PostgresqlProfile = new Gcp.Datastream.Inputs.ConnectionProfilePostgresqlProfileArgs + /// { + /// Hostname = "hostname", + /// Port = 3306, + /// Username = "user", + /// Password = "pass", + /// Database = "postgres", + /// }, + /// }); + /// + /// var destination = new Gcp.Datastream.ConnectionProfile("destination", new() + /// { + /// DisplayName = "BigQuery Destination", + /// Location = "us-central1", + /// ConnectionProfileId = "destination-profile", + /// BigqueryProfile = null, + /// }); + /// + /// var @default = new Gcp.Datastream.Stream("default", new() + /// { + /// DisplayName = "Postgres to BigQuery", + /// Location = "us-central1", + /// StreamId = "my-stream", + /// DesiredState = "RUNNING", + /// SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs + /// { + /// SourceConnectionProfile = source.Id, + /// PostgresqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigArgs + /// { + /// MaxConcurrentBackfillTasks = 12, + /// Publication = "publication", + /// ReplicationSlot = "replication_slot", + /// IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs + /// { + /// PostgresqlSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs + /// { + /// Schema = "schema", + /// PostgresqlTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs + /// { + /// Table = "table", + /// PostgresqlColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs + /// { + /// PostgresqlSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs + /// { + /// Schema = "schema", + /// PostgresqlTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs + /// { + /// Table = "table", + /// PostgresqlColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs + /// { + /// DestinationConnectionProfile = destination.Id, + /// BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs + /// { + /// DataFreshness = "900s", + /// SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs + /// { + /// DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs + /// { + /// Location = "us-central1", + /// }, + /// }, + /// }, + /// }, + /// BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs + /// { + /// PostgresqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs + /// { + /// PostgresqlSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs + /// { + /// Schema = "schema", + /// PostgresqlTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs + /// { + /// Table = "table", + /// PostgresqlColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Datastream Stream Oracle + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var source = new Gcp.Datastream.ConnectionProfile("source", new() + /// { + /// DisplayName = "Oracle Source", + /// Location = "us-central1", + /// ConnectionProfileId = "source-profile", + /// OracleProfile = new Gcp.Datastream.Inputs.ConnectionProfileOracleProfileArgs + /// { + /// Hostname = "hostname", + /// Port = 1521, + /// Username = "user", + /// Password = "pass", + /// DatabaseService = "ORCL", + /// }, + /// }); + /// + /// var destination = new Gcp.Datastream.ConnectionProfile("destination", new() + /// { + /// DisplayName = "BigQuery Destination", + /// Location = "us-central1", + /// ConnectionProfileId = "destination-profile", + /// BigqueryProfile = null, + /// }); + /// + /// var stream5 = new Gcp.Datastream.Stream("stream5", new() + /// { + /// DisplayName = "Oracle to BigQuery", + /// Location = "us-central1", + /// StreamId = "my-stream", + /// DesiredState = "RUNNING", + /// SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs + /// { + /// SourceConnectionProfile = source.Id, + /// OracleSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigArgs + /// { + /// MaxConcurrentCdcTasks = 8, + /// MaxConcurrentBackfillTasks = 12, + /// IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs + /// { + /// OracleSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs + /// { + /// Schema = "schema", + /// OracleTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs + /// { + /// Table = "table", + /// OracleColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs + /// { + /// OracleSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs + /// { + /// Schema = "schema", + /// OracleTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs + /// { + /// Table = "table", + /// OracleColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// DropLargeObjects = null, + /// }, + /// }, + /// DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs + /// { + /// DestinationConnectionProfile = destination.Id, + /// BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs + /// { + /// DataFreshness = "900s", + /// SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs + /// { + /// DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs + /// { + /// Location = "us-central1", + /// }, + /// }, + /// }, + /// }, + /// BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs + /// { + /// OracleExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsArgs + /// { + /// OracleSchemas = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs + /// { + /// Schema = "schema", + /// OracleTables = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs + /// { + /// Table = "table", + /// OracleColumns = new[] + /// { + /// new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs + /// { + /// Column = "column", + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` /// ### Datastream Stream Bigquery /// /// ```csharp diff --git a/sdk/dotnet/Eventarc/Channel.cs b/sdk/dotnet/Eventarc/Channel.cs index 969a27c07a..0e212bc266 100644 --- a/sdk/dotnet/Eventarc/Channel.cs +++ b/sdk/dotnet/Eventarc/Channel.cs @@ -38,14 +38,11 @@ namespace Pulumi.Gcp.Eventarc /// KeyRing = testKeyRing.Apply(getKMSKeyRingResult => getKMSKeyRingResult.Id), /// }); /// - /// var key1Binding = new Gcp.Kms.CryptoKeyIAMBinding("key1Binding", new() + /// var key1Member = new Gcp.Kms.CryptoKeyIAMMember("key1Member", new() /// { /// CryptoKeyId = data.Google_kms_crypto_key.Key1.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Members = new[] - /// { - /// $"serviceAccount:service-{testProject.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com", - /// }, + /// Member = $"serviceAccount:service-{testProject.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com", /// }); /// /// var primary = new Gcp.Eventarc.Channel("primary", new() @@ -58,7 +55,7 @@ namespace Pulumi.Gcp.Eventarc /// { /// DependsOn = new[] /// { - /// key1Binding, + /// key1Member, /// }, /// }); /// diff --git a/sdk/dotnet/Eventarc/GoogleChannelConfig.cs b/sdk/dotnet/Eventarc/GoogleChannelConfig.cs index c328fc4d33..2524aefca5 100644 --- a/sdk/dotnet/Eventarc/GoogleChannelConfig.cs +++ b/sdk/dotnet/Eventarc/GoogleChannelConfig.cs @@ -38,14 +38,11 @@ namespace Pulumi.Gcp.Eventarc /// KeyRing = testKeyRing.Apply(getKMSKeyRingResult => getKMSKeyRingResult.Id), /// }); /// - /// var key1Binding = new Gcp.Kms.CryptoKeyIAMBinding("key1Binding", new() + /// var key1Member = new Gcp.Kms.CryptoKeyIAMMember("key1Member", new() /// { /// CryptoKeyId = data.Google_kms_crypto_key.Key1.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Members = new[] - /// { - /// $"serviceAccount:service-{testProject.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com", - /// }, + /// Member = $"serviceAccount:service-{testProject.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-eventarc.iam.gserviceaccount.com", /// }); /// /// var primary = new Gcp.Eventarc.GoogleChannelConfig("primary", new() @@ -57,7 +54,7 @@ namespace Pulumi.Gcp.Eventarc /// { /// DependsOn = new[] /// { - /// key1Binding, + /// key1Member, /// }, /// }); /// diff --git a/sdk/dotnet/Firebase/AndroidApp.cs b/sdk/dotnet/Firebase/AndroidApp.cs index 97de225065..249720d063 100644 --- a/sdk/dotnet/Firebase/AndroidApp.cs +++ b/sdk/dotnet/Firebase/AndroidApp.cs @@ -74,7 +74,7 @@ public partial class AndroidApp : global::Pulumi.CustomResource /// /// (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon /// 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - /// AndroidApp. Default to 'DELETE'. + /// AndroidApp. Defaults to 'DELETE'. /// [Output("deletionPolicy")] public Output DeletionPolicy { get; private set; } = null!; @@ -174,7 +174,7 @@ public sealed class AndroidAppArgs : global::Pulumi.ResourceArgs /// /// (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon /// 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - /// AndroidApp. Default to 'DELETE'. + /// AndroidApp. Defaults to 'DELETE'. /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } @@ -241,7 +241,7 @@ public sealed class AndroidAppState : global::Pulumi.ResourceArgs /// /// (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon /// 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - /// AndroidApp. Default to 'DELETE'. + /// AndroidApp. Defaults to 'DELETE'. /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } diff --git a/sdk/dotnet/Firebase/AppleApp.cs b/sdk/dotnet/Firebase/AppleApp.cs index 55ecf43478..fc93e8e2f2 100644 --- a/sdk/dotnet/Firebase/AppleApp.cs +++ b/sdk/dotnet/Firebase/AppleApp.cs @@ -99,9 +99,9 @@ public partial class AppleApp : global::Pulumi.CustomResource public Output BundleId { get; private set; } = null!; /// - /// (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - /// 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - /// Default to 'DELETE'. + /// (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + /// destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + /// 'DELETE'. /// [Output("deletionPolicy")] public Output DeletionPolicy { get; private set; } = null!; @@ -191,9 +191,9 @@ public sealed class AppleAppArgs : global::Pulumi.ResourceArgs public Input? BundleId { get; set; } /// - /// (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - /// 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - /// Default to 'DELETE'. + /// (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + /// destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + /// 'DELETE'. /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } @@ -245,9 +245,9 @@ public sealed class AppleAppState : global::Pulumi.ResourceArgs public Input? BundleId { get; set; } /// - /// (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - /// 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - /// Default to 'DELETE'. + /// (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + /// destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + /// 'DELETE'. /// [Input("deletionPolicy")] public Input? DeletionPolicy { get; set; } diff --git a/sdk/dotnet/Firestore/Database.cs b/sdk/dotnet/Firestore/Database.cs new file mode 100644 index 0000000000..f9002722ec --- /dev/null +++ b/sdk/dotnet/Firestore/Database.cs @@ -0,0 +1,283 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Firestore +{ + /// + /// ## Example Usage + /// + /// ## Import + /// + /// Database can be imported using any of these accepted formats + /// + /// ```sh + /// $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:firestore/database:Database default {{name}} + /// ``` + /// + [GcpResourceType("gcp:firestore/database:Database")] + public partial class Database : global::Pulumi.CustomResource + { + /// + /// The App Engine integration mode to use for this database. + /// Possible values are `ENABLED` and `DISABLED`. + /// + [Output("appEngineIntegrationMode")] + public Output AppEngineIntegrationMode { get; private set; } = null!; + + /// + /// The concurrency control mode to use for this database. + /// Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + /// + [Output("concurrencyMode")] + public Output ConcurrencyMode { get; private set; } = null!; + + /// + /// The timestamp at which this database was created. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// This checksum is computed by the server based on the value of other fields, + /// and may be sent on update and delete requests to ensure the client has an + /// up-to-date value before proceeding. + /// + [Output("etag")] + public Output Etag { get; private set; } = null!; + + /// + /// Output only. The keyPrefix for this database. + /// This keyPrefix is used, in combination with the project id ("~") to construct the application id + /// that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + /// This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + /// + [Output("keyPrefix")] + public Output KeyPrefix { get; private set; } = null!; + + /// + /// The location of the database. Available databases are listed at + /// https://cloud.google.com/firestore/docs/locations. + /// + [Output("locationId")] + public Output LocationId { get; private set; } = null!; + + /// + /// Required. The ID to use for the database, which will become the final + /// component of the database's resource name. This value should be 4-63 + /// characters. Valid characters are /[a-z][0-9]-/ with first character + /// a letter and the last a letter or a number. Must not be + /// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + /// "(default)" database id is also valid. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// The type of the database. + /// See https://cloud.google.com/datastore/docs/firestore-or-datastore + /// for information about how to choose. + /// Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + + /// + /// Create a Database resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Database(string name, DatabaseArgs args, CustomResourceOptions? options = null) + : base("gcp:firestore/database:Database", name, args ?? new DatabaseArgs(), MakeResourceOptions(options, "")) + { + } + + private Database(string name, Input id, DatabaseState? state = null, CustomResourceOptions? options = null) + : base("gcp:firestore/database:Database", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Database resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Database Get(string name, Input id, DatabaseState? state = null, CustomResourceOptions? options = null) + { + return new Database(name, id, state, options); + } + } + + public sealed class DatabaseArgs : global::Pulumi.ResourceArgs + { + /// + /// The App Engine integration mode to use for this database. + /// Possible values are `ENABLED` and `DISABLED`. + /// + [Input("appEngineIntegrationMode")] + public Input? AppEngineIntegrationMode { get; set; } + + /// + /// The concurrency control mode to use for this database. + /// Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + /// + [Input("concurrencyMode")] + public Input? ConcurrencyMode { get; set; } + + /// + /// The location of the database. Available databases are listed at + /// https://cloud.google.com/firestore/docs/locations. + /// + [Input("locationId", required: true)] + public Input LocationId { get; set; } = null!; + + /// + /// Required. The ID to use for the database, which will become the final + /// component of the database's resource name. This value should be 4-63 + /// characters. Valid characters are /[a-z][0-9]-/ with first character + /// a letter and the last a letter or a number. Must not be + /// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + /// "(default)" database id is also valid. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The type of the database. + /// See https://cloud.google.com/datastore/docs/firestore-or-datastore + /// for information about how to choose. + /// Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public DatabaseArgs() + { + } + public static new DatabaseArgs Empty => new DatabaseArgs(); + } + + public sealed class DatabaseState : global::Pulumi.ResourceArgs + { + /// + /// The App Engine integration mode to use for this database. + /// Possible values are `ENABLED` and `DISABLED`. + /// + [Input("appEngineIntegrationMode")] + public Input? AppEngineIntegrationMode { get; set; } + + /// + /// The concurrency control mode to use for this database. + /// Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + /// + [Input("concurrencyMode")] + public Input? ConcurrencyMode { get; set; } + + /// + /// The timestamp at which this database was created. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// This checksum is computed by the server based on the value of other fields, + /// and may be sent on update and delete requests to ensure the client has an + /// up-to-date value before proceeding. + /// + [Input("etag")] + public Input? Etag { get; set; } + + /// + /// Output only. The keyPrefix for this database. + /// This keyPrefix is used, in combination with the project id ("~") to construct the application id + /// that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + /// This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + /// + [Input("keyPrefix")] + public Input? KeyPrefix { get; set; } + + /// + /// The location of the database. Available databases are listed at + /// https://cloud.google.com/firestore/docs/locations. + /// + [Input("locationId")] + public Input? LocationId { get; set; } + + /// + /// Required. The ID to use for the database, which will become the final + /// component of the database's resource name. This value should be 4-63 + /// characters. Valid characters are /[a-z][0-9]-/ with first character + /// a letter and the last a letter or a number. Must not be + /// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + /// "(default)" database id is also valid. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// The type of the database. + /// See https://cloud.google.com/datastore/docs/firestore-or-datastore + /// for information about how to choose. + /// Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + /// + [Input("type")] + public Input? Type { get; set; } + + public DatabaseState() + { + } + public static new DatabaseState Empty => new DatabaseState(); + } +} diff --git a/sdk/dotnet/SecurityCenter/InstanceIamBinding.cs b/sdk/dotnet/SecurityCenter/InstanceIamBinding.cs index 7fd42dbb13..201ba51b3a 100644 --- a/sdk/dotnet/SecurityCenter/InstanceIamBinding.cs +++ b/sdk/dotnet/SecurityCenter/InstanceIamBinding.cs @@ -30,10 +30,6 @@ namespace Pulumi.Gcp.SecurityCenter /// { /// var basicInstance = new Gcp.DataFusion.Instance("basicInstance", new() /// { - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "BASIC", /// }); @@ -86,10 +82,6 @@ namespace Pulumi.Gcp.SecurityCenter /// return $"{address}/{prefixLength}"; /// }), /// }, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// }); /// /// }); @@ -155,10 +147,6 @@ namespace Pulumi.Gcp.SecurityCenter /// var enterpriseInstance = new Gcp.DataFusion.Instance("enterpriseInstance", new() /// { /// EnableRbac = true, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "ENTERPRISE", /// }); diff --git a/sdk/dotnet/SecurityCenter/InstanceIamMember.cs b/sdk/dotnet/SecurityCenter/InstanceIamMember.cs index 812d580926..9365d6cb03 100644 --- a/sdk/dotnet/SecurityCenter/InstanceIamMember.cs +++ b/sdk/dotnet/SecurityCenter/InstanceIamMember.cs @@ -30,10 +30,6 @@ namespace Pulumi.Gcp.SecurityCenter /// { /// var basicInstance = new Gcp.DataFusion.Instance("basicInstance", new() /// { - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "BASIC", /// }); @@ -86,10 +82,6 @@ namespace Pulumi.Gcp.SecurityCenter /// return $"{address}/{prefixLength}"; /// }), /// }, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// }); /// /// }); @@ -155,10 +147,6 @@ namespace Pulumi.Gcp.SecurityCenter /// var enterpriseInstance = new Gcp.DataFusion.Instance("enterpriseInstance", new() /// { /// EnableRbac = true, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "ENTERPRISE", /// }); diff --git a/sdk/dotnet/SecurityCenter/InstanceIamPolicy.cs b/sdk/dotnet/SecurityCenter/InstanceIamPolicy.cs index 6810c99db4..bfd5d249b5 100644 --- a/sdk/dotnet/SecurityCenter/InstanceIamPolicy.cs +++ b/sdk/dotnet/SecurityCenter/InstanceIamPolicy.cs @@ -30,10 +30,6 @@ namespace Pulumi.Gcp.SecurityCenter /// { /// var basicInstance = new Gcp.DataFusion.Instance("basicInstance", new() /// { - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "BASIC", /// }); @@ -86,10 +82,6 @@ namespace Pulumi.Gcp.SecurityCenter /// return $"{address}/{prefixLength}"; /// }), /// }, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// }); /// /// }); @@ -155,10 +147,6 @@ namespace Pulumi.Gcp.SecurityCenter /// var enterpriseInstance = new Gcp.DataFusion.Instance("enterpriseInstance", new() /// { /// EnableRbac = true, - /// Options = - /// { - /// { "prober_test_run", "true" }, - /// }, /// Region = "us-central1", /// Type = "ENTERPRISE", /// }); diff --git a/sdk/dotnet/Sql/DatabaseInstance.cs b/sdk/dotnet/Sql/DatabaseInstance.cs index 27ed6586cf..d7ebe476a9 100644 --- a/sdk/dotnet/Sql/DatabaseInstance.cs +++ b/sdk/dotnet/Sql/DatabaseInstance.cs @@ -90,6 +90,7 @@ namespace Pulumi.Gcp.Sql /// { /// Ipv4Enabled = false, /// PrivateNetwork = privateNetwork.Id, + /// EnablePrivatePathForGoogleCloudServices = true, /// }, /// }, /// }, new CustomResourceOptions diff --git a/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationArgs.cs b/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationArgs.cs index de20d0ccd4..dfaf685f38 100644 --- a/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationArgs.cs +++ b/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationArgs.cs @@ -26,6 +26,12 @@ public InputList _authorizedNetworks = value; } + /// + /// Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + /// + [Input("enablePrivatePathForGoogleCloudServices")] + public Input? EnablePrivatePathForGoogleCloudServices { get; set; } + /// /// Whether this Cloud SQL instance should be assigned /// a public IPV4 address. At least `ipv4_enabled` must be enabled or a diff --git a/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationGetArgs.cs b/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationGetArgs.cs index 6793cffdff..78dd91c1d6 100644 --- a/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationGetArgs.cs +++ b/sdk/dotnet/Sql/Inputs/DatabaseInstanceSettingsIpConfigurationGetArgs.cs @@ -26,6 +26,12 @@ public InputList _authorizedNetworks = value; } + /// + /// Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + /// + [Input("enablePrivatePathForGoogleCloudServices")] + public Input? EnablePrivatePathForGoogleCloudServices { get; set; } + /// /// Whether this Cloud SQL instance should be assigned /// a public IPV4 address. At least `ipv4_enabled` must be enabled or a diff --git a/sdk/dotnet/Sql/Outputs/DatabaseInstanceSettingsIpConfiguration.cs b/sdk/dotnet/Sql/Outputs/DatabaseInstanceSettingsIpConfiguration.cs index 1551419174..799bf4bb7e 100644 --- a/sdk/dotnet/Sql/Outputs/DatabaseInstanceSettingsIpConfiguration.cs +++ b/sdk/dotnet/Sql/Outputs/DatabaseInstanceSettingsIpConfiguration.cs @@ -19,6 +19,10 @@ public sealed class DatabaseInstanceSettingsIpConfiguration public readonly string? AllocatedIpRange; public readonly ImmutableArray AuthorizedNetworks; /// + /// Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + /// + public readonly bool? EnablePrivatePathForGoogleCloudServices; + /// /// Whether this Cloud SQL instance should be assigned /// a public IPV4 address. At least `ipv4_enabled` must be enabled or a /// `private_network` must be configured. @@ -43,6 +47,8 @@ private DatabaseInstanceSettingsIpConfiguration( ImmutableArray authorizedNetworks, + bool? enablePrivatePathForGoogleCloudServices, + bool? ipv4Enabled, string? privateNetwork, @@ -51,6 +57,7 @@ private DatabaseInstanceSettingsIpConfiguration( { AllocatedIpRange = allocatedIpRange; AuthorizedNetworks = authorizedNetworks; + EnablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; Ipv4Enabled = ipv4Enabled; PrivateNetwork = privateNetwork; RequireSsl = requireSsl; diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs index b5fc0bcba1..08a5dbcd45 100644 --- a/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstanceSettingIpConfigurationResult.cs @@ -15,6 +15,7 @@ public sealed class GetDatabaseInstanceSettingIpConfigurationResult { public readonly string AllocatedIpRange; public readonly ImmutableArray AuthorizedNetworks; + public readonly bool EnablePrivatePathForGoogleCloudServices; public readonly bool Ipv4Enabled; public readonly string PrivateNetwork; public readonly bool RequireSsl; @@ -25,6 +26,8 @@ private GetDatabaseInstanceSettingIpConfigurationResult( ImmutableArray authorizedNetworks, + bool enablePrivatePathForGoogleCloudServices, + bool ipv4Enabled, string privateNetwork, @@ -33,6 +36,7 @@ private GetDatabaseInstanceSettingIpConfigurationResult( { AllocatedIpRange = allocatedIpRange; AuthorizedNetworks = authorizedNetworks; + EnablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; Ipv4Enabled = ipv4Enabled; PrivateNetwork = privateNetwork; RequireSsl = requireSsl; diff --git a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceSettingIpConfigurationResult.cs b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceSettingIpConfigurationResult.cs index aa864d2feb..493a56633c 100644 --- a/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceSettingIpConfigurationResult.cs +++ b/sdk/dotnet/Sql/Outputs/GetDatabaseInstancesInstanceSettingIpConfigurationResult.cs @@ -15,6 +15,7 @@ public sealed class GetDatabaseInstancesInstanceSettingIpConfigurationResult { public readonly string AllocatedIpRange; public readonly ImmutableArray AuthorizedNetworks; + public readonly bool EnablePrivatePathForGoogleCloudServices; public readonly bool Ipv4Enabled; public readonly string PrivateNetwork; public readonly bool RequireSsl; @@ -25,6 +26,8 @@ private GetDatabaseInstancesInstanceSettingIpConfigurationResult( ImmutableArray authorizedNetworks, + bool enablePrivatePathForGoogleCloudServices, + bool ipv4Enabled, string privateNetwork, @@ -33,6 +36,7 @@ private GetDatabaseInstancesInstanceSettingIpConfigurationResult( { AllocatedIpRange = allocatedIpRange; AuthorizedNetworks = authorizedNetworks; + EnablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; Ipv4Enabled = ipv4Enabled; PrivateNetwork = privateNetwork; RequireSsl = requireSsl; diff --git a/sdk/dotnet/Vertex/AiFeatureStore.cs b/sdk/dotnet/Vertex/AiFeatureStore.cs index 1ef7378f52..f46aeedf32 100644 --- a/sdk/dotnet/Vertex/AiFeatureStore.cs +++ b/sdk/dotnet/Vertex/AiFeatureStore.cs @@ -48,6 +48,39 @@ namespace Pulumi.Gcp.Vertex /// /// }); /// ``` + /// ### Vertex Ai Featurestore With Beta Fields + /// + /// ```csharp + /// using System.Collections.Generic; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var featurestore = new Gcp.Vertex.AiFeatureStore("featurestore", new() + /// { + /// Labels = + /// { + /// { "foo", "bar" }, + /// }, + /// Region = "us-central1", + /// OnlineServingConfig = new Gcp.Vertex.Inputs.AiFeatureStoreOnlineServingConfigArgs + /// { + /// FixedNodeCount = 2, + /// }, + /// EncryptionSpec = new Gcp.Vertex.Inputs.AiFeatureStoreEncryptionSpecArgs + /// { + /// KmsKeyName = "kms-name", + /// }, + /// OnlineStorageTtlDays = 30, + /// ForceDestroy = true, + /// }, new CustomResourceOptions + /// { + /// Provider = google_beta, + /// }); + /// + /// }); + /// ``` /// ### Vertex Ai Featurestore Scaling /// /// ```csharp @@ -149,6 +182,15 @@ public partial class AiFeatureStore : global::Pulumi.CustomResource [Output("onlineServingConfig")] public Output OnlineServingConfig { get; private set; } = null!; + /// + /// TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + /// periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + /// that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + /// featurestore. If not set, default to 4000 days + /// + [Output("onlineStorageTtlDays")] + public Output OnlineStorageTtlDays { get; private set; } = null!; + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -252,6 +294,15 @@ public InputMap Labels [Input("onlineServingConfig")] public Input? OnlineServingConfig { get; set; } + /// + /// TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + /// periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + /// that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + /// featurestore. If not set, default to 4000 days + /// + [Input("onlineStorageTtlDays")] + public Input? OnlineStorageTtlDays { get; set; } + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -323,6 +374,15 @@ public InputMap Labels [Input("onlineServingConfig")] public Input? OnlineServingConfig { get; set; } + /// + /// TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + /// periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + /// that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + /// featurestore. If not set, default to 4000 days + /// + [Input("onlineStorageTtlDays")] + public Input? OnlineStorageTtlDays { get; set; } + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. diff --git a/sdk/dotnet/Vertex/AiFeatureStoreEntityType.cs b/sdk/dotnet/Vertex/AiFeatureStoreEntityType.cs index 2700f70123..8c28cce81e 100644 --- a/sdk/dotnet/Vertex/AiFeatureStoreEntityType.cs +++ b/sdk/dotnet/Vertex/AiFeatureStoreEntityType.cs @@ -51,6 +51,7 @@ namespace Pulumi.Gcp.Vertex /// { /// { "foo", "bar" }, /// }, + /// Description = "test description", /// Featurestore = featurestore.Id, /// MonitoringConfig = new Gcp.Vertex.Inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs /// { @@ -130,6 +131,7 @@ namespace Pulumi.Gcp.Vertex /// Value = 0.3, /// }, /// }, + /// OfflineStorageTtlDays = 30, /// }, new CustomResourceOptions /// { /// Provider = google_beta, @@ -155,6 +157,12 @@ public partial class AiFeatureStoreEntityType : global::Pulumi.CustomResource [Output("createTime")] public Output CreateTime { get; private set; } = null!; + /// + /// Optional. Description of the EntityType. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + /// /// Used to perform consistent read-modify-write updates. /// @@ -187,6 +195,14 @@ public partial class AiFeatureStoreEntityType : global::Pulumi.CustomResource [Output("name")] public Output Name { get; private set; } = null!; + /// + /// Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + /// storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + /// since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + /// + [Output("offlineStorageTtlDays")] + public Output OfflineStorageTtlDays { get; private set; } = null!; + /// /// The region of the EntityType. /// @@ -245,6 +261,12 @@ public static AiFeatureStoreEntityType Get(string name, Input id, AiFeat public sealed class AiFeatureStoreEntityTypeArgs : global::Pulumi.ResourceArgs { + /// + /// Optional. Description of the EntityType. + /// + [Input("description")] + public Input? Description { get; set; } + /// /// The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. /// @@ -277,6 +299,14 @@ public InputMap Labels [Input("name")] public Input? Name { get; set; } + /// + /// Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + /// storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + /// since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + /// + [Input("offlineStorageTtlDays")] + public Input? OfflineStorageTtlDays { get; set; } + public AiFeatureStoreEntityTypeArgs() { } @@ -291,6 +321,12 @@ public sealed class AiFeatureStoreEntityTypeState : global::Pulumi.ResourceArgs [Input("createTime")] public Input? CreateTime { get; set; } + /// + /// Optional. Description of the EntityType. + /// + [Input("description")] + public Input? Description { get; set; } + /// /// Used to perform consistent read-modify-write updates. /// @@ -329,6 +365,14 @@ public InputMap Labels [Input("name")] public Input? Name { get; set; } + /// + /// Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + /// storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + /// since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + /// + [Input("offlineStorageTtlDays")] + public Input? OfflineStorageTtlDays { get; set; } + /// /// The region of the EntityType. /// diff --git a/sdk/go/gcp/alloydb/backup.go b/sdk/go/gcp/alloydb/backup.go index 85d2f1f224..2ac0a4b6db 100644 --- a/sdk/go/gcp/alloydb/backup.go +++ b/sdk/go/gcp/alloydb/backup.go @@ -11,6 +11,14 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// An AlloyDB Backup. +// +// To get more information about Backup, see: +// +// * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) +// * How-to Guides +// - [AlloyDB](https://cloud.google.com/alloydb/docs/) +// // ## Example Usage // ### Alloydb Backup Full // @@ -38,7 +46,7 @@ import ( // ClusterId: pulumi.String("alloydb-cluster"), // Location: pulumi.String("us-central1"), // Network: *pulumi.String(defaultNetwork.Id), -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -47,7 +55,7 @@ import ( // Purpose: pulumi.String("VPC_PEERING"), // PrefixLength: pulumi.Int(16), // Network: *pulumi.String(defaultNetwork.Id), -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -57,7 +65,7 @@ import ( // ReservedPeeringRanges: pulumi.StringArray{ // privateIpAlloc.Name, // }, -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -65,7 +73,7 @@ import ( // Cluster: defaultCluster.Name, // InstanceId: pulumi.String("alloydb-instance"), // InstanceType: pulumi.String("PRIMARY"), -// }, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{ +// }, pulumi.DependsOn([]pulumi.Resource{ // vpcConnection, // })) // if err != nil { @@ -79,7 +87,7 @@ import ( // Labels: pulumi.StringMap{ // "label": pulumi.String("key"), // }, -// }, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{ +// }, pulumi.DependsOn([]pulumi.Resource{ // defaultInstance, // })) // if err != nil { diff --git a/sdk/go/gcp/alloydb/cluster.go b/sdk/go/gcp/alloydb/cluster.go index 25f4926639..e5db549d4d 100644 --- a/sdk/go/gcp/alloydb/cluster.go +++ b/sdk/go/gcp/alloydb/cluster.go @@ -34,7 +34,7 @@ import ( // if err != nil { // return err // } -// defaultNetwork, err := compute.NewNetwork(ctx, "defaultNetwork", nil, pulumi.Provider(google_beta)) +// defaultNetwork, err := compute.NewNetwork(ctx, "defaultNetwork", nil) // if err != nil { // return err // } @@ -44,79 +44,7 @@ import ( // Network: defaultNetwork.Name.ApplyT(func(name string) (string, error) { // return fmt.Sprintf("projects/%v/global/networks/%v", project.Number, name), nil // }).(pulumi.StringOutput), -// }, pulumi.Provider(google_beta)) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// ### Alloydb Cluster Full -// -// ```go -// package main -// -// import ( -// -// "fmt" -// -// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/alloydb" -// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute" -// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// project, err := organizations.LookupProject(ctx, nil, nil) -// if err != nil { -// return err -// } -// _, err = compute.NewNetwork(ctx, "default", nil, pulumi.Provider(google_beta)) -// if err != nil { -// return err -// } -// _, err = alloydb.NewCluster(ctx, "full", &alloydb.ClusterArgs{ -// ClusterId: pulumi.String("alloydb-cluster-full"), -// Location: pulumi.String("us-central1"), -// Network: _default.Name.ApplyT(func(name string) (string, error) { -// return fmt.Sprintf("projects/%v/global/networks/%v", project.Number, name), nil -// }).(pulumi.StringOutput), -// InitialUser: &alloydb.ClusterInitialUserArgs{ -// User: pulumi.String("alloydb-cluster-full"), -// Password: pulumi.String("alloydb-cluster-full"), -// }, -// AutomatedBackupPolicy: &alloydb.ClusterAutomatedBackupPolicyArgs{ -// Location: pulumi.String("us-central1"), -// BackupWindow: pulumi.String("1800s"), -// Enabled: pulumi.Bool(true), -// WeeklySchedule: &alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleArgs{ -// DaysOfWeeks: pulumi.StringArray{ -// pulumi.String("MONDAY"), -// }, -// StartTimes: alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArray{ -// &alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs{ -// Hours: pulumi.Int(23), -// Minutes: pulumi.Int(0), -// Seconds: pulumi.Int(0), -// Nanos: pulumi.Int(0), -// }, -// }, -// }, -// QuantityBasedRetention: &alloydb.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs{ -// Count: pulumi.Int(1), -// }, -// Labels: pulumi.StringMap{ -// "test": pulumi.String("alloydb-cluster-full"), -// }, -// }, -// Labels: pulumi.StringMap{ -// "test": pulumi.String("alloydb-cluster-full"), -// }, -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } diff --git a/sdk/go/gcp/alloydb/instance.go b/sdk/go/gcp/alloydb/instance.go index 7cb8943dee..fa663d1093 100644 --- a/sdk/go/gcp/alloydb/instance.go +++ b/sdk/go/gcp/alloydb/instance.go @@ -11,6 +11,14 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// A managed alloydb cluster instance. +// +// To get more information about Instance, see: +// +// * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) +// * How-to Guides +// - [AlloyDB](https://cloud.google.com/alloydb/docs/) +// // ## Example Usage // ### Alloydb Instance Basic // @@ -35,7 +43,7 @@ import ( // if err != nil { // return err // } -// defaultNetwork, err := compute.NewNetwork(ctx, "defaultNetwork", nil, pulumi.Provider(google_beta)) +// defaultNetwork, err := compute.NewNetwork(ctx, "defaultNetwork", nil) // if err != nil { // return err // } @@ -48,7 +56,7 @@ import ( // InitialUser: &alloydb.ClusterInitialUserArgs{ // Password: pulumi.String("alloydb-cluster"), // }, -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -57,7 +65,7 @@ import ( // Purpose: pulumi.String("VPC_PEERING"), // PrefixLength: pulumi.Int(16), // Network: defaultNetwork.ID(), -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -67,7 +75,7 @@ import ( // ReservedPeeringRanges: pulumi.StringArray{ // privateIpAlloc.Name, // }, -// }, pulumi.Provider(google_beta)) +// }) // if err != nil { // return err // } @@ -78,7 +86,7 @@ import ( // MachineConfig: &alloydb.InstanceMachineConfigArgs{ // CpuCount: pulumi.Int(2), // }, -// }, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{ +// }, pulumi.DependsOn([]pulumi.Resource{ // vpcConnection, // })) // if err != nil { diff --git a/sdk/go/gcp/apigee/addonsConfig.go b/sdk/go/gcp/apigee/addonsConfig.go new file mode 100644 index 0000000000..534b5da15a --- /dev/null +++ b/sdk/go/gcp/apigee/addonsConfig.go @@ -0,0 +1,406 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package apigee + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. +// +// To get more information about AddonsConfig, see: +// +// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) +// * How-to Guides +// - [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) +// +// ## Example Usage +// ### Apigee Addons Basic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigee" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := apigee.NewAddonsConfig(ctx, "testOrganization", &apigee.AddonsConfigArgs{ +// AddonsConfig: &apigee.AddonsConfigAddonsConfigArgs{ +// ApiSecurityConfig: &apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// MonetizationConfig: &apigee.AddonsConfigAddonsConfigMonetizationConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// }, +// Org: pulumi.String("test_organization"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Apigee Addons Full +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/apigee" +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/projects" +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/servicenetworking" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := organizations.GetClientConfig(ctx, nil, nil) +// if err != nil { +// return err +// } +// apigee, err := projects.NewService(ctx, "apigee", &projects.ServiceArgs{ +// Project: *pulumi.String(current.Project), +// Service: pulumi.String("apigee.googleapis.com"), +// }) +// if err != nil { +// return err +// } +// compute, err := projects.NewService(ctx, "compute", &projects.ServiceArgs{ +// Project: *pulumi.String(current.Project), +// Service: pulumi.String("compute.googleapis.com"), +// }) +// if err != nil { +// return err +// } +// _, err = projects.NewService(ctx, "servicenetworking", &projects.ServiceArgs{ +// Project: *pulumi.String(current.Project), +// Service: pulumi.String("servicenetworking.googleapis.com"), +// }) +// if err != nil { +// return err +// } +// apigeeNetwork, err := compute.NewNetwork(ctx, "apigeeNetwork", &compute.NetworkArgs{ +// Project: *pulumi.String(current.Project), +// }, pulumi.DependsOn([]pulumi.Resource{ +// compute, +// })) +// if err != nil { +// return err +// } +// apigeeRange, err := compute.NewGlobalAddress(ctx, "apigeeRange", &compute.GlobalAddressArgs{ +// Purpose: pulumi.String("VPC_PEERING"), +// AddressType: pulumi.String("INTERNAL"), +// PrefixLength: pulumi.Int(16), +// Network: apigeeNetwork.ID(), +// Project: *pulumi.String(current.Project), +// }) +// if err != nil { +// return err +// } +// apigeeVpcConnection, err := servicenetworking.NewConnection(ctx, "apigeeVpcConnection", &servicenetworking.ConnectionArgs{ +// Network: apigeeNetwork.ID(), +// Service: pulumi.String("servicenetworking.googleapis.com"), +// ReservedPeeringRanges: pulumi.StringArray{ +// apigeeRange.Name, +// }, +// }) +// if err != nil { +// return err +// } +// org, err := apigee.NewOrganization(ctx, "org", &apigee.OrganizationArgs{ +// AnalyticsRegion: pulumi.String("us-central1"), +// ProjectId: *pulumi.String(current.Project), +// AuthorizedNetwork: apigeeNetwork.ID(), +// BillingType: pulumi.String("EVALUATION"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeVpcConnection, +// apigee, +// })) +// if err != nil { +// return err +// } +// _, err = apigee.NewAddonsConfig(ctx, "testOrganization", &apigee.AddonsConfigArgs{ +// Org: org.Name, +// AddonsConfig: &apigee.AddonsConfigAddonsConfigArgs{ +// IntegrationConfig: &apigee.AddonsConfigAddonsConfigIntegrationConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// ApiSecurityConfig: &apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// ConnectorsPlatformConfig: &apigee.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// MonetizationConfig: &apigee.AddonsConfigAddonsConfigMonetizationConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// AdvancedApiOpsConfig: &apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{ +// Enabled: pulumi.Bool(true), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// # AddonsConfig can be imported using any of these accepted formats +// +// ```sh +// +// $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} +// +// ``` +// +// ```sh +// +// $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} +// +// ``` +type AddonsConfig struct { + pulumi.CustomResourceState + + // Addon configurations of the Apigee organization. + // Structure is documented below. + AddonsConfig AddonsConfigAddonsConfigPtrOutput `pulumi:"addonsConfig"` + // Name of the Apigee organization. + Org pulumi.StringOutput `pulumi:"org"` +} + +// NewAddonsConfig registers a new resource with the given unique name, arguments, and options. +func NewAddonsConfig(ctx *pulumi.Context, + name string, args *AddonsConfigArgs, opts ...pulumi.ResourceOption) (*AddonsConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Org == nil { + return nil, errors.New("invalid value for required argument 'Org'") + } + var resource AddonsConfig + err := ctx.RegisterResource("gcp:apigee/addonsConfig:AddonsConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAddonsConfig gets an existing AddonsConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAddonsConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AddonsConfigState, opts ...pulumi.ResourceOption) (*AddonsConfig, error) { + var resource AddonsConfig + err := ctx.ReadResource("gcp:apigee/addonsConfig:AddonsConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AddonsConfig resources. +type addonsConfigState struct { + // Addon configurations of the Apigee organization. + // Structure is documented below. + AddonsConfig *AddonsConfigAddonsConfig `pulumi:"addonsConfig"` + // Name of the Apigee organization. + Org *string `pulumi:"org"` +} + +type AddonsConfigState struct { + // Addon configurations of the Apigee organization. + // Structure is documented below. + AddonsConfig AddonsConfigAddonsConfigPtrInput + // Name of the Apigee organization. + Org pulumi.StringPtrInput +} + +func (AddonsConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*addonsConfigState)(nil)).Elem() +} + +type addonsConfigArgs struct { + // Addon configurations of the Apigee organization. + // Structure is documented below. + AddonsConfig *AddonsConfigAddonsConfig `pulumi:"addonsConfig"` + // Name of the Apigee organization. + Org string `pulumi:"org"` +} + +// The set of arguments for constructing a AddonsConfig resource. +type AddonsConfigArgs struct { + // Addon configurations of the Apigee organization. + // Structure is documented below. + AddonsConfig AddonsConfigAddonsConfigPtrInput + // Name of the Apigee organization. + Org pulumi.StringInput +} + +func (AddonsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*addonsConfigArgs)(nil)).Elem() +} + +type AddonsConfigInput interface { + pulumi.Input + + ToAddonsConfigOutput() AddonsConfigOutput + ToAddonsConfigOutputWithContext(ctx context.Context) AddonsConfigOutput +} + +func (*AddonsConfig) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfig)(nil)).Elem() +} + +func (i *AddonsConfig) ToAddonsConfigOutput() AddonsConfigOutput { + return i.ToAddonsConfigOutputWithContext(context.Background()) +} + +func (i *AddonsConfig) ToAddonsConfigOutputWithContext(ctx context.Context) AddonsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigOutput) +} + +// AddonsConfigArrayInput is an input type that accepts AddonsConfigArray and AddonsConfigArrayOutput values. +// You can construct a concrete instance of `AddonsConfigArrayInput` via: +// +// AddonsConfigArray{ AddonsConfigArgs{...} } +type AddonsConfigArrayInput interface { + pulumi.Input + + ToAddonsConfigArrayOutput() AddonsConfigArrayOutput + ToAddonsConfigArrayOutputWithContext(context.Context) AddonsConfigArrayOutput +} + +type AddonsConfigArray []AddonsConfigInput + +func (AddonsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AddonsConfig)(nil)).Elem() +} + +func (i AddonsConfigArray) ToAddonsConfigArrayOutput() AddonsConfigArrayOutput { + return i.ToAddonsConfigArrayOutputWithContext(context.Background()) +} + +func (i AddonsConfigArray) ToAddonsConfigArrayOutputWithContext(ctx context.Context) AddonsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigArrayOutput) +} + +// AddonsConfigMapInput is an input type that accepts AddonsConfigMap and AddonsConfigMapOutput values. +// You can construct a concrete instance of `AddonsConfigMapInput` via: +// +// AddonsConfigMap{ "key": AddonsConfigArgs{...} } +type AddonsConfigMapInput interface { + pulumi.Input + + ToAddonsConfigMapOutput() AddonsConfigMapOutput + ToAddonsConfigMapOutputWithContext(context.Context) AddonsConfigMapOutput +} + +type AddonsConfigMap map[string]AddonsConfigInput + +func (AddonsConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AddonsConfig)(nil)).Elem() +} + +func (i AddonsConfigMap) ToAddonsConfigMapOutput() AddonsConfigMapOutput { + return i.ToAddonsConfigMapOutputWithContext(context.Background()) +} + +func (i AddonsConfigMap) ToAddonsConfigMapOutputWithContext(ctx context.Context) AddonsConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigMapOutput) +} + +type AddonsConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfig)(nil)).Elem() +} + +func (o AddonsConfigOutput) ToAddonsConfigOutput() AddonsConfigOutput { + return o +} + +func (o AddonsConfigOutput) ToAddonsConfigOutputWithContext(ctx context.Context) AddonsConfigOutput { + return o +} + +// Addon configurations of the Apigee organization. +// Structure is documented below. +func (o AddonsConfigOutput) AddonsConfig() AddonsConfigAddonsConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfig) AddonsConfigAddonsConfigPtrOutput { return v.AddonsConfig }).(AddonsConfigAddonsConfigPtrOutput) +} + +// Name of the Apigee organization. +func (o AddonsConfigOutput) Org() pulumi.StringOutput { + return o.ApplyT(func(v *AddonsConfig) pulumi.StringOutput { return v.Org }).(pulumi.StringOutput) +} + +type AddonsConfigArrayOutput struct{ *pulumi.OutputState } + +func (AddonsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AddonsConfig)(nil)).Elem() +} + +func (o AddonsConfigArrayOutput) ToAddonsConfigArrayOutput() AddonsConfigArrayOutput { + return o +} + +func (o AddonsConfigArrayOutput) ToAddonsConfigArrayOutputWithContext(ctx context.Context) AddonsConfigArrayOutput { + return o +} + +func (o AddonsConfigArrayOutput) Index(i pulumi.IntInput) AddonsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AddonsConfig { + return vs[0].([]*AddonsConfig)[vs[1].(int)] + }).(AddonsConfigOutput) +} + +type AddonsConfigMapOutput struct{ *pulumi.OutputState } + +func (AddonsConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AddonsConfig)(nil)).Elem() +} + +func (o AddonsConfigMapOutput) ToAddonsConfigMapOutput() AddonsConfigMapOutput { + return o +} + +func (o AddonsConfigMapOutput) ToAddonsConfigMapOutputWithContext(ctx context.Context) AddonsConfigMapOutput { + return o +} + +func (o AddonsConfigMapOutput) MapIndex(k pulumi.StringInput) AddonsConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AddonsConfig { + return vs[0].(map[string]*AddonsConfig)[vs[1].(string)] + }).(AddonsConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigInput)(nil)).Elem(), &AddonsConfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigArrayInput)(nil)).Elem(), AddonsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigMapInput)(nil)).Elem(), AddonsConfigMap{}) + pulumi.RegisterOutputType(AddonsConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigArrayOutput{}) + pulumi.RegisterOutputType(AddonsConfigMapOutput{}) +} diff --git a/sdk/go/gcp/apigee/init.go b/sdk/go/gcp/apigee/init.go index 619018c974..d9148f248c 100644 --- a/sdk/go/gcp/apigee/init.go +++ b/sdk/go/gcp/apigee/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "gcp:apigee/addonsConfig:AddonsConfig": + r = &AddonsConfig{} case "gcp:apigee/endpointAttachment:EndpointAttachment": r = &EndpointAttachment{} case "gcp:apigee/envGroup:EnvGroup": @@ -58,6 +60,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "gcp", + "apigee/addonsConfig", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "apigee/endpointAttachment", diff --git a/sdk/go/gcp/apigee/pulumiTypes.go b/sdk/go/gcp/apigee/pulumiTypes.go index bf2a4c8d6b..21fa67c433 100644 --- a/sdk/go/gcp/apigee/pulumiTypes.go +++ b/sdk/go/gcp/apigee/pulumiTypes.go @@ -10,6 +10,972 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +type AddonsConfigAddonsConfig struct { + // Configuration for the Monetization add-on. + // Structure is documented below. + AdvancedApiOpsConfig *AddonsConfigAddonsConfigAdvancedApiOpsConfig `pulumi:"advancedApiOpsConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + ApiSecurityConfig *AddonsConfigAddonsConfigApiSecurityConfig `pulumi:"apiSecurityConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + ConnectorsPlatformConfig *AddonsConfigAddonsConfigConnectorsPlatformConfig `pulumi:"connectorsPlatformConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + IntegrationConfig *AddonsConfigAddonsConfigIntegrationConfig `pulumi:"integrationConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + MonetizationConfig *AddonsConfigAddonsConfigMonetizationConfig `pulumi:"monetizationConfig"` +} + +// AddonsConfigAddonsConfigInput is an input type that accepts AddonsConfigAddonsConfigArgs and AddonsConfigAddonsConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigInput` via: +// +// AddonsConfigAddonsConfigArgs{...} +type AddonsConfigAddonsConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigOutput() AddonsConfigAddonsConfigOutput + ToAddonsConfigAddonsConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigOutput +} + +type AddonsConfigAddonsConfigArgs struct { + // Configuration for the Monetization add-on. + // Structure is documented below. + AdvancedApiOpsConfig AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput `pulumi:"advancedApiOpsConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + ApiSecurityConfig AddonsConfigAddonsConfigApiSecurityConfigPtrInput `pulumi:"apiSecurityConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + ConnectorsPlatformConfig AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput `pulumi:"connectorsPlatformConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + IntegrationConfig AddonsConfigAddonsConfigIntegrationConfigPtrInput `pulumi:"integrationConfig"` + // Configuration for the Monetization add-on. + // Structure is documented below. + MonetizationConfig AddonsConfigAddonsConfigMonetizationConfigPtrInput `pulumi:"monetizationConfig"` +} + +func (AddonsConfigAddonsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigArgs) ToAddonsConfigAddonsConfigOutput() AddonsConfigAddonsConfigOutput { + return i.ToAddonsConfigAddonsConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigArgs) ToAddonsConfigAddonsConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigOutput) +} + +func (i AddonsConfigAddonsConfigArgs) ToAddonsConfigAddonsConfigPtrOutput() AddonsConfigAddonsConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigArgs) ToAddonsConfigAddonsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigOutput).ToAddonsConfigAddonsConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigArgs, AddonsConfigAddonsConfigPtr and AddonsConfigAddonsConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigPtrInput` via: +// +// AddonsConfigAddonsConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigPtrOutput() AddonsConfigAddonsConfigPtrOutput + ToAddonsConfigAddonsConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigPtrOutput +} + +type addonsConfigAddonsConfigPtrType AddonsConfigAddonsConfigArgs + +func AddonsConfigAddonsConfigPtr(v *AddonsConfigAddonsConfigArgs) AddonsConfigAddonsConfigPtrInput { + return (*addonsConfigAddonsConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigPtrType) ToAddonsConfigAddonsConfigPtrOutput() AddonsConfigAddonsConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigPtrType) ToAddonsConfigAddonsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigPtrOutput) +} + +type AddonsConfigAddonsConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigOutput) ToAddonsConfigAddonsConfigOutput() AddonsConfigAddonsConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigOutput) ToAddonsConfigAddonsConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigOutput) ToAddonsConfigAddonsConfigPtrOutput() AddonsConfigAddonsConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigOutput) ToAddonsConfigAddonsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfig { + return &v + }).(AddonsConfigAddonsConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigOutput) AdvancedApiOpsConfig() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigAdvancedApiOpsConfig { + return v.AdvancedApiOpsConfig + }).(AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigOutput) ApiSecurityConfig() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigApiSecurityConfig { + return v.ApiSecurityConfig + }).(AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigOutput) ConnectorsPlatformConfig() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigConnectorsPlatformConfig { + return v.ConnectorsPlatformConfig + }).(AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigOutput) IntegrationConfig() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigIntegrationConfig { + return v.IntegrationConfig + }).(AddonsConfigAddonsConfigIntegrationConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigOutput) MonetizationConfig() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigMonetizationConfig { + return v.MonetizationConfig + }).(AddonsConfigAddonsConfigMonetizationConfigPtrOutput) +} + +type AddonsConfigAddonsConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigPtrOutput) ToAddonsConfigAddonsConfigPtrOutput() AddonsConfigAddonsConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigPtrOutput) ToAddonsConfigAddonsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigPtrOutput) Elem() AddonsConfigAddonsConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) AddonsConfigAddonsConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfig + return ret + }).(AddonsConfigAddonsConfigOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigPtrOutput) AdvancedApiOpsConfig() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigAdvancedApiOpsConfig { + if v == nil { + return nil + } + return v.AdvancedApiOpsConfig + }).(AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigPtrOutput) ApiSecurityConfig() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigApiSecurityConfig { + if v == nil { + return nil + } + return v.ApiSecurityConfig + }).(AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigPtrOutput) ConnectorsPlatformConfig() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigConnectorsPlatformConfig { + if v == nil { + return nil + } + return v.ConnectorsPlatformConfig + }).(AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigPtrOutput) IntegrationConfig() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigIntegrationConfig { + if v == nil { + return nil + } + return v.IntegrationConfig + }).(AddonsConfigAddonsConfigIntegrationConfigPtrOutput) +} + +// Configuration for the Monetization add-on. +// Structure is documented below. +func (o AddonsConfigAddonsConfigPtrOutput) MonetizationConfig() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfig) *AddonsConfigAddonsConfigMonetizationConfig { + if v == nil { + return nil + } + return v.MonetizationConfig + }).(AddonsConfigAddonsConfigMonetizationConfigPtrOutput) +} + +type AddonsConfigAddonsConfigAdvancedApiOpsConfig struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled *bool `pulumi:"enabled"` +} + +// AddonsConfigAddonsConfigAdvancedApiOpsConfigInput is an input type that accepts AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs and AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigAdvancedApiOpsConfigInput` via: +// +// AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{...} +type AddonsConfigAddonsConfigAdvancedApiOpsConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput + ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput +} + +type AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +} + +func (AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigAdvancedApiOpsConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput { + return i.ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) +} + +func (i AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput).ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs, AddonsConfigAddonsConfigAdvancedApiOpsConfigPtr and AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput` via: +// +// AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput + ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput +} + +type addonsConfigAddonsConfigAdvancedApiOpsConfigPtrType AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs + +func AddonsConfigAddonsConfigAdvancedApiOpsConfigPtr(v *AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput { + return (*addonsConfigAddonsConfigAdvancedApiOpsConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigAdvancedApiOpsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigAdvancedApiOpsConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigAdvancedApiOpsConfigPtrType) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigAdvancedApiOpsConfigPtrType) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) +} + +type AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigAdvancedApiOpsConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfigAdvancedApiOpsConfig) *AddonsConfigAddonsConfigAdvancedApiOpsConfig { + return &v + }).(AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigAdvancedApiOpsConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +type AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigAdvancedApiOpsConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput() AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) ToAddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) Elem() AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigAdvancedApiOpsConfig) AddonsConfigAddonsConfigAdvancedApiOpsConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfigAdvancedApiOpsConfig + return ret + }).(AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigAdvancedApiOpsConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +type AddonsConfigAddonsConfigApiSecurityConfig struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled *bool `pulumi:"enabled"` + // Flag that specifies whether the Advanced API Ops add-on is enabled. + ExpiresAt *string `pulumi:"expiresAt"` +} + +// AddonsConfigAddonsConfigApiSecurityConfigInput is an input type that accepts AddonsConfigAddonsConfigApiSecurityConfigArgs and AddonsConfigAddonsConfigApiSecurityConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigApiSecurityConfigInput` via: +// +// AddonsConfigAddonsConfigApiSecurityConfigArgs{...} +type AddonsConfigAddonsConfigApiSecurityConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigApiSecurityConfigOutput() AddonsConfigAddonsConfigApiSecurityConfigOutput + ToAddonsConfigAddonsConfigApiSecurityConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigApiSecurityConfigOutput +} + +type AddonsConfigAddonsConfigApiSecurityConfigArgs struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Flag that specifies whether the Advanced API Ops add-on is enabled. + ExpiresAt pulumi.StringPtrInput `pulumi:"expiresAt"` +} + +func (AddonsConfigAddonsConfigApiSecurityConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigApiSecurityConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigApiSecurityConfigArgs) ToAddonsConfigAddonsConfigApiSecurityConfigOutput() AddonsConfigAddonsConfigApiSecurityConfigOutput { + return i.ToAddonsConfigAddonsConfigApiSecurityConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigApiSecurityConfigArgs) ToAddonsConfigAddonsConfigApiSecurityConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigApiSecurityConfigOutput) +} + +func (i AddonsConfigAddonsConfigApiSecurityConfigArgs) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutput() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigApiSecurityConfigArgs) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigApiSecurityConfigOutput).ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigApiSecurityConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigApiSecurityConfigArgs, AddonsConfigAddonsConfigApiSecurityConfigPtr and AddonsConfigAddonsConfigApiSecurityConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigApiSecurityConfigPtrInput` via: +// +// AddonsConfigAddonsConfigApiSecurityConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigApiSecurityConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutput() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput + ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigApiSecurityConfigPtrOutput +} + +type addonsConfigAddonsConfigApiSecurityConfigPtrType AddonsConfigAddonsConfigApiSecurityConfigArgs + +func AddonsConfigAddonsConfigApiSecurityConfigPtr(v *AddonsConfigAddonsConfigApiSecurityConfigArgs) AddonsConfigAddonsConfigApiSecurityConfigPtrInput { + return (*addonsConfigAddonsConfigApiSecurityConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigApiSecurityConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigApiSecurityConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigApiSecurityConfigPtrType) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutput() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigApiSecurityConfigPtrType) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) +} + +type AddonsConfigAddonsConfigApiSecurityConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigApiSecurityConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigApiSecurityConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) ToAddonsConfigAddonsConfigApiSecurityConfigOutput() AddonsConfigAddonsConfigApiSecurityConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) ToAddonsConfigAddonsConfigApiSecurityConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutput() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfigApiSecurityConfig) *AddonsConfigAddonsConfigApiSecurityConfig { + return &v + }).(AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigApiSecurityConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigApiSecurityConfigOutput) ExpiresAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigApiSecurityConfig) *string { return v.ExpiresAt }).(pulumi.StringPtrOutput) +} + +type AddonsConfigAddonsConfigApiSecurityConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigApiSecurityConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutput() AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) ToAddonsConfigAddonsConfigApiSecurityConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigApiSecurityConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) Elem() AddonsConfigAddonsConfigApiSecurityConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigApiSecurityConfig) AddonsConfigAddonsConfigApiSecurityConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfigApiSecurityConfig + return ret + }).(AddonsConfigAddonsConfigApiSecurityConfigOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigApiSecurityConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigApiSecurityConfigPtrOutput) ExpiresAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigApiSecurityConfig) *string { + if v == nil { + return nil + } + return v.ExpiresAt + }).(pulumi.StringPtrOutput) +} + +type AddonsConfigAddonsConfigConnectorsPlatformConfig struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled *bool `pulumi:"enabled"` + // Flag that specifies whether the Advanced API Ops add-on is enabled. + ExpiresAt *string `pulumi:"expiresAt"` +} + +// AddonsConfigAddonsConfigConnectorsPlatformConfigInput is an input type that accepts AddonsConfigAddonsConfigConnectorsPlatformConfigArgs and AddonsConfigAddonsConfigConnectorsPlatformConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigConnectorsPlatformConfigInput` via: +// +// AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{...} +type AddonsConfigAddonsConfigConnectorsPlatformConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigOutput + ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigOutput +} + +type AddonsConfigAddonsConfigConnectorsPlatformConfigArgs struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Flag that specifies whether the Advanced API Ops add-on is enabled. + ExpiresAt pulumi.StringPtrInput `pulumi:"expiresAt"` +} + +func (AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigConnectorsPlatformConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigOutput { + return i.ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) +} + +func (i AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigConnectorsPlatformConfigOutput).ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigConnectorsPlatformConfigArgs, AddonsConfigAddonsConfigConnectorsPlatformConfigPtr and AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput` via: +// +// AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput + ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput +} + +type addonsConfigAddonsConfigConnectorsPlatformConfigPtrType AddonsConfigAddonsConfigConnectorsPlatformConfigArgs + +func AddonsConfigAddonsConfigConnectorsPlatformConfigPtr(v *AddonsConfigAddonsConfigConnectorsPlatformConfigArgs) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput { + return (*addonsConfigAddonsConfigConnectorsPlatformConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigConnectorsPlatformConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigConnectorsPlatformConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigConnectorsPlatformConfigPtrType) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigConnectorsPlatformConfigPtrType) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) +} + +type AddonsConfigAddonsConfigConnectorsPlatformConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigConnectorsPlatformConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfigConnectorsPlatformConfig) *AddonsConfigAddonsConfigConnectorsPlatformConfig { + return &v + }).(AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigConnectorsPlatformConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) ExpiresAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigConnectorsPlatformConfig) *string { return v.ExpiresAt }).(pulumi.StringPtrOutput) +} + +type AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigConnectorsPlatformConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput() AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) ToAddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) Elem() AddonsConfigAddonsConfigConnectorsPlatformConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigConnectorsPlatformConfig) AddonsConfigAddonsConfigConnectorsPlatformConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfigConnectorsPlatformConfig + return ret + }).(AddonsConfigAddonsConfigConnectorsPlatformConfigOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigConnectorsPlatformConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput) ExpiresAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigConnectorsPlatformConfig) *string { + if v == nil { + return nil + } + return v.ExpiresAt + }).(pulumi.StringPtrOutput) +} + +type AddonsConfigAddonsConfigIntegrationConfig struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled *bool `pulumi:"enabled"` +} + +// AddonsConfigAddonsConfigIntegrationConfigInput is an input type that accepts AddonsConfigAddonsConfigIntegrationConfigArgs and AddonsConfigAddonsConfigIntegrationConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigIntegrationConfigInput` via: +// +// AddonsConfigAddonsConfigIntegrationConfigArgs{...} +type AddonsConfigAddonsConfigIntegrationConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigIntegrationConfigOutput() AddonsConfigAddonsConfigIntegrationConfigOutput + ToAddonsConfigAddonsConfigIntegrationConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigIntegrationConfigOutput +} + +type AddonsConfigAddonsConfigIntegrationConfigArgs struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +} + +func (AddonsConfigAddonsConfigIntegrationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigIntegrationConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigIntegrationConfigArgs) ToAddonsConfigAddonsConfigIntegrationConfigOutput() AddonsConfigAddonsConfigIntegrationConfigOutput { + return i.ToAddonsConfigAddonsConfigIntegrationConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigIntegrationConfigArgs) ToAddonsConfigAddonsConfigIntegrationConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigIntegrationConfigOutput) +} + +func (i AddonsConfigAddonsConfigIntegrationConfigArgs) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutput() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigIntegrationConfigArgs) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigIntegrationConfigOutput).ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigIntegrationConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigIntegrationConfigArgs, AddonsConfigAddonsConfigIntegrationConfigPtr and AddonsConfigAddonsConfigIntegrationConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigIntegrationConfigPtrInput` via: +// +// AddonsConfigAddonsConfigIntegrationConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigIntegrationConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigIntegrationConfigPtrOutput() AddonsConfigAddonsConfigIntegrationConfigPtrOutput + ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigIntegrationConfigPtrOutput +} + +type addonsConfigAddonsConfigIntegrationConfigPtrType AddonsConfigAddonsConfigIntegrationConfigArgs + +func AddonsConfigAddonsConfigIntegrationConfigPtr(v *AddonsConfigAddonsConfigIntegrationConfigArgs) AddonsConfigAddonsConfigIntegrationConfigPtrInput { + return (*addonsConfigAddonsConfigIntegrationConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigIntegrationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigIntegrationConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigIntegrationConfigPtrType) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutput() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigIntegrationConfigPtrType) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigIntegrationConfigPtrOutput) +} + +type AddonsConfigAddonsConfigIntegrationConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigIntegrationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigIntegrationConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigIntegrationConfigOutput) ToAddonsConfigAddonsConfigIntegrationConfigOutput() AddonsConfigAddonsConfigIntegrationConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigIntegrationConfigOutput) ToAddonsConfigAddonsConfigIntegrationConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigIntegrationConfigOutput) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutput() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigIntegrationConfigOutput) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfigIntegrationConfig) *AddonsConfigAddonsConfigIntegrationConfig { + return &v + }).(AddonsConfigAddonsConfigIntegrationConfigPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigIntegrationConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigIntegrationConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +type AddonsConfigAddonsConfigIntegrationConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigIntegrationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigIntegrationConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigIntegrationConfigPtrOutput) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutput() AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigIntegrationConfigPtrOutput) ToAddonsConfigAddonsConfigIntegrationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigIntegrationConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigIntegrationConfigPtrOutput) Elem() AddonsConfigAddonsConfigIntegrationConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigIntegrationConfig) AddonsConfigAddonsConfigIntegrationConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfigIntegrationConfig + return ret + }).(AddonsConfigAddonsConfigIntegrationConfigOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigIntegrationConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigIntegrationConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +type AddonsConfigAddonsConfigMonetizationConfig struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled *bool `pulumi:"enabled"` +} + +// AddonsConfigAddonsConfigMonetizationConfigInput is an input type that accepts AddonsConfigAddonsConfigMonetizationConfigArgs and AddonsConfigAddonsConfigMonetizationConfigOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigMonetizationConfigInput` via: +// +// AddonsConfigAddonsConfigMonetizationConfigArgs{...} +type AddonsConfigAddonsConfigMonetizationConfigInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigMonetizationConfigOutput() AddonsConfigAddonsConfigMonetizationConfigOutput + ToAddonsConfigAddonsConfigMonetizationConfigOutputWithContext(context.Context) AddonsConfigAddonsConfigMonetizationConfigOutput +} + +type AddonsConfigAddonsConfigMonetizationConfigArgs struct { + // Flag that specifies whether the Advanced API Ops add-on is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +} + +func (AddonsConfigAddonsConfigMonetizationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfig)(nil)).Elem() +} + +func (i AddonsConfigAddonsConfigMonetizationConfigArgs) ToAddonsConfigAddonsConfigMonetizationConfigOutput() AddonsConfigAddonsConfigMonetizationConfigOutput { + return i.ToAddonsConfigAddonsConfigMonetizationConfigOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigMonetizationConfigArgs) ToAddonsConfigAddonsConfigMonetizationConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigMonetizationConfigOutput) +} + +func (i AddonsConfigAddonsConfigMonetizationConfigArgs) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutput() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(context.Background()) +} + +func (i AddonsConfigAddonsConfigMonetizationConfigArgs) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigMonetizationConfigOutput).ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(ctx) +} + +// AddonsConfigAddonsConfigMonetizationConfigPtrInput is an input type that accepts AddonsConfigAddonsConfigMonetizationConfigArgs, AddonsConfigAddonsConfigMonetizationConfigPtr and AddonsConfigAddonsConfigMonetizationConfigPtrOutput values. +// You can construct a concrete instance of `AddonsConfigAddonsConfigMonetizationConfigPtrInput` via: +// +// AddonsConfigAddonsConfigMonetizationConfigArgs{...} +// +// or: +// +// nil +type AddonsConfigAddonsConfigMonetizationConfigPtrInput interface { + pulumi.Input + + ToAddonsConfigAddonsConfigMonetizationConfigPtrOutput() AddonsConfigAddonsConfigMonetizationConfigPtrOutput + ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(context.Context) AddonsConfigAddonsConfigMonetizationConfigPtrOutput +} + +type addonsConfigAddonsConfigMonetizationConfigPtrType AddonsConfigAddonsConfigMonetizationConfigArgs + +func AddonsConfigAddonsConfigMonetizationConfigPtr(v *AddonsConfigAddonsConfigMonetizationConfigArgs) AddonsConfigAddonsConfigMonetizationConfigPtrInput { + return (*addonsConfigAddonsConfigMonetizationConfigPtrType)(v) +} + +func (*addonsConfigAddonsConfigMonetizationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigMonetizationConfig)(nil)).Elem() +} + +func (i *addonsConfigAddonsConfigMonetizationConfigPtrType) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutput() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return i.ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(context.Background()) +} + +func (i *addonsConfigAddonsConfigMonetizationConfigPtrType) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddonsConfigAddonsConfigMonetizationConfigPtrOutput) +} + +type AddonsConfigAddonsConfigMonetizationConfigOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigMonetizationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigMonetizationConfigOutput) ToAddonsConfigAddonsConfigMonetizationConfigOutput() AddonsConfigAddonsConfigMonetizationConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigMonetizationConfigOutput) ToAddonsConfigAddonsConfigMonetizationConfigOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigOutput { + return o +} + +func (o AddonsConfigAddonsConfigMonetizationConfigOutput) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutput() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o.ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(context.Background()) +} + +func (o AddonsConfigAddonsConfigMonetizationConfigOutput) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AddonsConfigAddonsConfigMonetizationConfig) *AddonsConfigAddonsConfigMonetizationConfig { + return &v + }).(AddonsConfigAddonsConfigMonetizationConfigPtrOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigMonetizationConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AddonsConfigAddonsConfigMonetizationConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +type AddonsConfigAddonsConfigMonetizationConfigPtrOutput struct{ *pulumi.OutputState } + +func (AddonsConfigAddonsConfigMonetizationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AddonsConfigAddonsConfigMonetizationConfig)(nil)).Elem() +} + +func (o AddonsConfigAddonsConfigMonetizationConfigPtrOutput) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutput() AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigMonetizationConfigPtrOutput) ToAddonsConfigAddonsConfigMonetizationConfigPtrOutputWithContext(ctx context.Context) AddonsConfigAddonsConfigMonetizationConfigPtrOutput { + return o +} + +func (o AddonsConfigAddonsConfigMonetizationConfigPtrOutput) Elem() AddonsConfigAddonsConfigMonetizationConfigOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigMonetizationConfig) AddonsConfigAddonsConfigMonetizationConfig { + if v != nil { + return *v + } + var ret AddonsConfigAddonsConfigMonetizationConfig + return ret + }).(AddonsConfigAddonsConfigMonetizationConfigOutput) +} + +// Flag that specifies whether the Advanced API Ops add-on is enabled. +func (o AddonsConfigAddonsConfigMonetizationConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AddonsConfigAddonsConfigMonetizationConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + type EnvironmentIamBindingCondition struct { Description *string `pulumi:"description"` Expression string `pulumi:"expression"` @@ -779,6 +1745,18 @@ func (o OrganizationPropertiesPropertyArrayOutput) Index(i pulumi.IntInput) Orga } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigAdvancedApiOpsConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigApiSecurityConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigApiSecurityConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigApiSecurityConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigApiSecurityConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigConnectorsPlatformConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigConnectorsPlatformConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigConnectorsPlatformConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigIntegrationConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigIntegrationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigIntegrationConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigIntegrationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfigInput)(nil)).Elem(), AddonsConfigAddonsConfigMonetizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AddonsConfigAddonsConfigMonetizationConfigPtrInput)(nil)).Elem(), AddonsConfigAddonsConfigMonetizationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentIamBindingConditionInput)(nil)).Elem(), EnvironmentIamBindingConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentIamBindingConditionPtrInput)(nil)).Elem(), EnvironmentIamBindingConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentIamMemberConditionInput)(nil)).Elem(), EnvironmentIamMemberConditionArgs{}) @@ -789,6 +1767,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OrganizationPropertiesPtrInput)(nil)).Elem(), OrganizationPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OrganizationPropertiesPropertyInput)(nil)).Elem(), OrganizationPropertiesPropertyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OrganizationPropertiesPropertyArrayInput)(nil)).Elem(), OrganizationPropertiesPropertyArray{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigPtrOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigAdvancedApiOpsConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigAdvancedApiOpsConfigPtrOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigApiSecurityConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigApiSecurityConfigPtrOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigConnectorsPlatformConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigConnectorsPlatformConfigPtrOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigIntegrationConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigIntegrationConfigPtrOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigMonetizationConfigOutput{}) + pulumi.RegisterOutputType(AddonsConfigAddonsConfigMonetizationConfigPtrOutput{}) pulumi.RegisterOutputType(EnvironmentIamBindingConditionOutput{}) pulumi.RegisterOutputType(EnvironmentIamBindingConditionPtrOutput{}) pulumi.RegisterOutputType(EnvironmentIamMemberConditionOutput{}) diff --git a/sdk/go/gcp/cloudbuildv2/connectionIAMBinding.go b/sdk/go/gcp/cloudbuildv2/connectionIAMBinding.go new file mode 100644 index 0000000000..e50b13abe3 --- /dev/null +++ b/sdk/go/gcp/cloudbuildv2/connectionIAMBinding.go @@ -0,0 +1,334 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudbuildv2 + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" +// +// ``` +// +// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" +// +// ``` +// +// IAM policy imports use the identifier of the resource in question, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} +// +// ``` +// +// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the +// +// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. +type ConnectionIAMBinding struct { + pulumi.CustomResourceState + + Condition ConnectionIAMBindingConditionPtrOutput `pulumi:"condition"` + // (Computed) The etag of the IAM policy. + Etag pulumi.StringOutput `pulumi:"etag"` + Location pulumi.StringOutput `pulumi:"location"` + Members pulumi.StringArrayOutput `pulumi:"members"` + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringOutput `pulumi:"role"` +} + +// NewConnectionIAMBinding registers a new resource with the given unique name, arguments, and options. +func NewConnectionIAMBinding(ctx *pulumi.Context, + name string, args *ConnectionIAMBindingArgs, opts ...pulumi.ResourceOption) (*ConnectionIAMBinding, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Members == nil { + return nil, errors.New("invalid value for required argument 'Members'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + var resource ConnectionIAMBinding + err := ctx.RegisterResource("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetConnectionIAMBinding gets an existing ConnectionIAMBinding resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetConnectionIAMBinding(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ConnectionIAMBindingState, opts ...pulumi.ResourceOption) (*ConnectionIAMBinding, error) { + var resource ConnectionIAMBinding + err := ctx.ReadResource("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ConnectionIAMBinding resources. +type connectionIAMBindingState struct { + Condition *ConnectionIAMBindingCondition `pulumi:"condition"` + // (Computed) The etag of the IAM policy. + Etag *string `pulumi:"etag"` + Location *string `pulumi:"location"` + Members []string `pulumi:"members"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role *string `pulumi:"role"` +} + +type ConnectionIAMBindingState struct { + Condition ConnectionIAMBindingConditionPtrInput + // (Computed) The etag of the IAM policy. + Etag pulumi.StringPtrInput + Location pulumi.StringPtrInput + Members pulumi.StringArrayInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringPtrInput +} + +func (ConnectionIAMBindingState) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMBindingState)(nil)).Elem() +} + +type connectionIAMBindingArgs struct { + Condition *ConnectionIAMBindingCondition `pulumi:"condition"` + Location *string `pulumi:"location"` + Members []string `pulumi:"members"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role string `pulumi:"role"` +} + +// The set of arguments for constructing a ConnectionIAMBinding resource. +type ConnectionIAMBindingArgs struct { + Condition ConnectionIAMBindingConditionPtrInput + Location pulumi.StringPtrInput + Members pulumi.StringArrayInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringInput +} + +func (ConnectionIAMBindingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMBindingArgs)(nil)).Elem() +} + +type ConnectionIAMBindingInput interface { + pulumi.Input + + ToConnectionIAMBindingOutput() ConnectionIAMBindingOutput + ToConnectionIAMBindingOutputWithContext(ctx context.Context) ConnectionIAMBindingOutput +} + +func (*ConnectionIAMBinding) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMBinding)(nil)).Elem() +} + +func (i *ConnectionIAMBinding) ToConnectionIAMBindingOutput() ConnectionIAMBindingOutput { + return i.ToConnectionIAMBindingOutputWithContext(context.Background()) +} + +func (i *ConnectionIAMBinding) ToConnectionIAMBindingOutputWithContext(ctx context.Context) ConnectionIAMBindingOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingOutput) +} + +// ConnectionIAMBindingArrayInput is an input type that accepts ConnectionIAMBindingArray and ConnectionIAMBindingArrayOutput values. +// You can construct a concrete instance of `ConnectionIAMBindingArrayInput` via: +// +// ConnectionIAMBindingArray{ ConnectionIAMBindingArgs{...} } +type ConnectionIAMBindingArrayInput interface { + pulumi.Input + + ToConnectionIAMBindingArrayOutput() ConnectionIAMBindingArrayOutput + ToConnectionIAMBindingArrayOutputWithContext(context.Context) ConnectionIAMBindingArrayOutput +} + +type ConnectionIAMBindingArray []ConnectionIAMBindingInput + +func (ConnectionIAMBindingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMBinding)(nil)).Elem() +} + +func (i ConnectionIAMBindingArray) ToConnectionIAMBindingArrayOutput() ConnectionIAMBindingArrayOutput { + return i.ToConnectionIAMBindingArrayOutputWithContext(context.Background()) +} + +func (i ConnectionIAMBindingArray) ToConnectionIAMBindingArrayOutputWithContext(ctx context.Context) ConnectionIAMBindingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingArrayOutput) +} + +// ConnectionIAMBindingMapInput is an input type that accepts ConnectionIAMBindingMap and ConnectionIAMBindingMapOutput values. +// You can construct a concrete instance of `ConnectionIAMBindingMapInput` via: +// +// ConnectionIAMBindingMap{ "key": ConnectionIAMBindingArgs{...} } +type ConnectionIAMBindingMapInput interface { + pulumi.Input + + ToConnectionIAMBindingMapOutput() ConnectionIAMBindingMapOutput + ToConnectionIAMBindingMapOutputWithContext(context.Context) ConnectionIAMBindingMapOutput +} + +type ConnectionIAMBindingMap map[string]ConnectionIAMBindingInput + +func (ConnectionIAMBindingMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMBinding)(nil)).Elem() +} + +func (i ConnectionIAMBindingMap) ToConnectionIAMBindingMapOutput() ConnectionIAMBindingMapOutput { + return i.ToConnectionIAMBindingMapOutputWithContext(context.Background()) +} + +func (i ConnectionIAMBindingMap) ToConnectionIAMBindingMapOutputWithContext(ctx context.Context) ConnectionIAMBindingMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingMapOutput) +} + +type ConnectionIAMBindingOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMBindingOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMBinding)(nil)).Elem() +} + +func (o ConnectionIAMBindingOutput) ToConnectionIAMBindingOutput() ConnectionIAMBindingOutput { + return o +} + +func (o ConnectionIAMBindingOutput) ToConnectionIAMBindingOutputWithContext(ctx context.Context) ConnectionIAMBindingOutput { + return o +} + +func (o ConnectionIAMBindingOutput) Condition() ConnectionIAMBindingConditionPtrOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) ConnectionIAMBindingConditionPtrOutput { return v.Condition }).(ConnectionIAMBindingConditionPtrOutput) +} + +// (Computed) The etag of the IAM policy. +func (o ConnectionIAMBindingOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +func (o ConnectionIAMBindingOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +func (o ConnectionIAMBindingOutput) Members() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringArrayOutput { return v.Members }).(pulumi.StringArrayOutput) +} + +// Used to find the parent resource to bind the IAM policy to +func (o ConnectionIAMBindingOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. +func (o ConnectionIAMBindingOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The role that should be applied. Only one +// `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format +// `[projects|organizations]/{parent-name}/roles/{role-name}`. +func (o ConnectionIAMBindingOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMBinding) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +type ConnectionIAMBindingArrayOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMBindingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMBinding)(nil)).Elem() +} + +func (o ConnectionIAMBindingArrayOutput) ToConnectionIAMBindingArrayOutput() ConnectionIAMBindingArrayOutput { + return o +} + +func (o ConnectionIAMBindingArrayOutput) ToConnectionIAMBindingArrayOutputWithContext(ctx context.Context) ConnectionIAMBindingArrayOutput { + return o +} + +func (o ConnectionIAMBindingArrayOutput) Index(i pulumi.IntInput) ConnectionIAMBindingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ConnectionIAMBinding { + return vs[0].([]*ConnectionIAMBinding)[vs[1].(int)] + }).(ConnectionIAMBindingOutput) +} + +type ConnectionIAMBindingMapOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMBindingMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMBinding)(nil)).Elem() +} + +func (o ConnectionIAMBindingMapOutput) ToConnectionIAMBindingMapOutput() ConnectionIAMBindingMapOutput { + return o +} + +func (o ConnectionIAMBindingMapOutput) ToConnectionIAMBindingMapOutputWithContext(ctx context.Context) ConnectionIAMBindingMapOutput { + return o +} + +func (o ConnectionIAMBindingMapOutput) MapIndex(k pulumi.StringInput) ConnectionIAMBindingOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ConnectionIAMBinding { + return vs[0].(map[string]*ConnectionIAMBinding)[vs[1].(string)] + }).(ConnectionIAMBindingOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMBindingInput)(nil)).Elem(), &ConnectionIAMBinding{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMBindingArrayInput)(nil)).Elem(), ConnectionIAMBindingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMBindingMapInput)(nil)).Elem(), ConnectionIAMBindingMap{}) + pulumi.RegisterOutputType(ConnectionIAMBindingOutput{}) + pulumi.RegisterOutputType(ConnectionIAMBindingArrayOutput{}) + pulumi.RegisterOutputType(ConnectionIAMBindingMapOutput{}) +} diff --git a/sdk/go/gcp/cloudbuildv2/connectionIAMMember.go b/sdk/go/gcp/cloudbuildv2/connectionIAMMember.go new file mode 100644 index 0000000000..5ccf534812 --- /dev/null +++ b/sdk/go/gcp/cloudbuildv2/connectionIAMMember.go @@ -0,0 +1,334 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudbuildv2 + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" +// +// ``` +// +// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" +// +// ``` +// +// IAM policy imports use the identifier of the resource in question, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} +// +// ``` +// +// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the +// +// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. +type ConnectionIAMMember struct { + pulumi.CustomResourceState + + Condition ConnectionIAMMemberConditionPtrOutput `pulumi:"condition"` + // (Computed) The etag of the IAM policy. + Etag pulumi.StringOutput `pulumi:"etag"` + Location pulumi.StringOutput `pulumi:"location"` + Member pulumi.StringOutput `pulumi:"member"` + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringOutput `pulumi:"role"` +} + +// NewConnectionIAMMember registers a new resource with the given unique name, arguments, and options. +func NewConnectionIAMMember(ctx *pulumi.Context, + name string, args *ConnectionIAMMemberArgs, opts ...pulumi.ResourceOption) (*ConnectionIAMMember, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Member == nil { + return nil, errors.New("invalid value for required argument 'Member'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + var resource ConnectionIAMMember + err := ctx.RegisterResource("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetConnectionIAMMember gets an existing ConnectionIAMMember resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetConnectionIAMMember(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ConnectionIAMMemberState, opts ...pulumi.ResourceOption) (*ConnectionIAMMember, error) { + var resource ConnectionIAMMember + err := ctx.ReadResource("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ConnectionIAMMember resources. +type connectionIAMMemberState struct { + Condition *ConnectionIAMMemberCondition `pulumi:"condition"` + // (Computed) The etag of the IAM policy. + Etag *string `pulumi:"etag"` + Location *string `pulumi:"location"` + Member *string `pulumi:"member"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role *string `pulumi:"role"` +} + +type ConnectionIAMMemberState struct { + Condition ConnectionIAMMemberConditionPtrInput + // (Computed) The etag of the IAM policy. + Etag pulumi.StringPtrInput + Location pulumi.StringPtrInput + Member pulumi.StringPtrInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringPtrInput +} + +func (ConnectionIAMMemberState) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMMemberState)(nil)).Elem() +} + +type connectionIAMMemberArgs struct { + Condition *ConnectionIAMMemberCondition `pulumi:"condition"` + Location *string `pulumi:"location"` + Member string `pulumi:"member"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role string `pulumi:"role"` +} + +// The set of arguments for constructing a ConnectionIAMMember resource. +type ConnectionIAMMemberArgs struct { + Condition ConnectionIAMMemberConditionPtrInput + Location pulumi.StringPtrInput + Member pulumi.StringInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput + // The role that should be applied. Only one + // `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + // `[projects|organizations]/{parent-name}/roles/{role-name}`. + Role pulumi.StringInput +} + +func (ConnectionIAMMemberArgs) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMMemberArgs)(nil)).Elem() +} + +type ConnectionIAMMemberInput interface { + pulumi.Input + + ToConnectionIAMMemberOutput() ConnectionIAMMemberOutput + ToConnectionIAMMemberOutputWithContext(ctx context.Context) ConnectionIAMMemberOutput +} + +func (*ConnectionIAMMember) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMMember)(nil)).Elem() +} + +func (i *ConnectionIAMMember) ToConnectionIAMMemberOutput() ConnectionIAMMemberOutput { + return i.ToConnectionIAMMemberOutputWithContext(context.Background()) +} + +func (i *ConnectionIAMMember) ToConnectionIAMMemberOutputWithContext(ctx context.Context) ConnectionIAMMemberOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberOutput) +} + +// ConnectionIAMMemberArrayInput is an input type that accepts ConnectionIAMMemberArray and ConnectionIAMMemberArrayOutput values. +// You can construct a concrete instance of `ConnectionIAMMemberArrayInput` via: +// +// ConnectionIAMMemberArray{ ConnectionIAMMemberArgs{...} } +type ConnectionIAMMemberArrayInput interface { + pulumi.Input + + ToConnectionIAMMemberArrayOutput() ConnectionIAMMemberArrayOutput + ToConnectionIAMMemberArrayOutputWithContext(context.Context) ConnectionIAMMemberArrayOutput +} + +type ConnectionIAMMemberArray []ConnectionIAMMemberInput + +func (ConnectionIAMMemberArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMMember)(nil)).Elem() +} + +func (i ConnectionIAMMemberArray) ToConnectionIAMMemberArrayOutput() ConnectionIAMMemberArrayOutput { + return i.ToConnectionIAMMemberArrayOutputWithContext(context.Background()) +} + +func (i ConnectionIAMMemberArray) ToConnectionIAMMemberArrayOutputWithContext(ctx context.Context) ConnectionIAMMemberArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberArrayOutput) +} + +// ConnectionIAMMemberMapInput is an input type that accepts ConnectionIAMMemberMap and ConnectionIAMMemberMapOutput values. +// You can construct a concrete instance of `ConnectionIAMMemberMapInput` via: +// +// ConnectionIAMMemberMap{ "key": ConnectionIAMMemberArgs{...} } +type ConnectionIAMMemberMapInput interface { + pulumi.Input + + ToConnectionIAMMemberMapOutput() ConnectionIAMMemberMapOutput + ToConnectionIAMMemberMapOutputWithContext(context.Context) ConnectionIAMMemberMapOutput +} + +type ConnectionIAMMemberMap map[string]ConnectionIAMMemberInput + +func (ConnectionIAMMemberMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMMember)(nil)).Elem() +} + +func (i ConnectionIAMMemberMap) ToConnectionIAMMemberMapOutput() ConnectionIAMMemberMapOutput { + return i.ToConnectionIAMMemberMapOutputWithContext(context.Background()) +} + +func (i ConnectionIAMMemberMap) ToConnectionIAMMemberMapOutputWithContext(ctx context.Context) ConnectionIAMMemberMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberMapOutput) +} + +type ConnectionIAMMemberOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMMemberOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMMember)(nil)).Elem() +} + +func (o ConnectionIAMMemberOutput) ToConnectionIAMMemberOutput() ConnectionIAMMemberOutput { + return o +} + +func (o ConnectionIAMMemberOutput) ToConnectionIAMMemberOutputWithContext(ctx context.Context) ConnectionIAMMemberOutput { + return o +} + +func (o ConnectionIAMMemberOutput) Condition() ConnectionIAMMemberConditionPtrOutput { + return o.ApplyT(func(v *ConnectionIAMMember) ConnectionIAMMemberConditionPtrOutput { return v.Condition }).(ConnectionIAMMemberConditionPtrOutput) +} + +// (Computed) The etag of the IAM policy. +func (o ConnectionIAMMemberOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +func (o ConnectionIAMMemberOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +func (o ConnectionIAMMemberOutput) Member() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Member }).(pulumi.StringOutput) +} + +// Used to find the parent resource to bind the IAM policy to +func (o ConnectionIAMMemberOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. +func (o ConnectionIAMMemberOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The role that should be applied. Only one +// `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format +// `[projects|organizations]/{parent-name}/roles/{role-name}`. +func (o ConnectionIAMMemberOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMMember) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +type ConnectionIAMMemberArrayOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMMemberArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMMember)(nil)).Elem() +} + +func (o ConnectionIAMMemberArrayOutput) ToConnectionIAMMemberArrayOutput() ConnectionIAMMemberArrayOutput { + return o +} + +func (o ConnectionIAMMemberArrayOutput) ToConnectionIAMMemberArrayOutputWithContext(ctx context.Context) ConnectionIAMMemberArrayOutput { + return o +} + +func (o ConnectionIAMMemberArrayOutput) Index(i pulumi.IntInput) ConnectionIAMMemberOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ConnectionIAMMember { + return vs[0].([]*ConnectionIAMMember)[vs[1].(int)] + }).(ConnectionIAMMemberOutput) +} + +type ConnectionIAMMemberMapOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMMemberMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMMember)(nil)).Elem() +} + +func (o ConnectionIAMMemberMapOutput) ToConnectionIAMMemberMapOutput() ConnectionIAMMemberMapOutput { + return o +} + +func (o ConnectionIAMMemberMapOutput) ToConnectionIAMMemberMapOutputWithContext(ctx context.Context) ConnectionIAMMemberMapOutput { + return o +} + +func (o ConnectionIAMMemberMapOutput) MapIndex(k pulumi.StringInput) ConnectionIAMMemberOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ConnectionIAMMember { + return vs[0].(map[string]*ConnectionIAMMember)[vs[1].(string)] + }).(ConnectionIAMMemberOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMMemberInput)(nil)).Elem(), &ConnectionIAMMember{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMMemberArrayInput)(nil)).Elem(), ConnectionIAMMemberArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMMemberMapInput)(nil)).Elem(), ConnectionIAMMemberMap{}) + pulumi.RegisterOutputType(ConnectionIAMMemberOutput{}) + pulumi.RegisterOutputType(ConnectionIAMMemberArrayOutput{}) + pulumi.RegisterOutputType(ConnectionIAMMemberMapOutput{}) +} diff --git a/sdk/go/gcp/cloudbuildv2/connectionIAMPolicy.go b/sdk/go/gcp/cloudbuildv2/connectionIAMPolicy.go new file mode 100644 index 0000000000..fb14cbb88b --- /dev/null +++ b/sdk/go/gcp/cloudbuildv2/connectionIAMPolicy.go @@ -0,0 +1,307 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudbuildv2 + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" +// +// ``` +// +// IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" +// +// ``` +// +// IAM policy imports use the identifier of the resource in question, e.g. +// +// ```sh +// +// $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} +// +// ``` +// +// -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the +// +// full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. +type ConnectionIAMPolicy struct { + pulumi.CustomResourceState + + // (Computed) The etag of the IAM policy. + Etag pulumi.StringOutput `pulumi:"etag"` + Location pulumi.StringOutput `pulumi:"location"` + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringOutput `pulumi:"name"` + // The policy data generated by + // a `organizations.getIAMPolicy` data source. + PolicyData pulumi.StringOutput `pulumi:"policyData"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` +} + +// NewConnectionIAMPolicy registers a new resource with the given unique name, arguments, and options. +func NewConnectionIAMPolicy(ctx *pulumi.Context, + name string, args *ConnectionIAMPolicyArgs, opts ...pulumi.ResourceOption) (*ConnectionIAMPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyData == nil { + return nil, errors.New("invalid value for required argument 'PolicyData'") + } + var resource ConnectionIAMPolicy + err := ctx.RegisterResource("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetConnectionIAMPolicy gets an existing ConnectionIAMPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetConnectionIAMPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ConnectionIAMPolicyState, opts ...pulumi.ResourceOption) (*ConnectionIAMPolicy, error) { + var resource ConnectionIAMPolicy + err := ctx.ReadResource("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ConnectionIAMPolicy resources. +type connectionIAMPolicyState struct { + // (Computed) The etag of the IAM policy. + Etag *string `pulumi:"etag"` + Location *string `pulumi:"location"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The policy data generated by + // a `organizations.getIAMPolicy` data source. + PolicyData *string `pulumi:"policyData"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` +} + +type ConnectionIAMPolicyState struct { + // (Computed) The etag of the IAM policy. + Etag pulumi.StringPtrInput + Location pulumi.StringPtrInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The policy data generated by + // a `organizations.getIAMPolicy` data source. + PolicyData pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput +} + +func (ConnectionIAMPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMPolicyState)(nil)).Elem() +} + +type connectionIAMPolicyArgs struct { + Location *string `pulumi:"location"` + // Used to find the parent resource to bind the IAM policy to + Name *string `pulumi:"name"` + // The policy data generated by + // a `organizations.getIAMPolicy` data source. + PolicyData string `pulumi:"policyData"` + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project *string `pulumi:"project"` +} + +// The set of arguments for constructing a ConnectionIAMPolicy resource. +type ConnectionIAMPolicyArgs struct { + Location pulumi.StringPtrInput + // Used to find the parent resource to bind the IAM policy to + Name pulumi.StringPtrInput + // The policy data generated by + // a `organizations.getIAMPolicy` data source. + PolicyData pulumi.StringInput + // The ID of the project in which the resource belongs. + // If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + Project pulumi.StringPtrInput +} + +func (ConnectionIAMPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*connectionIAMPolicyArgs)(nil)).Elem() +} + +type ConnectionIAMPolicyInput interface { + pulumi.Input + + ToConnectionIAMPolicyOutput() ConnectionIAMPolicyOutput + ToConnectionIAMPolicyOutputWithContext(ctx context.Context) ConnectionIAMPolicyOutput +} + +func (*ConnectionIAMPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMPolicy)(nil)).Elem() +} + +func (i *ConnectionIAMPolicy) ToConnectionIAMPolicyOutput() ConnectionIAMPolicyOutput { + return i.ToConnectionIAMPolicyOutputWithContext(context.Background()) +} + +func (i *ConnectionIAMPolicy) ToConnectionIAMPolicyOutputWithContext(ctx context.Context) ConnectionIAMPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMPolicyOutput) +} + +// ConnectionIAMPolicyArrayInput is an input type that accepts ConnectionIAMPolicyArray and ConnectionIAMPolicyArrayOutput values. +// You can construct a concrete instance of `ConnectionIAMPolicyArrayInput` via: +// +// ConnectionIAMPolicyArray{ ConnectionIAMPolicyArgs{...} } +type ConnectionIAMPolicyArrayInput interface { + pulumi.Input + + ToConnectionIAMPolicyArrayOutput() ConnectionIAMPolicyArrayOutput + ToConnectionIAMPolicyArrayOutputWithContext(context.Context) ConnectionIAMPolicyArrayOutput +} + +type ConnectionIAMPolicyArray []ConnectionIAMPolicyInput + +func (ConnectionIAMPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMPolicy)(nil)).Elem() +} + +func (i ConnectionIAMPolicyArray) ToConnectionIAMPolicyArrayOutput() ConnectionIAMPolicyArrayOutput { + return i.ToConnectionIAMPolicyArrayOutputWithContext(context.Background()) +} + +func (i ConnectionIAMPolicyArray) ToConnectionIAMPolicyArrayOutputWithContext(ctx context.Context) ConnectionIAMPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMPolicyArrayOutput) +} + +// ConnectionIAMPolicyMapInput is an input type that accepts ConnectionIAMPolicyMap and ConnectionIAMPolicyMapOutput values. +// You can construct a concrete instance of `ConnectionIAMPolicyMapInput` via: +// +// ConnectionIAMPolicyMap{ "key": ConnectionIAMPolicyArgs{...} } +type ConnectionIAMPolicyMapInput interface { + pulumi.Input + + ToConnectionIAMPolicyMapOutput() ConnectionIAMPolicyMapOutput + ToConnectionIAMPolicyMapOutputWithContext(context.Context) ConnectionIAMPolicyMapOutput +} + +type ConnectionIAMPolicyMap map[string]ConnectionIAMPolicyInput + +func (ConnectionIAMPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMPolicy)(nil)).Elem() +} + +func (i ConnectionIAMPolicyMap) ToConnectionIAMPolicyMapOutput() ConnectionIAMPolicyMapOutput { + return i.ToConnectionIAMPolicyMapOutputWithContext(context.Background()) +} + +func (i ConnectionIAMPolicyMap) ToConnectionIAMPolicyMapOutputWithContext(ctx context.Context) ConnectionIAMPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMPolicyMapOutput) +} + +type ConnectionIAMPolicyOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMPolicy)(nil)).Elem() +} + +func (o ConnectionIAMPolicyOutput) ToConnectionIAMPolicyOutput() ConnectionIAMPolicyOutput { + return o +} + +func (o ConnectionIAMPolicyOutput) ToConnectionIAMPolicyOutputWithContext(ctx context.Context) ConnectionIAMPolicyOutput { + return o +} + +// (Computed) The etag of the IAM policy. +func (o ConnectionIAMPolicyOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +func (o ConnectionIAMPolicyOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMPolicy) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Used to find the parent resource to bind the IAM policy to +func (o ConnectionIAMPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The policy data generated by +// a `organizations.getIAMPolicy` data source. +func (o ConnectionIAMPolicyOutput) PolicyData() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMPolicy) pulumi.StringOutput { return v.PolicyData }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. +func (o ConnectionIAMPolicyOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectionIAMPolicy) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +type ConnectionIAMPolicyArrayOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ConnectionIAMPolicy)(nil)).Elem() +} + +func (o ConnectionIAMPolicyArrayOutput) ToConnectionIAMPolicyArrayOutput() ConnectionIAMPolicyArrayOutput { + return o +} + +func (o ConnectionIAMPolicyArrayOutput) ToConnectionIAMPolicyArrayOutputWithContext(ctx context.Context) ConnectionIAMPolicyArrayOutput { + return o +} + +func (o ConnectionIAMPolicyArrayOutput) Index(i pulumi.IntInput) ConnectionIAMPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ConnectionIAMPolicy { + return vs[0].([]*ConnectionIAMPolicy)[vs[1].(int)] + }).(ConnectionIAMPolicyOutput) +} + +type ConnectionIAMPolicyMapOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ConnectionIAMPolicy)(nil)).Elem() +} + +func (o ConnectionIAMPolicyMapOutput) ToConnectionIAMPolicyMapOutput() ConnectionIAMPolicyMapOutput { + return o +} + +func (o ConnectionIAMPolicyMapOutput) ToConnectionIAMPolicyMapOutputWithContext(ctx context.Context) ConnectionIAMPolicyMapOutput { + return o +} + +func (o ConnectionIAMPolicyMapOutput) MapIndex(k pulumi.StringInput) ConnectionIAMPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ConnectionIAMPolicy { + return vs[0].(map[string]*ConnectionIAMPolicy)[vs[1].(string)] + }).(ConnectionIAMPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMPolicyInput)(nil)).Elem(), &ConnectionIAMPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMPolicyArrayInput)(nil)).Elem(), ConnectionIAMPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMPolicyMapInput)(nil)).Elem(), ConnectionIAMPolicyMap{}) + pulumi.RegisterOutputType(ConnectionIAMPolicyOutput{}) + pulumi.RegisterOutputType(ConnectionIAMPolicyArrayOutput{}) + pulumi.RegisterOutputType(ConnectionIAMPolicyMapOutput{}) +} diff --git a/sdk/go/gcp/cloudbuildv2/init.go b/sdk/go/gcp/cloudbuildv2/init.go index bf05bc30d9..30727730fc 100644 --- a/sdk/go/gcp/cloudbuildv2/init.go +++ b/sdk/go/gcp/cloudbuildv2/init.go @@ -23,6 +23,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "gcp:cloudbuildv2/connection:Connection": r = &Connection{} + case "gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding": + r = &ConnectionIAMBinding{} + case "gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember": + r = &ConnectionIAMMember{} + case "gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy": + r = &ConnectionIAMPolicy{} case "gcp:cloudbuildv2/repository:Repository": r = &Repository{} default: @@ -43,6 +49,21 @@ func init() { "cloudbuildv2/connection", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "cloudbuildv2/connectionIAMBinding", + &module{version}, + ) + pulumi.RegisterResourceModule( + "gcp", + "cloudbuildv2/connectionIAMMember", + &module{version}, + ) + pulumi.RegisterResourceModule( + "gcp", + "cloudbuildv2/connectionIAMPolicy", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "cloudbuildv2/repository", diff --git a/sdk/go/gcp/cloudbuildv2/pulumiTypes.go b/sdk/go/gcp/cloudbuildv2/pulumiTypes.go index d5d781e71a..5af5a81407 100644 --- a/sdk/go/gcp/cloudbuildv2/pulumiTypes.go +++ b/sdk/go/gcp/cloudbuildv2/pulumiTypes.go @@ -733,6 +733,332 @@ func (o ConnectionGithubEnterpriseConfigServiceDirectoryConfigPtrOutput) Service }).(pulumi.StringPtrOutput) } +type ConnectionIAMBindingCondition struct { + Description *string `pulumi:"description"` + Expression string `pulumi:"expression"` + Title string `pulumi:"title"` +} + +// ConnectionIAMBindingConditionInput is an input type that accepts ConnectionIAMBindingConditionArgs and ConnectionIAMBindingConditionOutput values. +// You can construct a concrete instance of `ConnectionIAMBindingConditionInput` via: +// +// ConnectionIAMBindingConditionArgs{...} +type ConnectionIAMBindingConditionInput interface { + pulumi.Input + + ToConnectionIAMBindingConditionOutput() ConnectionIAMBindingConditionOutput + ToConnectionIAMBindingConditionOutputWithContext(context.Context) ConnectionIAMBindingConditionOutput +} + +type ConnectionIAMBindingConditionArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + Expression pulumi.StringInput `pulumi:"expression"` + Title pulumi.StringInput `pulumi:"title"` +} + +func (ConnectionIAMBindingConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionIAMBindingCondition)(nil)).Elem() +} + +func (i ConnectionIAMBindingConditionArgs) ToConnectionIAMBindingConditionOutput() ConnectionIAMBindingConditionOutput { + return i.ToConnectionIAMBindingConditionOutputWithContext(context.Background()) +} + +func (i ConnectionIAMBindingConditionArgs) ToConnectionIAMBindingConditionOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingConditionOutput) +} + +func (i ConnectionIAMBindingConditionArgs) ToConnectionIAMBindingConditionPtrOutput() ConnectionIAMBindingConditionPtrOutput { + return i.ToConnectionIAMBindingConditionPtrOutputWithContext(context.Background()) +} + +func (i ConnectionIAMBindingConditionArgs) ToConnectionIAMBindingConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingConditionOutput).ToConnectionIAMBindingConditionPtrOutputWithContext(ctx) +} + +// ConnectionIAMBindingConditionPtrInput is an input type that accepts ConnectionIAMBindingConditionArgs, ConnectionIAMBindingConditionPtr and ConnectionIAMBindingConditionPtrOutput values. +// You can construct a concrete instance of `ConnectionIAMBindingConditionPtrInput` via: +// +// ConnectionIAMBindingConditionArgs{...} +// +// or: +// +// nil +type ConnectionIAMBindingConditionPtrInput interface { + pulumi.Input + + ToConnectionIAMBindingConditionPtrOutput() ConnectionIAMBindingConditionPtrOutput + ToConnectionIAMBindingConditionPtrOutputWithContext(context.Context) ConnectionIAMBindingConditionPtrOutput +} + +type connectionIAMBindingConditionPtrType ConnectionIAMBindingConditionArgs + +func ConnectionIAMBindingConditionPtr(v *ConnectionIAMBindingConditionArgs) ConnectionIAMBindingConditionPtrInput { + return (*connectionIAMBindingConditionPtrType)(v) +} + +func (*connectionIAMBindingConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMBindingCondition)(nil)).Elem() +} + +func (i *connectionIAMBindingConditionPtrType) ToConnectionIAMBindingConditionPtrOutput() ConnectionIAMBindingConditionPtrOutput { + return i.ToConnectionIAMBindingConditionPtrOutputWithContext(context.Background()) +} + +func (i *connectionIAMBindingConditionPtrType) ToConnectionIAMBindingConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMBindingConditionPtrOutput) +} + +type ConnectionIAMBindingConditionOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMBindingConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionIAMBindingCondition)(nil)).Elem() +} + +func (o ConnectionIAMBindingConditionOutput) ToConnectionIAMBindingConditionOutput() ConnectionIAMBindingConditionOutput { + return o +} + +func (o ConnectionIAMBindingConditionOutput) ToConnectionIAMBindingConditionOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionOutput { + return o +} + +func (o ConnectionIAMBindingConditionOutput) ToConnectionIAMBindingConditionPtrOutput() ConnectionIAMBindingConditionPtrOutput { + return o.ToConnectionIAMBindingConditionPtrOutputWithContext(context.Background()) +} + +func (o ConnectionIAMBindingConditionOutput) ToConnectionIAMBindingConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConnectionIAMBindingCondition) *ConnectionIAMBindingCondition { + return &v + }).(ConnectionIAMBindingConditionPtrOutput) +} + +func (o ConnectionIAMBindingConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ConnectionIAMBindingCondition) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMBindingConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionIAMBindingCondition) string { return v.Expression }).(pulumi.StringOutput) +} + +func (o ConnectionIAMBindingConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionIAMBindingCondition) string { return v.Title }).(pulumi.StringOutput) +} + +type ConnectionIAMBindingConditionPtrOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMBindingConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMBindingCondition)(nil)).Elem() +} + +func (o ConnectionIAMBindingConditionPtrOutput) ToConnectionIAMBindingConditionPtrOutput() ConnectionIAMBindingConditionPtrOutput { + return o +} + +func (o ConnectionIAMBindingConditionPtrOutput) ToConnectionIAMBindingConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMBindingConditionPtrOutput { + return o +} + +func (o ConnectionIAMBindingConditionPtrOutput) Elem() ConnectionIAMBindingConditionOutput { + return o.ApplyT(func(v *ConnectionIAMBindingCondition) ConnectionIAMBindingCondition { + if v != nil { + return *v + } + var ret ConnectionIAMBindingCondition + return ret + }).(ConnectionIAMBindingConditionOutput) +} + +func (o ConnectionIAMBindingConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMBindingCondition) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMBindingCondition) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMBindingConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMBindingCondition) *string { + if v == nil { + return nil + } + return &v.Title + }).(pulumi.StringPtrOutput) +} + +type ConnectionIAMMemberCondition struct { + Description *string `pulumi:"description"` + Expression string `pulumi:"expression"` + Title string `pulumi:"title"` +} + +// ConnectionIAMMemberConditionInput is an input type that accepts ConnectionIAMMemberConditionArgs and ConnectionIAMMemberConditionOutput values. +// You can construct a concrete instance of `ConnectionIAMMemberConditionInput` via: +// +// ConnectionIAMMemberConditionArgs{...} +type ConnectionIAMMemberConditionInput interface { + pulumi.Input + + ToConnectionIAMMemberConditionOutput() ConnectionIAMMemberConditionOutput + ToConnectionIAMMemberConditionOutputWithContext(context.Context) ConnectionIAMMemberConditionOutput +} + +type ConnectionIAMMemberConditionArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + Expression pulumi.StringInput `pulumi:"expression"` + Title pulumi.StringInput `pulumi:"title"` +} + +func (ConnectionIAMMemberConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionIAMMemberCondition)(nil)).Elem() +} + +func (i ConnectionIAMMemberConditionArgs) ToConnectionIAMMemberConditionOutput() ConnectionIAMMemberConditionOutput { + return i.ToConnectionIAMMemberConditionOutputWithContext(context.Background()) +} + +func (i ConnectionIAMMemberConditionArgs) ToConnectionIAMMemberConditionOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberConditionOutput) +} + +func (i ConnectionIAMMemberConditionArgs) ToConnectionIAMMemberConditionPtrOutput() ConnectionIAMMemberConditionPtrOutput { + return i.ToConnectionIAMMemberConditionPtrOutputWithContext(context.Background()) +} + +func (i ConnectionIAMMemberConditionArgs) ToConnectionIAMMemberConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberConditionOutput).ToConnectionIAMMemberConditionPtrOutputWithContext(ctx) +} + +// ConnectionIAMMemberConditionPtrInput is an input type that accepts ConnectionIAMMemberConditionArgs, ConnectionIAMMemberConditionPtr and ConnectionIAMMemberConditionPtrOutput values. +// You can construct a concrete instance of `ConnectionIAMMemberConditionPtrInput` via: +// +// ConnectionIAMMemberConditionArgs{...} +// +// or: +// +// nil +type ConnectionIAMMemberConditionPtrInput interface { + pulumi.Input + + ToConnectionIAMMemberConditionPtrOutput() ConnectionIAMMemberConditionPtrOutput + ToConnectionIAMMemberConditionPtrOutputWithContext(context.Context) ConnectionIAMMemberConditionPtrOutput +} + +type connectionIAMMemberConditionPtrType ConnectionIAMMemberConditionArgs + +func ConnectionIAMMemberConditionPtr(v *ConnectionIAMMemberConditionArgs) ConnectionIAMMemberConditionPtrInput { + return (*connectionIAMMemberConditionPtrType)(v) +} + +func (*connectionIAMMemberConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMMemberCondition)(nil)).Elem() +} + +func (i *connectionIAMMemberConditionPtrType) ToConnectionIAMMemberConditionPtrOutput() ConnectionIAMMemberConditionPtrOutput { + return i.ToConnectionIAMMemberConditionPtrOutputWithContext(context.Background()) +} + +func (i *connectionIAMMemberConditionPtrType) ToConnectionIAMMemberConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionIAMMemberConditionPtrOutput) +} + +type ConnectionIAMMemberConditionOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMMemberConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionIAMMemberCondition)(nil)).Elem() +} + +func (o ConnectionIAMMemberConditionOutput) ToConnectionIAMMemberConditionOutput() ConnectionIAMMemberConditionOutput { + return o +} + +func (o ConnectionIAMMemberConditionOutput) ToConnectionIAMMemberConditionOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionOutput { + return o +} + +func (o ConnectionIAMMemberConditionOutput) ToConnectionIAMMemberConditionPtrOutput() ConnectionIAMMemberConditionPtrOutput { + return o.ToConnectionIAMMemberConditionPtrOutputWithContext(context.Background()) +} + +func (o ConnectionIAMMemberConditionOutput) ToConnectionIAMMemberConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConnectionIAMMemberCondition) *ConnectionIAMMemberCondition { + return &v + }).(ConnectionIAMMemberConditionPtrOutput) +} + +func (o ConnectionIAMMemberConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ConnectionIAMMemberCondition) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMMemberConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionIAMMemberCondition) string { return v.Expression }).(pulumi.StringOutput) +} + +func (o ConnectionIAMMemberConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionIAMMemberCondition) string { return v.Title }).(pulumi.StringOutput) +} + +type ConnectionIAMMemberConditionPtrOutput struct{ *pulumi.OutputState } + +func (ConnectionIAMMemberConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionIAMMemberCondition)(nil)).Elem() +} + +func (o ConnectionIAMMemberConditionPtrOutput) ToConnectionIAMMemberConditionPtrOutput() ConnectionIAMMemberConditionPtrOutput { + return o +} + +func (o ConnectionIAMMemberConditionPtrOutput) ToConnectionIAMMemberConditionPtrOutputWithContext(ctx context.Context) ConnectionIAMMemberConditionPtrOutput { + return o +} + +func (o ConnectionIAMMemberConditionPtrOutput) Elem() ConnectionIAMMemberConditionOutput { + return o.ApplyT(func(v *ConnectionIAMMemberCondition) ConnectionIAMMemberCondition { + if v != nil { + return *v + } + var ret ConnectionIAMMemberCondition + return ret + }).(ConnectionIAMMemberConditionOutput) +} + +func (o ConnectionIAMMemberConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMMemberCondition) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMMemberCondition) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +func (o ConnectionIAMMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionIAMMemberCondition) *string { + if v == nil { + return nil + } + return &v.Title + }).(pulumi.StringPtrOutput) +} + type ConnectionInstallationState struct { ActionUri *string `pulumi:"actionUri"` Message *string `pulumi:"message"` @@ -848,6 +1174,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConnectionGithubEnterpriseConfigPtrInput)(nil)).Elem(), ConnectionGithubEnterpriseConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionGithubEnterpriseConfigServiceDirectoryConfigInput)(nil)).Elem(), ConnectionGithubEnterpriseConfigServiceDirectoryConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionGithubEnterpriseConfigServiceDirectoryConfigPtrInput)(nil)).Elem(), ConnectionGithubEnterpriseConfigServiceDirectoryConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMBindingConditionInput)(nil)).Elem(), ConnectionIAMBindingConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMBindingConditionPtrInput)(nil)).Elem(), ConnectionIAMBindingConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMMemberConditionInput)(nil)).Elem(), ConnectionIAMMemberConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionIAMMemberConditionPtrInput)(nil)).Elem(), ConnectionIAMMemberConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionInstallationStateInput)(nil)).Elem(), ConnectionInstallationStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionInstallationStateArrayInput)(nil)).Elem(), ConnectionInstallationStateArray{}) pulumi.RegisterOutputType(ConnectionGithubConfigOutput{}) @@ -858,6 +1188,10 @@ func init() { pulumi.RegisterOutputType(ConnectionGithubEnterpriseConfigPtrOutput{}) pulumi.RegisterOutputType(ConnectionGithubEnterpriseConfigServiceDirectoryConfigOutput{}) pulumi.RegisterOutputType(ConnectionGithubEnterpriseConfigServiceDirectoryConfigPtrOutput{}) + pulumi.RegisterOutputType(ConnectionIAMBindingConditionOutput{}) + pulumi.RegisterOutputType(ConnectionIAMBindingConditionPtrOutput{}) + pulumi.RegisterOutputType(ConnectionIAMMemberConditionOutput{}) + pulumi.RegisterOutputType(ConnectionIAMMemberConditionPtrOutput{}) pulumi.RegisterOutputType(ConnectionInstallationStateOutput{}) pulumi.RegisterOutputType(ConnectionInstallationStateArrayOutput{}) } diff --git a/sdk/go/gcp/compute/externalVpnGateway.go b/sdk/go/gcp/compute/externalVpnGateway.go index 30b90655e6..71f013b869 100644 --- a/sdk/go/gcp/compute/externalVpnGateway.go +++ b/sdk/go/gcp/compute/externalVpnGateway.go @@ -186,6 +186,8 @@ type ExternalVpnGateway struct { // A list of interfaces on this external VPN gateway. // Structure is documented below. Interfaces ExternalVpnGatewayInterfaceArrayOutput `pulumi:"interfaces"` + // Labels for the external VPN gateway resource. + Labels pulumi.StringMapOutput `pulumi:"labels"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and @@ -238,6 +240,8 @@ type externalVpnGatewayState struct { // A list of interfaces on this external VPN gateway. // Structure is documented below. Interfaces []ExternalVpnGatewayInterface `pulumi:"interfaces"` + // Labels for the external VPN gateway resource. + Labels map[string]string `pulumi:"labels"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and @@ -262,6 +266,8 @@ type ExternalVpnGatewayState struct { // A list of interfaces on this external VPN gateway. // Structure is documented below. Interfaces ExternalVpnGatewayInterfaceArrayInput + // Labels for the external VPN gateway resource. + Labels pulumi.StringMapInput // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and @@ -290,6 +296,8 @@ type externalVpnGatewayArgs struct { // A list of interfaces on this external VPN gateway. // Structure is documented below. Interfaces []ExternalVpnGatewayInterface `pulumi:"interfaces"` + // Labels for the external VPN gateway resource. + Labels map[string]string `pulumi:"labels"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and @@ -313,6 +321,8 @@ type ExternalVpnGatewayArgs struct { // A list of interfaces on this external VPN gateway. // Structure is documented below. Interfaces ExternalVpnGatewayInterfaceArrayInput + // Labels for the external VPN gateway resource. + Labels pulumi.StringMapInput // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and @@ -427,6 +437,11 @@ func (o ExternalVpnGatewayOutput) Interfaces() ExternalVpnGatewayInterfaceArrayO return o.ApplyT(func(v *ExternalVpnGateway) ExternalVpnGatewayInterfaceArrayOutput { return v.Interfaces }).(ExternalVpnGatewayInterfaceArrayOutput) } +// Labels for the external VPN gateway resource. +func (o ExternalVpnGatewayOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *ExternalVpnGateway) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) +} + // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with // RFC1035. Specifically, the name must be 1-63 characters long and diff --git a/sdk/go/gcp/compute/getInstanceGroupManager.go b/sdk/go/gcp/compute/getInstanceGroupManager.go index c06452ca99..07e8310c3d 100644 --- a/sdk/go/gcp/compute/getInstanceGroupManager.go +++ b/sdk/go/gcp/compute/getInstanceGroupManager.go @@ -75,25 +75,26 @@ type LookupInstanceGroupManagerResult struct { Description string `pulumi:"description"` Fingerprint string `pulumi:"fingerprint"` // The provider-assigned unique ID for this managed resource. - Id string `pulumi:"id"` - InstanceGroup string `pulumi:"instanceGroup"` - ListManagedInstancesResults string `pulumi:"listManagedInstancesResults"` - Name *string `pulumi:"name"` - NamedPorts []GetInstanceGroupManagerNamedPort `pulumi:"namedPorts"` - Operation string `pulumi:"operation"` - Project *string `pulumi:"project"` - SelfLink *string `pulumi:"selfLink"` - StatefulDisks []GetInstanceGroupManagerStatefulDisk `pulumi:"statefulDisks"` - StatefulExternalIps []GetInstanceGroupManagerStatefulExternalIp `pulumi:"statefulExternalIps"` - StatefulInternalIps []GetInstanceGroupManagerStatefulInternalIp `pulumi:"statefulInternalIps"` - Statuses []GetInstanceGroupManagerStatus `pulumi:"statuses"` - TargetPools []string `pulumi:"targetPools"` - TargetSize int `pulumi:"targetSize"` - UpdatePolicies []GetInstanceGroupManagerUpdatePolicy `pulumi:"updatePolicies"` - Versions []GetInstanceGroupManagerVersion `pulumi:"versions"` - WaitForInstances bool `pulumi:"waitForInstances"` - WaitForInstancesStatus string `pulumi:"waitForInstancesStatus"` - Zone *string `pulumi:"zone"` + Id string `pulumi:"id"` + InstanceGroup string `pulumi:"instanceGroup"` + InstanceLifecyclePolicies []GetInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicies"` + ListManagedInstancesResults string `pulumi:"listManagedInstancesResults"` + Name *string `pulumi:"name"` + NamedPorts []GetInstanceGroupManagerNamedPort `pulumi:"namedPorts"` + Operation string `pulumi:"operation"` + Project *string `pulumi:"project"` + SelfLink *string `pulumi:"selfLink"` + StatefulDisks []GetInstanceGroupManagerStatefulDisk `pulumi:"statefulDisks"` + StatefulExternalIps []GetInstanceGroupManagerStatefulExternalIp `pulumi:"statefulExternalIps"` + StatefulInternalIps []GetInstanceGroupManagerStatefulInternalIp `pulumi:"statefulInternalIps"` + Statuses []GetInstanceGroupManagerStatus `pulumi:"statuses"` + TargetPools []string `pulumi:"targetPools"` + TargetSize int `pulumi:"targetSize"` + UpdatePolicies []GetInstanceGroupManagerUpdatePolicy `pulumi:"updatePolicies"` + Versions []GetInstanceGroupManagerVersion `pulumi:"versions"` + WaitForInstances bool `pulumi:"waitForInstances"` + WaitForInstancesStatus string `pulumi:"waitForInstancesStatus"` + Zone *string `pulumi:"zone"` } func LookupInstanceGroupManagerOutput(ctx *pulumi.Context, args LookupInstanceGroupManagerOutputArgs, opts ...pulumi.InvokeOption) LookupInstanceGroupManagerResultOutput { @@ -173,6 +174,12 @@ func (o LookupInstanceGroupManagerResultOutput) InstanceGroup() pulumi.StringOut return o.ApplyT(func(v LookupInstanceGroupManagerResult) string { return v.InstanceGroup }).(pulumi.StringOutput) } +func (o LookupInstanceGroupManagerResultOutput) InstanceLifecyclePolicies() GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput { + return o.ApplyT(func(v LookupInstanceGroupManagerResult) []GetInstanceGroupManagerInstanceLifecyclePolicy { + return v.InstanceLifecyclePolicies + }).(GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) +} + func (o LookupInstanceGroupManagerResultOutput) ListManagedInstancesResults() pulumi.StringOutput { return o.ApplyT(func(v LookupInstanceGroupManagerResult) string { return v.ListManagedInstancesResults }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/compute/getInstanceTemplate.go b/sdk/go/gcp/compute/getInstanceTemplate.go index 1cc6a2a65e..b2092da31b 100644 --- a/sdk/go/gcp/compute/getInstanceTemplate.go +++ b/sdk/go/gcp/compute/getInstanceTemplate.go @@ -137,6 +137,8 @@ type LookupInstanceTemplateResult struct { // Provider if no value is given. Region string `pulumi:"region"` ReservationAffinities []GetInstanceTemplateReservationAffinity `pulumi:"reservationAffinities"` + // (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + ResourcePolicies []string `pulumi:"resourcePolicies"` // The scheduling strategy to use. More details about // this configuration option are detailed below. Schedulings []GetInstanceTemplateScheduling `pulumi:"schedulings"` @@ -344,6 +346,11 @@ func (o LookupInstanceTemplateResultOutput) ReservationAffinities() GetInstanceT }).(GetInstanceTemplateReservationAffinityArrayOutput) } +// (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. +func (o LookupInstanceTemplateResultOutput) ResourcePolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupInstanceTemplateResult) []string { return v.ResourcePolicies }).(pulumi.StringArrayOutput) +} + // The scheduling strategy to use. More details about // this configuration option are detailed below. func (o LookupInstanceTemplateResultOutput) Schedulings() GetInstanceTemplateSchedulingArrayOutput { diff --git a/sdk/go/gcp/compute/instanceGroupManager.go b/sdk/go/gcp/compute/instanceGroupManager.go index 1966b916d5..5b932b3a6a 100644 --- a/sdk/go/gcp/compute/instanceGroupManager.go +++ b/sdk/go/gcp/compute/instanceGroupManager.go @@ -177,6 +177,8 @@ type InstanceGroupManager struct { Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringOutput `pulumi:"instanceGroup"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicyOutput `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -290,6 +292,8 @@ type instanceGroupManagerState struct { Fingerprint *string `pulumi:"fingerprint"` // The full URL of the instance group created by the manager. InstanceGroup *string `pulumi:"instanceGroup"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy *InstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -369,6 +373,8 @@ type InstanceGroupManagerState struct { Fingerprint pulumi.StringPtrInput // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringPtrInput + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicyPtrInput // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -448,6 +454,8 @@ type instanceGroupManagerArgs struct { // An optional textual description of the instance // group manager. Description *string `pulumi:"description"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy *InstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -519,6 +527,8 @@ type InstanceGroupManagerArgs struct { // An optional textual description of the instance // group manager. Description pulumi.StringPtrInput + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy InstanceGroupManagerInstanceLifecyclePolicyPtrInput // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -701,6 +711,13 @@ func (o InstanceGroupManagerOutput) InstanceGroup() pulumi.StringOutput { return o.ApplyT(func(v *InstanceGroupManager) pulumi.StringOutput { return v.InstanceGroup }).(pulumi.StringOutput) } +// The instance lifecycle policy for this managed instance group. +func (o InstanceGroupManagerOutput) InstanceLifecyclePolicy() InstanceGroupManagerInstanceLifecyclePolicyOutput { + return o.ApplyT(func(v *InstanceGroupManager) InstanceGroupManagerInstanceLifecyclePolicyOutput { + return v.InstanceLifecyclePolicy + }).(InstanceGroupManagerInstanceLifecyclePolicyOutput) +} + // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. diff --git a/sdk/go/gcp/compute/instanceTemplate.go b/sdk/go/gcp/compute/instanceTemplate.go index 33ea5592c1..251b390379 100644 --- a/sdk/go/gcp/compute/instanceTemplate.go +++ b/sdk/go/gcp/compute/instanceTemplate.go @@ -105,6 +105,8 @@ type InstanceTemplate struct { // Specifies the reservations that this instance can consume from. // Structure is documented below. ReservationAffinity InstanceTemplateReservationAffinityPtrOutput `pulumi:"reservationAffinity"` + // - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + ResourcePolicies pulumi.StringPtrOutput `pulumi:"resourcePolicies"` // The scheduling strategy to use. More details about // this configuration option are detailed below. Scheduling InstanceTemplateSchedulingOutput `pulumi:"scheduling"` @@ -224,6 +226,8 @@ type instanceTemplateState struct { // Specifies the reservations that this instance can consume from. // Structure is documented below. ReservationAffinity *InstanceTemplateReservationAffinity `pulumi:"reservationAffinity"` + // - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + ResourcePolicies *string `pulumi:"resourcePolicies"` // The scheduling strategy to use. More details about // this configuration option are detailed below. Scheduling *InstanceTemplateScheduling `pulumi:"scheduling"` @@ -309,6 +313,8 @@ type InstanceTemplateState struct { // Specifies the reservations that this instance can consume from. // Structure is documented below. ReservationAffinity InstanceTemplateReservationAffinityPtrInput + // - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + ResourcePolicies pulumi.StringPtrInput // The scheduling strategy to use. More details about // this configuration option are detailed below. Scheduling InstanceTemplateSchedulingPtrInput @@ -396,6 +402,8 @@ type instanceTemplateArgs struct { // Specifies the reservations that this instance can consume from. // Structure is documented below. ReservationAffinity *InstanceTemplateReservationAffinity `pulumi:"reservationAffinity"` + // - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + ResourcePolicies *string `pulumi:"resourcePolicies"` // The scheduling strategy to use. More details about // this configuration option are detailed below. Scheduling *InstanceTemplateScheduling `pulumi:"scheduling"` @@ -476,6 +484,8 @@ type InstanceTemplateArgs struct { // Specifies the reservations that this instance can consume from. // Structure is documented below. ReservationAffinity InstanceTemplateReservationAffinityPtrInput + // - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + ResourcePolicies pulumi.StringPtrInput // The scheduling strategy to use. More details about // this configuration option are detailed below. Scheduling InstanceTemplateSchedulingPtrInput @@ -712,6 +722,11 @@ func (o InstanceTemplateOutput) ReservationAffinity() InstanceTemplateReservatio return o.ApplyT(func(v *InstanceTemplate) InstanceTemplateReservationAffinityPtrOutput { return v.ReservationAffinity }).(InstanceTemplateReservationAffinityPtrOutput) } +// - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. +func (o InstanceTemplateOutput) ResourcePolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceTemplate) pulumi.StringPtrOutput { return v.ResourcePolicies }).(pulumi.StringPtrOutput) +} + // The scheduling strategy to use. More details about // this configuration option are detailed below. func (o InstanceTemplateOutput) Scheduling() InstanceTemplateSchedulingOutput { diff --git a/sdk/go/gcp/compute/network.go b/sdk/go/gcp/compute/network.go index f45ca70f4c..45da21c7e8 100644 --- a/sdk/go/gcp/compute/network.go +++ b/sdk/go/gcp/compute/network.go @@ -118,8 +118,11 @@ type Network struct { // fail if the speficied /48 is already in used by another resource. // If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. InternalIpv6Range pulumi.StringOutput `pulumi:"internalIpv6Range"` - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - // and the maximum value is 1500 bytes. + // Maximum Transmission Unit in bytes. The default value is 1460 bytes. + // The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + // Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + // with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + // with varying MTUs. Mtu pulumi.IntOutput `pulumi:"mtu"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with @@ -196,8 +199,11 @@ type networkState struct { // fail if the speficied /48 is already in used by another resource. // If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. InternalIpv6Range *string `pulumi:"internalIpv6Range"` - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - // and the maximum value is 1500 bytes. + // Maximum Transmission Unit in bytes. The default value is 1460 bytes. + // The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + // Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + // with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + // with varying MTUs. Mtu *int `pulumi:"mtu"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with @@ -246,8 +252,11 @@ type NetworkState struct { // fail if the speficied /48 is already in used by another resource. // If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. InternalIpv6Range pulumi.StringPtrInput - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - // and the maximum value is 1500 bytes. + // Maximum Transmission Unit in bytes. The default value is 1460 bytes. + // The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + // Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + // with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + // with varying MTUs. Mtu pulumi.IntPtrInput // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with @@ -297,8 +306,11 @@ type networkArgs struct { // fail if the speficied /48 is already in used by another resource. // If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. InternalIpv6Range *string `pulumi:"internalIpv6Range"` - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - // and the maximum value is 1500 bytes. + // Maximum Transmission Unit in bytes. The default value is 1460 bytes. + // The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + // Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + // with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + // with varying MTUs. Mtu *int `pulumi:"mtu"` // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with @@ -343,8 +355,11 @@ type NetworkArgs struct { // fail if the speficied /48 is already in used by another resource. // If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. InternalIpv6Range pulumi.StringPtrInput - // Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - // and the maximum value is 1500 bytes. + // Maximum Transmission Unit in bytes. The default value is 1460 bytes. + // The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + // Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + // with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + // with varying MTUs. Mtu pulumi.IntPtrInput // Name of the resource. Provided by the client when the resource is // created. The name must be 1-63 characters long, and comply with @@ -495,8 +510,11 @@ func (o NetworkOutput) InternalIpv6Range() pulumi.StringOutput { return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.InternalIpv6Range }).(pulumi.StringOutput) } -// Maximum Transmission Unit in bytes. The minimum value for this field is 1460 -// and the maximum value is 1500 bytes. +// Maximum Transmission Unit in bytes. The default value is 1460 bytes. +// The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). +// Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped +// with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs +// with varying MTUs. func (o NetworkOutput) Mtu() pulumi.IntOutput { return o.ApplyT(func(v *Network) pulumi.IntOutput { return v.Mtu }).(pulumi.IntOutput) } diff --git a/sdk/go/gcp/compute/pulumiTypes.go b/sdk/go/gcp/compute/pulumiTypes.go index c4c5755007..c0b29da98d 100644 --- a/sdk/go/gcp/compute/pulumiTypes.go +++ b/sdk/go/gcp/compute/pulumiTypes.go @@ -20849,6 +20849,143 @@ func (o InstanceGroupManagerAutoHealingPoliciesPtrOutput) InitialDelaySec() pulu }).(pulumi.IntPtrOutput) } +type InstanceGroupManagerInstanceLifecyclePolicy struct { + // ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + ForceUpdateOnRepair *string `pulumi:"forceUpdateOnRepair"` +} + +// InstanceGroupManagerInstanceLifecyclePolicyInput is an input type that accepts InstanceGroupManagerInstanceLifecyclePolicyArgs and InstanceGroupManagerInstanceLifecyclePolicyOutput values. +// You can construct a concrete instance of `InstanceGroupManagerInstanceLifecyclePolicyInput` via: +// +// InstanceGroupManagerInstanceLifecyclePolicyArgs{...} +type InstanceGroupManagerInstanceLifecyclePolicyInput interface { + pulumi.Input + + ToInstanceGroupManagerInstanceLifecyclePolicyOutput() InstanceGroupManagerInstanceLifecyclePolicyOutput + ToInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Context) InstanceGroupManagerInstanceLifecyclePolicyOutput +} + +type InstanceGroupManagerInstanceLifecyclePolicyArgs struct { + // ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + ForceUpdateOnRepair pulumi.StringPtrInput `pulumi:"forceUpdateOnRepair"` +} + +func (InstanceGroupManagerInstanceLifecyclePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i InstanceGroupManagerInstanceLifecyclePolicyArgs) ToInstanceGroupManagerInstanceLifecyclePolicyOutput() InstanceGroupManagerInstanceLifecyclePolicyOutput { + return i.ToInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Background()) +} + +func (i InstanceGroupManagerInstanceLifecyclePolicyArgs) ToInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerInstanceLifecyclePolicyOutput) +} + +func (i InstanceGroupManagerInstanceLifecyclePolicyArgs) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return i.ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (i InstanceGroupManagerInstanceLifecyclePolicyArgs) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerInstanceLifecyclePolicyOutput).ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx) +} + +// InstanceGroupManagerInstanceLifecyclePolicyPtrInput is an input type that accepts InstanceGroupManagerInstanceLifecyclePolicyArgs, InstanceGroupManagerInstanceLifecyclePolicyPtr and InstanceGroupManagerInstanceLifecyclePolicyPtrOutput values. +// You can construct a concrete instance of `InstanceGroupManagerInstanceLifecyclePolicyPtrInput` via: +// +// InstanceGroupManagerInstanceLifecyclePolicyArgs{...} +// +// or: +// +// nil +type InstanceGroupManagerInstanceLifecyclePolicyPtrInput interface { + pulumi.Input + + ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() InstanceGroupManagerInstanceLifecyclePolicyPtrOutput + ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Context) InstanceGroupManagerInstanceLifecyclePolicyPtrOutput +} + +type instanceGroupManagerInstanceLifecyclePolicyPtrType InstanceGroupManagerInstanceLifecyclePolicyArgs + +func InstanceGroupManagerInstanceLifecyclePolicyPtr(v *InstanceGroupManagerInstanceLifecyclePolicyArgs) InstanceGroupManagerInstanceLifecyclePolicyPtrInput { + return (*instanceGroupManagerInstanceLifecyclePolicyPtrType)(v) +} + +func (*instanceGroupManagerInstanceLifecyclePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i *instanceGroupManagerInstanceLifecyclePolicyPtrType) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return i.ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (i *instanceGroupManagerInstanceLifecyclePolicyPtrType) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) +} + +type InstanceGroupManagerInstanceLifecyclePolicyOutput struct{ *pulumi.OutputState } + +func (InstanceGroupManagerInstanceLifecyclePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyOutput) ToInstanceGroupManagerInstanceLifecyclePolicyOutput() InstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyOutput) ToInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyOutput) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o.ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyOutput) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InstanceGroupManagerInstanceLifecyclePolicy) *InstanceGroupManagerInstanceLifecyclePolicy { + return &v + }).(InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) +} + +// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. +func (o InstanceGroupManagerInstanceLifecyclePolicyOutput) ForceUpdateOnRepair() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceGroupManagerInstanceLifecyclePolicy) *string { return v.ForceUpdateOnRepair }).(pulumi.StringPtrOutput) +} + +type InstanceGroupManagerInstanceLifecyclePolicyPtrOutput struct{ *pulumi.OutputState } + +func (InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ToInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) InstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o +} + +func (o InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) Elem() InstanceGroupManagerInstanceLifecyclePolicyOutput { + return o.ApplyT(func(v *InstanceGroupManagerInstanceLifecyclePolicy) InstanceGroupManagerInstanceLifecyclePolicy { + if v != nil { + return *v + } + var ret InstanceGroupManagerInstanceLifecyclePolicy + return ret + }).(InstanceGroupManagerInstanceLifecyclePolicyOutput) +} + +// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. +func (o InstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ForceUpdateOnRepair() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceGroupManagerInstanceLifecyclePolicy) *string { + if v == nil { + return nil + } + return v.ForceUpdateOnRepair + }).(pulumi.StringPtrOutput) +} + type InstanceGroupManagerNamedPort struct { // The name of the port. Name string `pulumi:"name"` @@ -41568,6 +41705,147 @@ func (o RegionInstanceGroupManagerAutoHealingPoliciesPtrOutput) InitialDelaySec( }).(pulumi.IntPtrOutput) } +type RegionInstanceGroupManagerInstanceLifecyclePolicy struct { + // ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + // *** + ForceUpdateOnRepair *string `pulumi:"forceUpdateOnRepair"` +} + +// RegionInstanceGroupManagerInstanceLifecyclePolicyInput is an input type that accepts RegionInstanceGroupManagerInstanceLifecyclePolicyArgs and RegionInstanceGroupManagerInstanceLifecyclePolicyOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceLifecyclePolicyInput` via: +// +// RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{...} +type RegionInstanceGroupManagerInstanceLifecyclePolicyInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyOutput + ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyOutput +} + +type RegionInstanceGroupManagerInstanceLifecyclePolicyArgs struct { + // ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + // *** + ForceUpdateOnRepair pulumi.StringPtrInput `pulumi:"forceUpdateOnRepair"` +} + +func (RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return i.ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) +} + +func (i RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return i.ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (i RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput).ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx) +} + +// RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput is an input type that accepts RegionInstanceGroupManagerInstanceLifecyclePolicyArgs, RegionInstanceGroupManagerInstanceLifecyclePolicyPtr and RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput values. +// You can construct a concrete instance of `RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput` via: +// +// RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{...} +// +// or: +// +// nil +type RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput interface { + pulumi.Input + + ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput + ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput +} + +type regionInstanceGroupManagerInstanceLifecyclePolicyPtrType RegionInstanceGroupManagerInstanceLifecyclePolicyArgs + +func RegionInstanceGroupManagerInstanceLifecyclePolicyPtr(v *RegionInstanceGroupManagerInstanceLifecyclePolicyArgs) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput { + return (*regionInstanceGroupManagerInstanceLifecyclePolicyPtrType)(v) +} + +func (*regionInstanceGroupManagerInstanceLifecyclePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RegionInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i *regionInstanceGroupManagerInstanceLifecyclePolicyPtrType) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return i.ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (i *regionInstanceGroupManagerInstanceLifecyclePolicyPtrType) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) +} + +type RegionInstanceGroupManagerInstanceLifecyclePolicyOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o.ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(context.Background()) +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RegionInstanceGroupManagerInstanceLifecyclePolicy) *RegionInstanceGroupManagerInstanceLifecyclePolicy { + return &v + }).(RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) +} + +// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. +// *** +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) ForceUpdateOnRepair() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionInstanceGroupManagerInstanceLifecyclePolicy) *string { return v.ForceUpdateOnRepair }).(pulumi.StringPtrOutput) +} + +type RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput struct{ *pulumi.OutputState } + +func (RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegionInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput() RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ToRegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutputWithContext(ctx context.Context) RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput { + return o +} + +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) Elem() RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o.ApplyT(func(v *RegionInstanceGroupManagerInstanceLifecyclePolicy) RegionInstanceGroupManagerInstanceLifecyclePolicy { + if v != nil { + return *v + } + var ret RegionInstanceGroupManagerInstanceLifecyclePolicy + return ret + }).(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) +} + +// ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. +// *** +func (o RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput) ForceUpdateOnRepair() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RegionInstanceGroupManagerInstanceLifecyclePolicy) *string { + if v == nil { + return nil + } + return v.ForceUpdateOnRepair + }).(pulumi.StringPtrOutput) +} + type RegionInstanceGroupManagerNamedPort struct { // The name of the port. Name string `pulumi:"name"` @@ -86658,266 +86936,6 @@ func (o GetHealthCheckHttp2HealthCheckArrayOutput) Index(i pulumi.IntInput) GetH }).(GetHealthCheckHttp2HealthCheckOutput) } -type GetHealthCheckHttpHealthCheck struct { - Host string `pulumi:"host"` - Port int `pulumi:"port"` - PortName string `pulumi:"portName"` - PortSpecification string `pulumi:"portSpecification"` - ProxyHeader string `pulumi:"proxyHeader"` - RequestPath string `pulumi:"requestPath"` - Response string `pulumi:"response"` -} - -// GetHealthCheckHttpHealthCheckInput is an input type that accepts GetHealthCheckHttpHealthCheckArgs and GetHealthCheckHttpHealthCheckOutput values. -// You can construct a concrete instance of `GetHealthCheckHttpHealthCheckInput` via: -// -// GetHealthCheckHttpHealthCheckArgs{...} -type GetHealthCheckHttpHealthCheckInput interface { - pulumi.Input - - ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput - ToGetHealthCheckHttpHealthCheckOutputWithContext(context.Context) GetHealthCheckHttpHealthCheckOutput -} - -type GetHealthCheckHttpHealthCheckArgs struct { - Host pulumi.StringInput `pulumi:"host"` - Port pulumi.IntInput `pulumi:"port"` - PortName pulumi.StringInput `pulumi:"portName"` - PortSpecification pulumi.StringInput `pulumi:"portSpecification"` - ProxyHeader pulumi.StringInput `pulumi:"proxyHeader"` - RequestPath pulumi.StringInput `pulumi:"requestPath"` - Response pulumi.StringInput `pulumi:"response"` -} - -func (GetHealthCheckHttpHealthCheckArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetHealthCheckHttpHealthCheck)(nil)).Elem() -} - -func (i GetHealthCheckHttpHealthCheckArgs) ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput { - return i.ToGetHealthCheckHttpHealthCheckOutputWithContext(context.Background()) -} - -func (i GetHealthCheckHttpHealthCheckArgs) ToGetHealthCheckHttpHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpHealthCheckOutput) -} - -// GetHealthCheckHttpHealthCheckArrayInput is an input type that accepts GetHealthCheckHttpHealthCheckArray and GetHealthCheckHttpHealthCheckArrayOutput values. -// You can construct a concrete instance of `GetHealthCheckHttpHealthCheckArrayInput` via: -// -// GetHealthCheckHttpHealthCheckArray{ GetHealthCheckHttpHealthCheckArgs{...} } -type GetHealthCheckHttpHealthCheckArrayInput interface { - pulumi.Input - - ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput - ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(context.Context) GetHealthCheckHttpHealthCheckArrayOutput -} - -type GetHealthCheckHttpHealthCheckArray []GetHealthCheckHttpHealthCheckInput - -func (GetHealthCheckHttpHealthCheckArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetHealthCheckHttpHealthCheck)(nil)).Elem() -} - -func (i GetHealthCheckHttpHealthCheckArray) ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput { - return i.ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(context.Background()) -} - -func (i GetHealthCheckHttpHealthCheckArray) ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpHealthCheckArrayOutput) -} - -type GetHealthCheckHttpHealthCheckOutput struct{ *pulumi.OutputState } - -func (GetHealthCheckHttpHealthCheckOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetHealthCheckHttpHealthCheck)(nil)).Elem() -} - -func (o GetHealthCheckHttpHealthCheckOutput) ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput { - return o -} - -func (o GetHealthCheckHttpHealthCheckOutput) ToGetHealthCheckHttpHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckOutput { - return o -} - -func (o GetHealthCheckHttpHealthCheckOutput) Host() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.Host }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) int { return v.Port }).(pulumi.IntOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) PortName() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.PortName }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) PortSpecification() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.PortSpecification }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) ProxyHeader() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.ProxyHeader }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) RequestPath() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.RequestPath }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpHealthCheckOutput) Response() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.Response }).(pulumi.StringOutput) -} - -type GetHealthCheckHttpHealthCheckArrayOutput struct{ *pulumi.OutputState } - -func (GetHealthCheckHttpHealthCheckArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetHealthCheckHttpHealthCheck)(nil)).Elem() -} - -func (o GetHealthCheckHttpHealthCheckArrayOutput) ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput { - return o -} - -func (o GetHealthCheckHttpHealthCheckArrayOutput) ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckArrayOutput { - return o -} - -func (o GetHealthCheckHttpHealthCheckArrayOutput) Index(i pulumi.IntInput) GetHealthCheckHttpHealthCheckOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetHealthCheckHttpHealthCheck { - return vs[0].([]GetHealthCheckHttpHealthCheck)[vs[1].(int)] - }).(GetHealthCheckHttpHealthCheckOutput) -} - -type GetHealthCheckHttpsHealthCheck struct { - Host string `pulumi:"host"` - Port int `pulumi:"port"` - PortName string `pulumi:"portName"` - PortSpecification string `pulumi:"portSpecification"` - ProxyHeader string `pulumi:"proxyHeader"` - RequestPath string `pulumi:"requestPath"` - Response string `pulumi:"response"` -} - -// GetHealthCheckHttpsHealthCheckInput is an input type that accepts GetHealthCheckHttpsHealthCheckArgs and GetHealthCheckHttpsHealthCheckOutput values. -// You can construct a concrete instance of `GetHealthCheckHttpsHealthCheckInput` via: -// -// GetHealthCheckHttpsHealthCheckArgs{...} -type GetHealthCheckHttpsHealthCheckInput interface { - pulumi.Input - - ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput - ToGetHealthCheckHttpsHealthCheckOutputWithContext(context.Context) GetHealthCheckHttpsHealthCheckOutput -} - -type GetHealthCheckHttpsHealthCheckArgs struct { - Host pulumi.StringInput `pulumi:"host"` - Port pulumi.IntInput `pulumi:"port"` - PortName pulumi.StringInput `pulumi:"portName"` - PortSpecification pulumi.StringInput `pulumi:"portSpecification"` - ProxyHeader pulumi.StringInput `pulumi:"proxyHeader"` - RequestPath pulumi.StringInput `pulumi:"requestPath"` - Response pulumi.StringInput `pulumi:"response"` -} - -func (GetHealthCheckHttpsHealthCheckArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GetHealthCheckHttpsHealthCheck)(nil)).Elem() -} - -func (i GetHealthCheckHttpsHealthCheckArgs) ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput { - return i.ToGetHealthCheckHttpsHealthCheckOutputWithContext(context.Background()) -} - -func (i GetHealthCheckHttpsHealthCheckArgs) ToGetHealthCheckHttpsHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpsHealthCheckOutput) -} - -// GetHealthCheckHttpsHealthCheckArrayInput is an input type that accepts GetHealthCheckHttpsHealthCheckArray and GetHealthCheckHttpsHealthCheckArrayOutput values. -// You can construct a concrete instance of `GetHealthCheckHttpsHealthCheckArrayInput` via: -// -// GetHealthCheckHttpsHealthCheckArray{ GetHealthCheckHttpsHealthCheckArgs{...} } -type GetHealthCheckHttpsHealthCheckArrayInput interface { - pulumi.Input - - ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput - ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(context.Context) GetHealthCheckHttpsHealthCheckArrayOutput -} - -type GetHealthCheckHttpsHealthCheckArray []GetHealthCheckHttpsHealthCheckInput - -func (GetHealthCheckHttpsHealthCheckArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetHealthCheckHttpsHealthCheck)(nil)).Elem() -} - -func (i GetHealthCheckHttpsHealthCheckArray) ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput { - return i.ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(context.Background()) -} - -func (i GetHealthCheckHttpsHealthCheckArray) ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpsHealthCheckArrayOutput) -} - -type GetHealthCheckHttpsHealthCheckOutput struct{ *pulumi.OutputState } - -func (GetHealthCheckHttpsHealthCheckOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GetHealthCheckHttpsHealthCheck)(nil)).Elem() -} - -func (o GetHealthCheckHttpsHealthCheckOutput) ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput { - return o -} - -func (o GetHealthCheckHttpsHealthCheckOutput) ToGetHealthCheckHttpsHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckOutput { - return o -} - -func (o GetHealthCheckHttpsHealthCheckOutput) Host() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.Host }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) int { return v.Port }).(pulumi.IntOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) PortName() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.PortName }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) PortSpecification() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.PortSpecification }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) ProxyHeader() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.ProxyHeader }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) RequestPath() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.RequestPath }).(pulumi.StringOutput) -} - -func (o GetHealthCheckHttpsHealthCheckOutput) Response() pulumi.StringOutput { - return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.Response }).(pulumi.StringOutput) -} - -type GetHealthCheckHttpsHealthCheckArrayOutput struct{ *pulumi.OutputState } - -func (GetHealthCheckHttpsHealthCheckArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GetHealthCheckHttpsHealthCheck)(nil)).Elem() -} - -func (o GetHealthCheckHttpsHealthCheckArrayOutput) ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput { - return o -} - -func (o GetHealthCheckHttpsHealthCheckArrayOutput) ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckArrayOutput { - return o -} - -func (o GetHealthCheckHttpsHealthCheckArrayOutput) Index(i pulumi.IntInput) GetHealthCheckHttpsHealthCheckOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetHealthCheckHttpsHealthCheck { - return vs[0].([]GetHealthCheckHttpsHealthCheck)[vs[1].(int)] - }).(GetHealthCheckHttpsHealthCheckOutput) -} - func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutoscalarAutoscalingPolicyInput)(nil)).Elem(), AutoscalarAutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalarAutoscalingPolicyPtrInput)(nil)).Elem(), AutoscalarAutoscalingPolicyArgs{}) @@ -87151,6 +87169,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerAllInstancesConfigPtrInput)(nil)).Elem(), InstanceGroupManagerAllInstancesConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerAutoHealingPoliciesInput)(nil)).Elem(), InstanceGroupManagerAutoHealingPoliciesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerAutoHealingPoliciesPtrInput)(nil)).Elem(), InstanceGroupManagerAutoHealingPoliciesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerInstanceLifecyclePolicyInput)(nil)).Elem(), InstanceGroupManagerInstanceLifecyclePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerInstanceLifecyclePolicyPtrInput)(nil)).Elem(), InstanceGroupManagerInstanceLifecyclePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerNamedPortInput)(nil)).Elem(), InstanceGroupManagerNamedPortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerNamedPortArrayInput)(nil)).Elem(), InstanceGroupManagerNamedPortArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGroupManagerStatefulDiskInput)(nil)).Elem(), InstanceGroupManagerStatefulDiskArgs{}) @@ -87383,6 +87403,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAllInstancesConfigPtrInput)(nil)).Elem(), RegionInstanceGroupManagerAllInstancesConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAutoHealingPoliciesInput)(nil)).Elem(), RegionInstanceGroupManagerAutoHealingPoliciesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerAutoHealingPoliciesPtrInput)(nil)).Elem(), RegionInstanceGroupManagerAutoHealingPoliciesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicyInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput)(nil)).Elem(), RegionInstanceGroupManagerInstanceLifecyclePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerNamedPortInput)(nil)).Elem(), RegionInstanceGroupManagerNamedPortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerNamedPortArrayInput)(nil)).Elem(), RegionInstanceGroupManagerNamedPortArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RegionInstanceGroupManagerStatefulDiskInput)(nil)).Elem(), RegionInstanceGroupManagerStatefulDiskArgs{}) @@ -87914,10 +87936,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckGrpcHealthCheckArrayInput)(nil)).Elem(), GetHealthCheckGrpcHealthCheckArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttp2HealthCheckInput)(nil)).Elem(), GetHealthCheckHttp2HealthCheckArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttp2HealthCheckArrayInput)(nil)).Elem(), GetHealthCheckHttp2HealthCheckArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpHealthCheckInput)(nil)).Elem(), GetHealthCheckHttpHealthCheckArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpHealthCheckArrayInput)(nil)).Elem(), GetHealthCheckHttpHealthCheckArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpsHealthCheckInput)(nil)).Elem(), GetHealthCheckHttpsHealthCheckArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpsHealthCheckArrayInput)(nil)).Elem(), GetHealthCheckHttpsHealthCheckArray{}) pulumi.RegisterOutputType(AutoscalarAutoscalingPolicyOutput{}) pulumi.RegisterOutputType(AutoscalarAutoscalingPolicyPtrOutput{}) pulumi.RegisterOutputType(AutoscalarAutoscalingPolicyCpuUtilizationOutput{}) @@ -88150,6 +88168,8 @@ func init() { pulumi.RegisterOutputType(InstanceGroupManagerAllInstancesConfigPtrOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPoliciesOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerAutoHealingPoliciesPtrOutput{}) + pulumi.RegisterOutputType(InstanceGroupManagerInstanceLifecyclePolicyOutput{}) + pulumi.RegisterOutputType(InstanceGroupManagerInstanceLifecyclePolicyPtrOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerNamedPortOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerNamedPortArrayOutput{}) pulumi.RegisterOutputType(InstanceGroupManagerStatefulDiskOutput{}) @@ -88382,6 +88402,8 @@ func init() { pulumi.RegisterOutputType(RegionInstanceGroupManagerAllInstancesConfigPtrOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerAutoHealingPoliciesOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerAutoHealingPoliciesPtrOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput{}) + pulumi.RegisterOutputType(RegionInstanceGroupManagerInstanceLifecyclePolicyPtrOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerNamedPortOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerNamedPortArrayOutput{}) pulumi.RegisterOutputType(RegionInstanceGroupManagerStatefulDiskOutput{}) @@ -88913,8 +88935,4 @@ func init() { pulumi.RegisterOutputType(GetHealthCheckGrpcHealthCheckArrayOutput{}) pulumi.RegisterOutputType(GetHealthCheckHttp2HealthCheckOutput{}) pulumi.RegisterOutputType(GetHealthCheckHttp2HealthCheckArrayOutput{}) - pulumi.RegisterOutputType(GetHealthCheckHttpHealthCheckOutput{}) - pulumi.RegisterOutputType(GetHealthCheckHttpHealthCheckArrayOutput{}) - pulumi.RegisterOutputType(GetHealthCheckHttpsHealthCheckOutput{}) - pulumi.RegisterOutputType(GetHealthCheckHttpsHealthCheckArrayOutput{}) } diff --git a/sdk/go/gcp/compute/pulumiTypes1.go b/sdk/go/gcp/compute/pulumiTypes1.go index 80538a7022..437053dc0c 100644 --- a/sdk/go/gcp/compute/pulumiTypes1.go +++ b/sdk/go/gcp/compute/pulumiTypes1.go @@ -10,6 +10,266 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +type GetHealthCheckHttpHealthCheck struct { + Host string `pulumi:"host"` + Port int `pulumi:"port"` + PortName string `pulumi:"portName"` + PortSpecification string `pulumi:"portSpecification"` + ProxyHeader string `pulumi:"proxyHeader"` + RequestPath string `pulumi:"requestPath"` + Response string `pulumi:"response"` +} + +// GetHealthCheckHttpHealthCheckInput is an input type that accepts GetHealthCheckHttpHealthCheckArgs and GetHealthCheckHttpHealthCheckOutput values. +// You can construct a concrete instance of `GetHealthCheckHttpHealthCheckInput` via: +// +// GetHealthCheckHttpHealthCheckArgs{...} +type GetHealthCheckHttpHealthCheckInput interface { + pulumi.Input + + ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput + ToGetHealthCheckHttpHealthCheckOutputWithContext(context.Context) GetHealthCheckHttpHealthCheckOutput +} + +type GetHealthCheckHttpHealthCheckArgs struct { + Host pulumi.StringInput `pulumi:"host"` + Port pulumi.IntInput `pulumi:"port"` + PortName pulumi.StringInput `pulumi:"portName"` + PortSpecification pulumi.StringInput `pulumi:"portSpecification"` + ProxyHeader pulumi.StringInput `pulumi:"proxyHeader"` + RequestPath pulumi.StringInput `pulumi:"requestPath"` + Response pulumi.StringInput `pulumi:"response"` +} + +func (GetHealthCheckHttpHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetHealthCheckHttpHealthCheck)(nil)).Elem() +} + +func (i GetHealthCheckHttpHealthCheckArgs) ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput { + return i.ToGetHealthCheckHttpHealthCheckOutputWithContext(context.Background()) +} + +func (i GetHealthCheckHttpHealthCheckArgs) ToGetHealthCheckHttpHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpHealthCheckOutput) +} + +// GetHealthCheckHttpHealthCheckArrayInput is an input type that accepts GetHealthCheckHttpHealthCheckArray and GetHealthCheckHttpHealthCheckArrayOutput values. +// You can construct a concrete instance of `GetHealthCheckHttpHealthCheckArrayInput` via: +// +// GetHealthCheckHttpHealthCheckArray{ GetHealthCheckHttpHealthCheckArgs{...} } +type GetHealthCheckHttpHealthCheckArrayInput interface { + pulumi.Input + + ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput + ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(context.Context) GetHealthCheckHttpHealthCheckArrayOutput +} + +type GetHealthCheckHttpHealthCheckArray []GetHealthCheckHttpHealthCheckInput + +func (GetHealthCheckHttpHealthCheckArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetHealthCheckHttpHealthCheck)(nil)).Elem() +} + +func (i GetHealthCheckHttpHealthCheckArray) ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput { + return i.ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(context.Background()) +} + +func (i GetHealthCheckHttpHealthCheckArray) ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpHealthCheckArrayOutput) +} + +type GetHealthCheckHttpHealthCheckOutput struct{ *pulumi.OutputState } + +func (GetHealthCheckHttpHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetHealthCheckHttpHealthCheck)(nil)).Elem() +} + +func (o GetHealthCheckHttpHealthCheckOutput) ToGetHealthCheckHttpHealthCheckOutput() GetHealthCheckHttpHealthCheckOutput { + return o +} + +func (o GetHealthCheckHttpHealthCheckOutput) ToGetHealthCheckHttpHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckOutput { + return o +} + +func (o GetHealthCheckHttpHealthCheckOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.Host }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) int { return v.Port }).(pulumi.IntOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) PortName() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.PortName }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) PortSpecification() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.PortSpecification }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) ProxyHeader() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.ProxyHeader }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) RequestPath() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.RequestPath }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpHealthCheckOutput) Response() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpHealthCheck) string { return v.Response }).(pulumi.StringOutput) +} + +type GetHealthCheckHttpHealthCheckArrayOutput struct{ *pulumi.OutputState } + +func (GetHealthCheckHttpHealthCheckArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetHealthCheckHttpHealthCheck)(nil)).Elem() +} + +func (o GetHealthCheckHttpHealthCheckArrayOutput) ToGetHealthCheckHttpHealthCheckArrayOutput() GetHealthCheckHttpHealthCheckArrayOutput { + return o +} + +func (o GetHealthCheckHttpHealthCheckArrayOutput) ToGetHealthCheckHttpHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpHealthCheckArrayOutput { + return o +} + +func (o GetHealthCheckHttpHealthCheckArrayOutput) Index(i pulumi.IntInput) GetHealthCheckHttpHealthCheckOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetHealthCheckHttpHealthCheck { + return vs[0].([]GetHealthCheckHttpHealthCheck)[vs[1].(int)] + }).(GetHealthCheckHttpHealthCheckOutput) +} + +type GetHealthCheckHttpsHealthCheck struct { + Host string `pulumi:"host"` + Port int `pulumi:"port"` + PortName string `pulumi:"portName"` + PortSpecification string `pulumi:"portSpecification"` + ProxyHeader string `pulumi:"proxyHeader"` + RequestPath string `pulumi:"requestPath"` + Response string `pulumi:"response"` +} + +// GetHealthCheckHttpsHealthCheckInput is an input type that accepts GetHealthCheckHttpsHealthCheckArgs and GetHealthCheckHttpsHealthCheckOutput values. +// You can construct a concrete instance of `GetHealthCheckHttpsHealthCheckInput` via: +// +// GetHealthCheckHttpsHealthCheckArgs{...} +type GetHealthCheckHttpsHealthCheckInput interface { + pulumi.Input + + ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput + ToGetHealthCheckHttpsHealthCheckOutputWithContext(context.Context) GetHealthCheckHttpsHealthCheckOutput +} + +type GetHealthCheckHttpsHealthCheckArgs struct { + Host pulumi.StringInput `pulumi:"host"` + Port pulumi.IntInput `pulumi:"port"` + PortName pulumi.StringInput `pulumi:"portName"` + PortSpecification pulumi.StringInput `pulumi:"portSpecification"` + ProxyHeader pulumi.StringInput `pulumi:"proxyHeader"` + RequestPath pulumi.StringInput `pulumi:"requestPath"` + Response pulumi.StringInput `pulumi:"response"` +} + +func (GetHealthCheckHttpsHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetHealthCheckHttpsHealthCheck)(nil)).Elem() +} + +func (i GetHealthCheckHttpsHealthCheckArgs) ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput { + return i.ToGetHealthCheckHttpsHealthCheckOutputWithContext(context.Background()) +} + +func (i GetHealthCheckHttpsHealthCheckArgs) ToGetHealthCheckHttpsHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpsHealthCheckOutput) +} + +// GetHealthCheckHttpsHealthCheckArrayInput is an input type that accepts GetHealthCheckHttpsHealthCheckArray and GetHealthCheckHttpsHealthCheckArrayOutput values. +// You can construct a concrete instance of `GetHealthCheckHttpsHealthCheckArrayInput` via: +// +// GetHealthCheckHttpsHealthCheckArray{ GetHealthCheckHttpsHealthCheckArgs{...} } +type GetHealthCheckHttpsHealthCheckArrayInput interface { + pulumi.Input + + ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput + ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(context.Context) GetHealthCheckHttpsHealthCheckArrayOutput +} + +type GetHealthCheckHttpsHealthCheckArray []GetHealthCheckHttpsHealthCheckInput + +func (GetHealthCheckHttpsHealthCheckArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetHealthCheckHttpsHealthCheck)(nil)).Elem() +} + +func (i GetHealthCheckHttpsHealthCheckArray) ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput { + return i.ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(context.Background()) +} + +func (i GetHealthCheckHttpsHealthCheckArray) ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetHealthCheckHttpsHealthCheckArrayOutput) +} + +type GetHealthCheckHttpsHealthCheckOutput struct{ *pulumi.OutputState } + +func (GetHealthCheckHttpsHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetHealthCheckHttpsHealthCheck)(nil)).Elem() +} + +func (o GetHealthCheckHttpsHealthCheckOutput) ToGetHealthCheckHttpsHealthCheckOutput() GetHealthCheckHttpsHealthCheckOutput { + return o +} + +func (o GetHealthCheckHttpsHealthCheckOutput) ToGetHealthCheckHttpsHealthCheckOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckOutput { + return o +} + +func (o GetHealthCheckHttpsHealthCheckOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.Host }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) int { return v.Port }).(pulumi.IntOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) PortName() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.PortName }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) PortSpecification() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.PortSpecification }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) ProxyHeader() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.ProxyHeader }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) RequestPath() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.RequestPath }).(pulumi.StringOutput) +} + +func (o GetHealthCheckHttpsHealthCheckOutput) Response() pulumi.StringOutput { + return o.ApplyT(func(v GetHealthCheckHttpsHealthCheck) string { return v.Response }).(pulumi.StringOutput) +} + +type GetHealthCheckHttpsHealthCheckArrayOutput struct{ *pulumi.OutputState } + +func (GetHealthCheckHttpsHealthCheckArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetHealthCheckHttpsHealthCheck)(nil)).Elem() +} + +func (o GetHealthCheckHttpsHealthCheckArrayOutput) ToGetHealthCheckHttpsHealthCheckArrayOutput() GetHealthCheckHttpsHealthCheckArrayOutput { + return o +} + +func (o GetHealthCheckHttpsHealthCheckArrayOutput) ToGetHealthCheckHttpsHealthCheckArrayOutputWithContext(ctx context.Context) GetHealthCheckHttpsHealthCheckArrayOutput { + return o +} + +func (o GetHealthCheckHttpsHealthCheckArrayOutput) Index(i pulumi.IntInput) GetHealthCheckHttpsHealthCheckOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetHealthCheckHttpsHealthCheck { + return vs[0].([]GetHealthCheckHttpsHealthCheck)[vs[1].(int)] + }).(GetHealthCheckHttpsHealthCheckOutput) +} + type GetHealthCheckLogConfig struct { Enable bool `pulumi:"enable"` } @@ -1169,6 +1429,100 @@ func (o GetInstanceGroupManagerAutoHealingPolicyArrayOutput) Index(i pulumi.IntI }).(GetInstanceGroupManagerAutoHealingPolicyOutput) } +type GetInstanceGroupManagerInstanceLifecyclePolicy struct { + ForceUpdateOnRepair string `pulumi:"forceUpdateOnRepair"` +} + +// GetInstanceGroupManagerInstanceLifecyclePolicyInput is an input type that accepts GetInstanceGroupManagerInstanceLifecyclePolicyArgs and GetInstanceGroupManagerInstanceLifecyclePolicyOutput values. +// You can construct a concrete instance of `GetInstanceGroupManagerInstanceLifecyclePolicyInput` via: +// +// GetInstanceGroupManagerInstanceLifecyclePolicyArgs{...} +type GetInstanceGroupManagerInstanceLifecyclePolicyInput interface { + pulumi.Input + + ToGetInstanceGroupManagerInstanceLifecyclePolicyOutput() GetInstanceGroupManagerInstanceLifecyclePolicyOutput + ToGetInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyOutput +} + +type GetInstanceGroupManagerInstanceLifecyclePolicyArgs struct { + ForceUpdateOnRepair pulumi.StringInput `pulumi:"forceUpdateOnRepair"` +} + +func (GetInstanceGroupManagerInstanceLifecyclePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i GetInstanceGroupManagerInstanceLifecyclePolicyArgs) ToGetInstanceGroupManagerInstanceLifecyclePolicyOutput() GetInstanceGroupManagerInstanceLifecyclePolicyOutput { + return i.ToGetInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(context.Background()) +} + +func (i GetInstanceGroupManagerInstanceLifecyclePolicyArgs) ToGetInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetInstanceGroupManagerInstanceLifecyclePolicyOutput) +} + +// GetInstanceGroupManagerInstanceLifecyclePolicyArrayInput is an input type that accepts GetInstanceGroupManagerInstanceLifecyclePolicyArray and GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput values. +// You can construct a concrete instance of `GetInstanceGroupManagerInstanceLifecyclePolicyArrayInput` via: +// +// GetInstanceGroupManagerInstanceLifecyclePolicyArray{ GetInstanceGroupManagerInstanceLifecyclePolicyArgs{...} } +type GetInstanceGroupManagerInstanceLifecyclePolicyArrayInput interface { + pulumi.Input + + ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput() GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput + ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutputWithContext(context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput +} + +type GetInstanceGroupManagerInstanceLifecyclePolicyArray []GetInstanceGroupManagerInstanceLifecyclePolicyInput + +func (GetInstanceGroupManagerInstanceLifecyclePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (i GetInstanceGroupManagerInstanceLifecyclePolicyArray) ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput() GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput { + return i.ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutputWithContext(context.Background()) +} + +func (i GetInstanceGroupManagerInstanceLifecyclePolicyArray) ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutputWithContext(ctx context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) +} + +type GetInstanceGroupManagerInstanceLifecyclePolicyOutput struct{ *pulumi.OutputState } + +func (GetInstanceGroupManagerInstanceLifecyclePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyOutput) ToGetInstanceGroupManagerInstanceLifecyclePolicyOutput() GetInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyOutput) ToGetInstanceGroupManagerInstanceLifecyclePolicyOutputWithContext(ctx context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyOutput) ForceUpdateOnRepair() pulumi.StringOutput { + return o.ApplyT(func(v GetInstanceGroupManagerInstanceLifecyclePolicy) string { return v.ForceUpdateOnRepair }).(pulumi.StringOutput) +} + +type GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput struct{ *pulumi.OutputState } + +func (GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetInstanceGroupManagerInstanceLifecyclePolicy)(nil)).Elem() +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput() GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput { + return o +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) ToGetInstanceGroupManagerInstanceLifecyclePolicyArrayOutputWithContext(ctx context.Context) GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput { + return o +} + +func (o GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput) Index(i pulumi.IntInput) GetInstanceGroupManagerInstanceLifecyclePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetInstanceGroupManagerInstanceLifecyclePolicy { + return vs[0].([]GetInstanceGroupManagerInstanceLifecyclePolicy)[vs[1].(int)] + }).(GetInstanceGroupManagerInstanceLifecyclePolicyOutput) +} + type GetInstanceGroupManagerNamedPort struct { // The name of the instance group. Either `name` or `selfLink` must be provided. Name string `pulumi:"name"` @@ -9824,6 +10178,10 @@ func (o GetSubnetworkSecondaryIpRangeArrayOutput) Index(i pulumi.IntInput) GetSu } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpHealthCheckInput)(nil)).Elem(), GetHealthCheckHttpHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpHealthCheckArrayInput)(nil)).Elem(), GetHealthCheckHttpHealthCheckArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpsHealthCheckInput)(nil)).Elem(), GetHealthCheckHttpsHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckHttpsHealthCheckArrayInput)(nil)).Elem(), GetHealthCheckHttpsHealthCheckArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckLogConfigInput)(nil)).Elem(), GetHealthCheckLogConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckLogConfigArrayInput)(nil)).Elem(), GetHealthCheckLogConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHealthCheckSslHealthCheckInput)(nil)).Elem(), GetHealthCheckSslHealthCheckArgs{}) @@ -9844,6 +10202,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerAllInstancesConfigArrayInput)(nil)).Elem(), GetInstanceGroupManagerAllInstancesConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerAutoHealingPolicyInput)(nil)).Elem(), GetInstanceGroupManagerAutoHealingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerAutoHealingPolicyArrayInput)(nil)).Elem(), GetInstanceGroupManagerAutoHealingPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerInstanceLifecyclePolicyInput)(nil)).Elem(), GetInstanceGroupManagerInstanceLifecyclePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerInstanceLifecyclePolicyArrayInput)(nil)).Elem(), GetInstanceGroupManagerInstanceLifecyclePolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerNamedPortInput)(nil)).Elem(), GetInstanceGroupManagerNamedPortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerNamedPortArrayInput)(nil)).Elem(), GetInstanceGroupManagerNamedPortArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetInstanceGroupManagerStatefulDiskInput)(nil)).Elem(), GetInstanceGroupManagerStatefulDiskArgs{}) @@ -9994,6 +10354,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetSnapshotSourceDiskEncryptionKeyArrayInput)(nil)).Elem(), GetSnapshotSourceDiskEncryptionKeyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworkSecondaryIpRangeInput)(nil)).Elem(), GetSubnetworkSecondaryIpRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworkSecondaryIpRangeArrayInput)(nil)).Elem(), GetSubnetworkSecondaryIpRangeArray{}) + pulumi.RegisterOutputType(GetHealthCheckHttpHealthCheckOutput{}) + pulumi.RegisterOutputType(GetHealthCheckHttpHealthCheckArrayOutput{}) + pulumi.RegisterOutputType(GetHealthCheckHttpsHealthCheckOutput{}) + pulumi.RegisterOutputType(GetHealthCheckHttpsHealthCheckArrayOutput{}) pulumi.RegisterOutputType(GetHealthCheckLogConfigOutput{}) pulumi.RegisterOutputType(GetHealthCheckLogConfigArrayOutput{}) pulumi.RegisterOutputType(GetHealthCheckSslHealthCheckOutput{}) @@ -10014,6 +10378,8 @@ func init() { pulumi.RegisterOutputType(GetInstanceGroupManagerAllInstancesConfigArrayOutput{}) pulumi.RegisterOutputType(GetInstanceGroupManagerAutoHealingPolicyOutput{}) pulumi.RegisterOutputType(GetInstanceGroupManagerAutoHealingPolicyArrayOutput{}) + pulumi.RegisterOutputType(GetInstanceGroupManagerInstanceLifecyclePolicyOutput{}) + pulumi.RegisterOutputType(GetInstanceGroupManagerInstanceLifecyclePolicyArrayOutput{}) pulumi.RegisterOutputType(GetInstanceGroupManagerNamedPortOutput{}) pulumi.RegisterOutputType(GetInstanceGroupManagerNamedPortArrayOutput{}) pulumi.RegisterOutputType(GetInstanceGroupManagerStatefulDiskOutput{}) diff --git a/sdk/go/gcp/compute/regionInstanceGroupManager.go b/sdk/go/gcp/compute/regionInstanceGroupManager.go index 11d6f49fae..d35b7553be 100644 --- a/sdk/go/gcp/compute/regionInstanceGroupManager.go +++ b/sdk/go/gcp/compute/regionInstanceGroupManager.go @@ -171,6 +171,8 @@ type RegionInstanceGroupManager struct { Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringOutput `pulumi:"instanceGroup"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy RegionInstanceGroupManagerInstanceLifecyclePolicyOutput `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -287,6 +289,8 @@ type regionInstanceGroupManagerState struct { Fingerprint *string `pulumi:"fingerprint"` // The full URL of the instance group created by the manager. InstanceGroup *string `pulumi:"instanceGroup"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy *RegionInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -369,6 +373,8 @@ type RegionInstanceGroupManagerState struct { Fingerprint pulumi.StringPtrInput // The full URL of the instance group created by the manager. InstanceGroup pulumi.StringPtrInput + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -451,6 +457,8 @@ type regionInstanceGroupManagerArgs struct { // The distribution policy for this managed instance // group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). DistributionPolicyZones []string `pulumi:"distributionPolicyZones"` + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy *RegionInstanceGroupManagerInstanceLifecyclePolicy `pulumi:"instanceLifecyclePolicy"` // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -526,6 +534,8 @@ type RegionInstanceGroupManagerArgs struct { // The distribution policy for this managed instance // group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). DistributionPolicyZones pulumi.StringArrayInput + // The instance lifecycle policy for this managed instance group. + InstanceLifecyclePolicy RegionInstanceGroupManagerInstanceLifecyclePolicyPtrInput // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -718,6 +728,13 @@ func (o RegionInstanceGroupManagerOutput) InstanceGroup() pulumi.StringOutput { return o.ApplyT(func(v *RegionInstanceGroupManager) pulumi.StringOutput { return v.InstanceGroup }).(pulumi.StringOutput) } +// The instance lifecycle policy for this managed instance group. +func (o RegionInstanceGroupManagerOutput) InstanceLifecyclePolicy() RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return o.ApplyT(func(v *RegionInstanceGroupManager) RegionInstanceGroupManagerInstanceLifecyclePolicyOutput { + return v.InstanceLifecyclePolicy + }).(RegionInstanceGroupManagerInstanceLifecyclePolicyOutput) +} + // Pagination behavior of the `listManagedInstances` API // method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. // If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. diff --git a/sdk/go/gcp/compute/regionTargetTcpProxy.go b/sdk/go/gcp/compute/regionTargetTcpProxy.go index b836ba1299..9a47f44d7e 100644 --- a/sdk/go/gcp/compute/regionTargetTcpProxy.go +++ b/sdk/go/gcp/compute/regionTargetTcpProxy.go @@ -11,6 +11,16 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Represents a RegionTargetTcpProxy resource, which is used by one or more +// forwarding rules to route incoming TCP requests to a regional TCP proxy load +// balancer. +// +// To get more information about RegionTargetTcpProxy, see: +// +// * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) +// * How-to Guides +// - [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) +// // ## Example Usage // // ## Import diff --git a/sdk/go/gcp/datafusion/instance.go b/sdk/go/gcp/datafusion/instance.go index 23c18d1afa..4c19083e5a 100644 --- a/sdk/go/gcp/datafusion/instance.go +++ b/sdk/go/gcp/datafusion/instance.go @@ -35,9 +35,6 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "basicInstance", &datafusion.InstanceArgs{ -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // Region: pulumi.String("us-central1"), // Type: pulumi.String("BASIC"), // }) @@ -105,9 +102,6 @@ import ( // return fmt.Sprintf("%v/%v", address, prefixLength), nil // }).(pulumi.StringOutput), // }, -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // }) // if err != nil { // return err @@ -194,11 +188,8 @@ import ( // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "enterpriseInstance", &datafusion.InstanceArgs{ // EnableRbac: pulumi.Bool(true), -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, -// Region: pulumi.String("us-central1"), -// Type: pulumi.String("ENTERPRISE"), +// Region: pulumi.String("us-central1"), +// Type: pulumi.String("ENTERPRISE"), // }) // if err != nil { // return err diff --git a/sdk/go/gcp/datastream/pulumiTypes.go b/sdk/go/gcp/datastream/pulumiTypes.go index f364423119..86d365d7d8 100644 --- a/sdk/go/gcp/datastream/pulumiTypes.go +++ b/sdk/go/gcp/datastream/pulumiTypes.go @@ -1854,6 +1854,12 @@ type StreamBackfillAll struct { // MySQL data source objects to avoid backfilling. // Structure is documented below. MysqlExcludedObjects *StreamBackfillAllMysqlExcludedObjects `pulumi:"mysqlExcludedObjects"` + // PostgreSQL data source objects to avoid backfilling. + // Structure is documented below. + OracleExcludedObjects *StreamBackfillAllOracleExcludedObjects `pulumi:"oracleExcludedObjects"` + // PostgreSQL data source objects to avoid backfilling. + // Structure is documented below. + PostgresqlExcludedObjects *StreamBackfillAllPostgresqlExcludedObjects `pulumi:"postgresqlExcludedObjects"` } // StreamBackfillAllInput is an input type that accepts StreamBackfillAllArgs and StreamBackfillAllOutput values. @@ -1871,6 +1877,12 @@ type StreamBackfillAllArgs struct { // MySQL data source objects to avoid backfilling. // Structure is documented below. MysqlExcludedObjects StreamBackfillAllMysqlExcludedObjectsPtrInput `pulumi:"mysqlExcludedObjects"` + // PostgreSQL data source objects to avoid backfilling. + // Structure is documented below. + OracleExcludedObjects StreamBackfillAllOracleExcludedObjectsPtrInput `pulumi:"oracleExcludedObjects"` + // PostgreSQL data source objects to avoid backfilling. + // Structure is documented below. + PostgresqlExcludedObjects StreamBackfillAllPostgresqlExcludedObjectsPtrInput `pulumi:"postgresqlExcludedObjects"` } func (StreamBackfillAllArgs) ElementType() reflect.Type { @@ -1956,6 +1968,20 @@ func (o StreamBackfillAllOutput) MysqlExcludedObjects() StreamBackfillAllMysqlEx return o.ApplyT(func(v StreamBackfillAll) *StreamBackfillAllMysqlExcludedObjects { return v.MysqlExcludedObjects }).(StreamBackfillAllMysqlExcludedObjectsPtrOutput) } +// PostgreSQL data source objects to avoid backfilling. +// Structure is documented below. +func (o StreamBackfillAllOutput) OracleExcludedObjects() StreamBackfillAllOracleExcludedObjectsPtrOutput { + return o.ApplyT(func(v StreamBackfillAll) *StreamBackfillAllOracleExcludedObjects { return v.OracleExcludedObjects }).(StreamBackfillAllOracleExcludedObjectsPtrOutput) +} + +// PostgreSQL data source objects to avoid backfilling. +// Structure is documented below. +func (o StreamBackfillAllOutput) PostgresqlExcludedObjects() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return o.ApplyT(func(v StreamBackfillAll) *StreamBackfillAllPostgresqlExcludedObjects { + return v.PostgresqlExcludedObjects + }).(StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) +} + type StreamBackfillAllPtrOutput struct{ *pulumi.OutputState } func (StreamBackfillAllPtrOutput) ElementType() reflect.Type { @@ -1991,6 +2017,28 @@ func (o StreamBackfillAllPtrOutput) MysqlExcludedObjects() StreamBackfillAllMysq }).(StreamBackfillAllMysqlExcludedObjectsPtrOutput) } +// PostgreSQL data source objects to avoid backfilling. +// Structure is documented below. +func (o StreamBackfillAllPtrOutput) OracleExcludedObjects() StreamBackfillAllOracleExcludedObjectsPtrOutput { + return o.ApplyT(func(v *StreamBackfillAll) *StreamBackfillAllOracleExcludedObjects { + if v == nil { + return nil + } + return v.OracleExcludedObjects + }).(StreamBackfillAllOracleExcludedObjectsPtrOutput) +} + +// PostgreSQL data source objects to avoid backfilling. +// Structure is documented below. +func (o StreamBackfillAllPtrOutput) PostgresqlExcludedObjects() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return o.ApplyT(func(v *StreamBackfillAll) *StreamBackfillAllPostgresqlExcludedObjects { + if v == nil { + return nil + } + return v.PostgresqlExcludedObjects + }).(StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) +} + type StreamBackfillAllMysqlExcludedObjects struct { // MySQL databases on the server // Structure is documented below. @@ -2522,2223 +2570,6279 @@ func (o StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnA }).(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) } -type StreamBackfillNone struct { +type StreamBackfillAllOracleExcludedObjects struct { + // Oracle schemas/databases in the database server + // Structure is documented below. + OracleSchemas []StreamBackfillAllOracleExcludedObjectsOracleSchema `pulumi:"oracleSchemas"` } -// StreamBackfillNoneInput is an input type that accepts StreamBackfillNoneArgs and StreamBackfillNoneOutput values. -// You can construct a concrete instance of `StreamBackfillNoneInput` via: +// StreamBackfillAllOracleExcludedObjectsInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsArgs and StreamBackfillAllOracleExcludedObjectsOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsInput` via: // -// StreamBackfillNoneArgs{...} -type StreamBackfillNoneInput interface { +// StreamBackfillAllOracleExcludedObjectsArgs{...} +type StreamBackfillAllOracleExcludedObjectsInput interface { pulumi.Input - ToStreamBackfillNoneOutput() StreamBackfillNoneOutput - ToStreamBackfillNoneOutputWithContext(context.Context) StreamBackfillNoneOutput + ToStreamBackfillAllOracleExcludedObjectsOutput() StreamBackfillAllOracleExcludedObjectsOutput + ToStreamBackfillAllOracleExcludedObjectsOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOutput } -type StreamBackfillNoneArgs struct { +type StreamBackfillAllOracleExcludedObjectsArgs struct { + // Oracle schemas/databases in the database server + // Structure is documented below. + OracleSchemas StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayInput `pulumi:"oracleSchemas"` } -func (StreamBackfillNoneArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamBackfillNone)(nil)).Elem() +func (StreamBackfillAllOracleExcludedObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjects)(nil)).Elem() } -func (i StreamBackfillNoneArgs) ToStreamBackfillNoneOutput() StreamBackfillNoneOutput { - return i.ToStreamBackfillNoneOutputWithContext(context.Background()) +func (i StreamBackfillAllOracleExcludedObjectsArgs) ToStreamBackfillAllOracleExcludedObjectsOutput() StreamBackfillAllOracleExcludedObjectsOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOutputWithContext(context.Background()) } -func (i StreamBackfillNoneArgs) ToStreamBackfillNoneOutputWithContext(ctx context.Context) StreamBackfillNoneOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNoneOutput) +func (i StreamBackfillAllOracleExcludedObjectsArgs) ToStreamBackfillAllOracleExcludedObjectsOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOutput) } -func (i StreamBackfillNoneArgs) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { - return i.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +func (i StreamBackfillAllOracleExcludedObjectsArgs) ToStreamBackfillAllOracleExcludedObjectsPtrOutput() StreamBackfillAllOracleExcludedObjectsPtrOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(context.Background()) } -func (i StreamBackfillNoneArgs) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNoneOutput).ToStreamBackfillNonePtrOutputWithContext(ctx) +func (i StreamBackfillAllOracleExcludedObjectsArgs) ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOutput).ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(ctx) } -// StreamBackfillNonePtrInput is an input type that accepts StreamBackfillNoneArgs, StreamBackfillNonePtr and StreamBackfillNonePtrOutput values. -// You can construct a concrete instance of `StreamBackfillNonePtrInput` via: +// StreamBackfillAllOracleExcludedObjectsPtrInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsArgs, StreamBackfillAllOracleExcludedObjectsPtr and StreamBackfillAllOracleExcludedObjectsPtrOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsPtrInput` via: // -// StreamBackfillNoneArgs{...} +// StreamBackfillAllOracleExcludedObjectsArgs{...} // // or: // // nil -type StreamBackfillNonePtrInput interface { +type StreamBackfillAllOracleExcludedObjectsPtrInput interface { pulumi.Input - ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput - ToStreamBackfillNonePtrOutputWithContext(context.Context) StreamBackfillNonePtrOutput + ToStreamBackfillAllOracleExcludedObjectsPtrOutput() StreamBackfillAllOracleExcludedObjectsPtrOutput + ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsPtrOutput } -type streamBackfillNonePtrType StreamBackfillNoneArgs +type streamBackfillAllOracleExcludedObjectsPtrType StreamBackfillAllOracleExcludedObjectsArgs -func StreamBackfillNonePtr(v *StreamBackfillNoneArgs) StreamBackfillNonePtrInput { - return (*streamBackfillNonePtrType)(v) +func StreamBackfillAllOracleExcludedObjectsPtr(v *StreamBackfillAllOracleExcludedObjectsArgs) StreamBackfillAllOracleExcludedObjectsPtrInput { + return (*streamBackfillAllOracleExcludedObjectsPtrType)(v) } -func (*streamBackfillNonePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamBackfillNone)(nil)).Elem() +func (*streamBackfillAllOracleExcludedObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillAllOracleExcludedObjects)(nil)).Elem() } -func (i *streamBackfillNonePtrType) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { - return i.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +func (i *streamBackfillAllOracleExcludedObjectsPtrType) ToStreamBackfillAllOracleExcludedObjectsPtrOutput() StreamBackfillAllOracleExcludedObjectsPtrOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(context.Background()) } -func (i *streamBackfillNonePtrType) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNonePtrOutput) +func (i *streamBackfillAllOracleExcludedObjectsPtrType) ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsPtrOutput) } -type StreamBackfillNoneOutput struct{ *pulumi.OutputState } +type StreamBackfillAllOracleExcludedObjectsOutput struct{ *pulumi.OutputState } -func (StreamBackfillNoneOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamBackfillNone)(nil)).Elem() +func (StreamBackfillAllOracleExcludedObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjects)(nil)).Elem() } -func (o StreamBackfillNoneOutput) ToStreamBackfillNoneOutput() StreamBackfillNoneOutput { +func (o StreamBackfillAllOracleExcludedObjectsOutput) ToStreamBackfillAllOracleExcludedObjectsOutput() StreamBackfillAllOracleExcludedObjectsOutput { return o } -func (o StreamBackfillNoneOutput) ToStreamBackfillNoneOutputWithContext(ctx context.Context) StreamBackfillNoneOutput { +func (o StreamBackfillAllOracleExcludedObjectsOutput) ToStreamBackfillAllOracleExcludedObjectsOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOutput { return o } -func (o StreamBackfillNoneOutput) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { - return o.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +func (o StreamBackfillAllOracleExcludedObjectsOutput) ToStreamBackfillAllOracleExcludedObjectsPtrOutput() StreamBackfillAllOracleExcludedObjectsPtrOutput { + return o.ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(context.Background()) } -func (o StreamBackfillNoneOutput) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamBackfillNone) *StreamBackfillNone { +func (o StreamBackfillAllOracleExcludedObjectsOutput) ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamBackfillAllOracleExcludedObjects) *StreamBackfillAllOracleExcludedObjects { return &v - }).(StreamBackfillNonePtrOutput) + }).(StreamBackfillAllOracleExcludedObjectsPtrOutput) } -type StreamBackfillNonePtrOutput struct{ *pulumi.OutputState } +// Oracle schemas/databases in the database server +// Structure is documented below. +func (o StreamBackfillAllOracleExcludedObjectsOutput) OracleSchemas() StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjects) []StreamBackfillAllOracleExcludedObjectsOracleSchema { + return v.OracleSchemas + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) +} -func (StreamBackfillNonePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamBackfillNone)(nil)).Elem() +type StreamBackfillAllOracleExcludedObjectsPtrOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllOracleExcludedObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillAllOracleExcludedObjects)(nil)).Elem() } -func (o StreamBackfillNonePtrOutput) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { +func (o StreamBackfillAllOracleExcludedObjectsPtrOutput) ToStreamBackfillAllOracleExcludedObjectsPtrOutput() StreamBackfillAllOracleExcludedObjectsPtrOutput { return o } -func (o StreamBackfillNonePtrOutput) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { +func (o StreamBackfillAllOracleExcludedObjectsPtrOutput) ToStreamBackfillAllOracleExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsPtrOutput { return o } -func (o StreamBackfillNonePtrOutput) Elem() StreamBackfillNoneOutput { - return o.ApplyT(func(v *StreamBackfillNone) StreamBackfillNone { +func (o StreamBackfillAllOracleExcludedObjectsPtrOutput) Elem() StreamBackfillAllOracleExcludedObjectsOutput { + return o.ApplyT(func(v *StreamBackfillAllOracleExcludedObjects) StreamBackfillAllOracleExcludedObjects { if v != nil { return *v } - var ret StreamBackfillNone + var ret StreamBackfillAllOracleExcludedObjects return ret - }).(StreamBackfillNoneOutput) + }).(StreamBackfillAllOracleExcludedObjectsOutput) } -type StreamDestinationConfig struct { - // A configuration for how data should be loaded to Cloud Storage. - // Structure is documented below. - BigqueryDestinationConfig *StreamDestinationConfigBigqueryDestinationConfig `pulumi:"bigqueryDestinationConfig"` - // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - DestinationConnectionProfile string `pulumi:"destinationConnectionProfile"` - // A configuration for how data should be loaded to Cloud Storage. +// Oracle schemas/databases in the database server +// Structure is documented below. +func (o StreamBackfillAllOracleExcludedObjectsPtrOutput) OracleSchemas() StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v *StreamBackfillAllOracleExcludedObjects) []StreamBackfillAllOracleExcludedObjectsOracleSchema { + if v == nil { + return nil + } + return v.OracleSchemas + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) +} + +type StreamBackfillAllOracleExcludedObjectsOracleSchema struct { + // Tables in the database. // Structure is documented below. - GcsDestinationConfig *StreamDestinationConfigGcsDestinationConfig `pulumi:"gcsDestinationConfig"` + OracleTables []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable `pulumi:"oracleTables"` + // Schema name. + Schema string `pulumi:"schema"` } -// StreamDestinationConfigInput is an input type that accepts StreamDestinationConfigArgs and StreamDestinationConfigOutput values. -// You can construct a concrete instance of `StreamDestinationConfigInput` via: +// StreamBackfillAllOracleExcludedObjectsOracleSchemaInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs and StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaInput` via: // -// StreamDestinationConfigArgs{...} -type StreamDestinationConfigInput interface { +// StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{...} +type StreamBackfillAllOracleExcludedObjectsOracleSchemaInput interface { pulumi.Input - ToStreamDestinationConfigOutput() StreamDestinationConfigOutput - ToStreamDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput } -type StreamDestinationConfigArgs struct { - // A configuration for how data should be loaded to Cloud Storage. - // Structure is documented below. - BigqueryDestinationConfig StreamDestinationConfigBigqueryDestinationConfigPtrInput `pulumi:"bigqueryDestinationConfig"` - // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - DestinationConnectionProfile pulumi.StringInput `pulumi:"destinationConnectionProfile"` - // A configuration for how data should be loaded to Cloud Storage. +type StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs struct { + // Tables in the database. // Structure is documented below. - GcsDestinationConfig StreamDestinationConfigGcsDestinationConfigPtrInput `pulumi:"gcsDestinationConfig"` + OracleTables StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayInput `pulumi:"oracleTables"` + // Schema name. + Schema pulumi.StringInput `pulumi:"schema"` } -func (StreamDestinationConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfig)(nil)).Elem() +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchema)(nil)).Elem() } -func (i StreamDestinationConfigArgs) ToStreamDestinationConfigOutput() StreamDestinationConfigOutput { - return i.ToStreamDestinationConfigOutputWithContext(context.Background()) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutputWithContext(context.Background()) } -func (i StreamDestinationConfigArgs) ToStreamDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigOutput) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) } -func (i StreamDestinationConfigArgs) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +// StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaArray and StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayInput` via: +// +// StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{ StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{...} } +type StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayInput interface { + pulumi.Input + + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput } -func (i StreamDestinationConfigArgs) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigOutput).ToStreamDestinationConfigPtrOutputWithContext(ctx) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaArray []StreamBackfillAllOracleExcludedObjectsOracleSchemaInput + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchema)(nil)).Elem() } -// StreamDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigArgs, StreamDestinationConfigPtr and StreamDestinationConfigPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigPtrInput` via: -// -// StreamDestinationConfigArgs{...} -// -// or: -// -// nil -type StreamDestinationConfigPtrInput interface { - pulumi.Input +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutputWithContext(context.Background()) +} - ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput - ToStreamDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigPtrOutput +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) } -type streamDestinationConfigPtrType StreamDestinationConfigArgs +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput struct{ *pulumi.OutputState } -func StreamDestinationConfigPtr(v *StreamDestinationConfigArgs) StreamDestinationConfigPtrInput { - return (*streamDestinationConfigPtrType)(v) +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchema)(nil)).Elem() } -func (*streamDestinationConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfig)(nil)).Elem() +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput { + return o } -func (i *streamDestinationConfigPtrType) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput { + return o } -func (i *streamDestinationConfigPtrType) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigPtrOutput) +// Tables in the database. +// Structure is documented below. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) OracleTables() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchema) []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable { + return v.OracleTables + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) } -type StreamDestinationConfigOutput struct{ *pulumi.OutputState } +// Schema name. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchema) string { return v.Schema }).(pulumi.StringOutput) +} -func (StreamDestinationConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfig)(nil)).Elem() +type StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchema)(nil)).Elem() } -func (o StreamDestinationConfigOutput) ToStreamDestinationConfigOutput() StreamDestinationConfigOutput { +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { return o } -func (o StreamDestinationConfigOutput) ToStreamDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigOutput { +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput { return o } -func (o StreamDestinationConfigOutput) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { - return o.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllOracleExcludedObjectsOracleSchema { + return vs[0].([]StreamBackfillAllOracleExcludedObjectsOracleSchema)[vs[1].(int)] + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput) } -func (o StreamDestinationConfigOutput) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfig) *StreamDestinationConfig { - return &v - }).(StreamDestinationConfigPtrOutput) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn `pulumi:"oracleColumns"` + // Table name. + Table string `pulumi:"table"` } -// A configuration for how data should be loaded to Cloud Storage. -// Structure is documented below. -func (o StreamDestinationConfigOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o.ApplyT(func(v StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { - return v.BigqueryDestinationConfig - }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs and StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableInput` via: +// +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{...} +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableInput interface { + pulumi.Input + + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput } -// Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} -func (o StreamDestinationConfigOutput) DestinationConnectionProfile() pulumi.StringOutput { - return o.ApplyT(func(v StreamDestinationConfig) string { return v.DestinationConnectionProfile }).(pulumi.StringOutput) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayInput `pulumi:"oracleColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` } -// A configuration for how data should be loaded to Cloud Storage. -// Structure is documented below. -func (o StreamDestinationConfigOutput) GcsDestinationConfig() StreamDestinationConfigGcsDestinationConfigPtrOutput { - return o.ApplyT(func(v StreamDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { - return v.GcsDestinationConfig - }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable)(nil)).Elem() } -type StreamDestinationConfigPtrOutput struct{ *pulumi.OutputState } +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutputWithContext(context.Background()) +} -func (StreamDestinationConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfig)(nil)).Elem() +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) } -func (o StreamDestinationConfigPtrOutput) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { - return o +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray and StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayInput` via: +// +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{ StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{...} } +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayInput interface { + pulumi.Input + + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput } -func (o StreamDestinationConfigPtrOutput) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableInput + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) +} + +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput { return o } -func (o StreamDestinationConfigPtrOutput) Elem() StreamDestinationConfigOutput { - return o.ApplyT(func(v *StreamDestinationConfig) StreamDestinationConfig { - if v != nil { - return *v - } - var ret StreamDestinationConfig - return ret - }).(StreamDestinationConfigOutput) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput { + return o } -// A configuration for how data should be loaded to Cloud Storage. +// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. -func (o StreamDestinationConfigPtrOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { - if v == nil { - return nil - } - return v.BigqueryDestinationConfig - }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) OracleColumns() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable) []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn { + return v.OracleColumns + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) } -// Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} -func (o StreamDestinationConfigPtrOutput) DestinationConnectionProfile() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfig) *string { - if v == nil { - return nil - } - return &v.DestinationConnectionProfile - }).(pulumi.StringPtrOutput) +// Table name. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable) string { return v.Table }).(pulumi.StringOutput) } -// A configuration for how data should be loaded to Cloud Storage. -// Structure is documented below. -func (o StreamDestinationConfigPtrOutput) GcsDestinationConfig() StreamDestinationConfigGcsDestinationConfigPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { - if v == nil { - return nil - } - return v.GcsDestinationConfig - }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable)(nil)).Elem() } -type StreamDestinationConfigBigqueryDestinationConfig struct { - // The guaranteed data freshness (in seconds) when querying tables created by the stream. - // Editing this field will only affect new tables created in the future, but existing tables - // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - DataFreshness *string `pulumi:"dataFreshness"` - // A single target dataset to which all data will be streamed. - // Structure is documented below. - SingleTargetDataset *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset `pulumi:"singleTargetDataset"` - // Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. - // Structure is documented below. - SourceHierarchyDatasets *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets `pulumi:"sourceHierarchyDatasets"` +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput { + return o } -// StreamDestinationConfigBigqueryDestinationConfigInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigArgs and StreamDestinationConfigBigqueryDestinationConfigOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigInput` via: -// -// StreamDestinationConfigBigqueryDestinationConfigArgs{...} -type StreamDestinationConfigBigqueryDestinationConfigInput interface { - pulumi.Input +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput { + return o +} - ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput - ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable { + return vs[0].([]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable)[vs[1].(int)] + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput) } -type StreamDestinationConfigBigqueryDestinationConfigArgs struct { - // The guaranteed data freshness (in seconds) when querying tables created by the stream. - // Editing this field will only affect new tables created in the future, but existing tables - // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - DataFreshness pulumi.StringPtrInput `pulumi:"dataFreshness"` - // A single target dataset to which all data will be streamed. - // Structure is documented below. - SingleTargetDataset StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput `pulumi:"singleTargetDataset"` - // Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. - // Structure is documented below. - SourceHierarchyDatasets StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput `pulumi:"sourceHierarchyDatasets"` +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn struct { + // Column name. + Column *string `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType *string `pulumi:"dataType"` + // Column encoding. + Encoding *string `pulumi:"encoding"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` } -func (StreamDestinationConfigBigqueryDestinationConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs and StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnInput` via: +// +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{...} +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnInput interface { + pulumi.Input + + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput } -func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(context.Background()) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs struct { + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column encoding. + Encoding pulumi.StringPtrInput `pulumi:"encoding"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` } -func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigOutput) +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Background()) } -func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigOutput).ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) } -// StreamDestinationConfigBigqueryDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigArgs, StreamDestinationConfigBigqueryDestinationConfigPtr and StreamDestinationConfigBigqueryDestinationConfigPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigPtrInput` via: -// -// StreamDestinationConfigBigqueryDestinationConfigArgs{...} +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayInput is an input type that accepts StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray and StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayInput` via: // -// or: -// -// nil -type StreamDestinationConfigBigqueryDestinationConfigPtrInput interface { +// StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{ StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{...} } +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput - ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput + ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput } -type streamDestinationConfigBigqueryDestinationConfigPtrType StreamDestinationConfigBigqueryDestinationConfigArgs - -func StreamDestinationConfigBigqueryDestinationConfigPtr(v *StreamDestinationConfigBigqueryDestinationConfigArgs) StreamDestinationConfigBigqueryDestinationConfigPtrInput { - return (*streamDestinationConfigBigqueryDestinationConfigPtrType)(v) -} +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray []StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnInput -func (*streamDestinationConfigBigqueryDestinationConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (i *streamDestinationConfigBigqueryDestinationConfigPtrType) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return i.ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Background()) } -func (i *streamDestinationConfigBigqueryDestinationConfigPtrType) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +func (i StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigOutput struct{ *pulumi.OutputState } +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput { +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput { +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +// Column name. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { - return &v - }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +// The Oracle data type. Full data types list can be found here: +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) } -// The guaranteed data freshness (in seconds) when querying tables created by the stream. -// Editing this field will only affect new tables created in the future, but existing tables -// will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. -// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) DataFreshness() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *string { return v.DataFreshness }).(pulumi.StringPtrOutput) +// Column encoding. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Encoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Encoding + }).(pulumi.StringPtrOutput) } -// A single target dataset to which all data will be streamed. -// Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { - return v.SingleTargetDataset - }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +// Column length. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) } -// Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. -// Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigOutput) SourceHierarchyDatasets() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { - return v.SourceHierarchyDatasets - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +// Whether or not the column can accept a null value. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) } -type StreamDestinationConfigBigqueryDestinationConfigPtrOutput struct{ *pulumi.OutputState } +// The ordinal position of the column in the table. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) +} -func (StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +// Column precision. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o +// Whether or not the column represents a primary key. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { - return o +// Column scale. +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn) *int { return v.Scale }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) StreamDestinationConfigBigqueryDestinationConfig { - if v != nil { - return *v - } - var ret StreamDestinationConfigBigqueryDestinationConfig - return ret - }).(StreamDestinationConfigBigqueryDestinationConfigOutput) +type StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -// The guaranteed data freshness (in seconds) when querying tables created by the stream. -// Editing this field will only affect new tables created in the future, but existing tables -// will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. -// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) DataFreshness() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *string { - if v == nil { - return nil - } - return v.DataFreshness - }).(pulumi.StringPtrOutput) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o } -// A single target dataset to which all data will be streamed. -// Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { - if v == nil { - return nil - } - return v.SingleTargetDataset - }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o } -// Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. -// Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SourceHierarchyDatasets() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { - if v == nil { - return nil - } - return v.SourceHierarchyDatasets - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +func (o StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn { + return vs[0].([]StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn)[vs[1].(int)] + }).(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset struct { - // Dataset ID in the format projects/{project}/datasets/{dataset_id} - DatasetId string `pulumi:"datasetId"` +type StreamBackfillAllPostgresqlExcludedObjects struct { + // PostgreSQL schemas on the server + // Structure is documented below. + PostgresqlSchemas []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema `pulumi:"postgresqlSchemas"` } -// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs and StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput` via: +// StreamBackfillAllPostgresqlExcludedObjectsInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsArgs and StreamBackfillAllPostgresqlExcludedObjectsOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsInput` via: // -// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{...} -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput interface { +// StreamBackfillAllPostgresqlExcludedObjectsArgs{...} +type StreamBackfillAllPostgresqlExcludedObjectsInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput - ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput + ToStreamBackfillAllPostgresqlExcludedObjectsOutput() StreamBackfillAllPostgresqlExcludedObjectsOutput + ToStreamBackfillAllPostgresqlExcludedObjectsOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsOutput } -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs struct { - // Dataset ID in the format projects/{project}/datasets/{dataset_id} - DatasetId pulumi.StringInput `pulumi:"datasetId"` +type StreamBackfillAllPostgresqlExcludedObjectsArgs struct { + // PostgreSQL schemas on the server + // Structure is documented below. + PostgresqlSchemas StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayInput `pulumi:"postgresqlSchemas"` } -func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +func (StreamBackfillAllPostgresqlExcludedObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjects)(nil)).Elem() } -func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(context.Background()) +func (i StreamBackfillAllPostgresqlExcludedObjectsArgs) ToStreamBackfillAllPostgresqlExcludedObjectsOutput() StreamBackfillAllPostgresqlExcludedObjectsOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsOutputWithContext(context.Background()) } -func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) +func (i StreamBackfillAllPostgresqlExcludedObjectsArgs) ToStreamBackfillAllPostgresqlExcludedObjectsOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsOutput) } -func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +func (i StreamBackfillAllPostgresqlExcludedObjectsArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutput() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(context.Background()) } -func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput).ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx) +func (i StreamBackfillAllPostgresqlExcludedObjectsArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsOutput).ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(ctx) } -// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs, StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtr and StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput` via: +// StreamBackfillAllPostgresqlExcludedObjectsPtrInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsArgs, StreamBackfillAllPostgresqlExcludedObjectsPtr and StreamBackfillAllPostgresqlExcludedObjectsPtrOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPtrInput` via: // -// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{...} +// StreamBackfillAllPostgresqlExcludedObjectsArgs{...} // // or: // // nil -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput interface { +type StreamBackfillAllPostgresqlExcludedObjectsPtrInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput - ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutput() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPtrOutput } -type streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs +type streamBackfillAllPostgresqlExcludedObjectsPtrType StreamBackfillAllPostgresqlExcludedObjectsArgs -func StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtr(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput { - return (*streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType)(v) +func StreamBackfillAllPostgresqlExcludedObjectsPtr(v *StreamBackfillAllPostgresqlExcludedObjectsArgs) StreamBackfillAllPostgresqlExcludedObjectsPtrInput { + return (*streamBackfillAllPostgresqlExcludedObjectsPtrType)(v) } -func (*streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +func (*streamBackfillAllPostgresqlExcludedObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillAllPostgresqlExcludedObjects)(nil)).Elem() } -func (i *streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +func (i *streamBackfillAllPostgresqlExcludedObjectsPtrType) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutput() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(context.Background()) } -func (i *streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +func (i *streamBackfillAllPostgresqlExcludedObjectsPtrType) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput struct{ *pulumi.OutputState } +type StreamBackfillAllPostgresqlExcludedObjectsOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +func (StreamBackfillAllPostgresqlExcludedObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjects)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { +func (o StreamBackfillAllPostgresqlExcludedObjectsOutput) ToStreamBackfillAllPostgresqlExcludedObjectsOutput() StreamBackfillAllPostgresqlExcludedObjectsOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { +func (o StreamBackfillAllPostgresqlExcludedObjectsOutput) ToStreamBackfillAllPostgresqlExcludedObjectsOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return o.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +func (o StreamBackfillAllPostgresqlExcludedObjectsOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutput() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return o.ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(context.Background()) } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { +func (o StreamBackfillAllPostgresqlExcludedObjectsOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamBackfillAllPostgresqlExcludedObjects) *StreamBackfillAllPostgresqlExcludedObjects { return &v - }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) + }).(StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) } -// Dataset ID in the format projects/{project}/datasets/{dataset_id} -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) DatasetId() pulumi.StringOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) string { return v.DatasetId }).(pulumi.StringOutput) +// PostgreSQL schemas on the server +// Structure is documented below. +func (o StreamBackfillAllPostgresqlExcludedObjectsOutput) PostgresqlSchemas() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjects) []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { + return v.PostgresqlSchemas + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput struct{ *pulumi.OutputState } +type StreamBackfillAllPostgresqlExcludedObjectsPtrOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +func (StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillAllPostgresqlExcludedObjects)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { +func (o StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutput() StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { +func (o StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPtrOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPtrOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { +func (o StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) Elem() StreamBackfillAllPostgresqlExcludedObjectsOutput { + return o.ApplyT(func(v *StreamBackfillAllPostgresqlExcludedObjects) StreamBackfillAllPostgresqlExcludedObjects { if v != nil { return *v } - var ret StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset + var ret StreamBackfillAllPostgresqlExcludedObjects return ret - }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) + }).(StreamBackfillAllPostgresqlExcludedObjectsOutput) } -// Dataset ID in the format projects/{project}/datasets/{dataset_id} -func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) DatasetId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) *string { +// PostgreSQL schemas on the server +// Structure is documented below. +func (o StreamBackfillAllPostgresqlExcludedObjectsPtrOutput) PostgresqlSchemas() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v *StreamBackfillAllPostgresqlExcludedObjects) []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { if v == nil { return nil } - return &v.DatasetId - }).(pulumi.StringPtrOutput) + return v.PostgresqlSchemas + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets struct { - // Dataset template used for dynamic dataset creation. +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema struct { + // Tables in the schema. // Structure is documented below. - DatasetTemplate StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate `pulumi:"datasetTemplate"` + PostgresqlTables []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable `pulumi:"postgresqlTables"` + // Database name. + Schema string `pulumi:"schema"` } -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput` via: +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaInput` via: // -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{...} -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput interface { +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{...} +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs struct { - // Dataset template used for dynamic dataset creation. +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs struct { + // Tables in the schema. // Structure is documented below. - DatasetTemplate StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput `pulumi:"datasetTemplate"` + PostgresqlTables StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayInput `pulumi:"postgresqlTables"` + // Database name. + Schema pulumi.StringInput `pulumi:"schema"` } -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ElementType() reflect.Type { +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) +} + +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayInput` via: +// +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{ StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{...} } +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayInput interface { + pulumi.Input + + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaInput + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput { + return o +} + +// Tables in the schema. +// Structure is documented below. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) PostgresqlTables() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema) []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable { + return v.PostgresqlTables + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) +} + +// Database name. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema) string { return v.Schema }).(pulumi.StringOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { + return vs[0].([]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema)[vs[1].(int)] + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + PostgresqlColumns []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn `pulumi:"postgresqlColumns"` + // Table name. + Table string `pulumi:"table"` +} + +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableInput` via: +// +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{...} +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableInput interface { + pulumi.Input + + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + PostgresqlColumns StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput `pulumi:"postgresqlColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` +} + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) +} + +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayInput` via: +// +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{ StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{...} } +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayInput interface { + pulumi.Input + + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableInput + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput { + return o +} + +// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// Structure is documented below. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) PostgresqlColumns() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable) []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return v.PostgresqlColumns + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) +} + +// Table name. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable) string { + return v.Table + }).(pulumi.StringOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable { + return vs[0].([]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable)[vs[1].(int)] + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn struct { + // Column name. + Column *string `pulumi:"column"` + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html + DataType *string `pulumi:"dataType"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` +} + +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput` via: +// +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput interface { + pulumi.Input + + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs struct { + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` +} + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) +} + +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput is an input type that accepts StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray and StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput values. +// You can construct a concrete instance of `StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput` via: +// +// StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} } +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput interface { + pulumi.Input + + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput + ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray []StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return i.ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Background()) +} + +func (i StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return o +} + +// Column name. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) +} + +// The PostgreSQL data type. Full data types list can be found here: +// https://www.postgresql.org/docs/current/datatype.html +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) +} + +// Column length. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column can accept a null value. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) +} + +// The ordinal position of the column in the table. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) +} + +// Column precision. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column represents a primary key. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) +} + +// Column scale. +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Scale + }).(pulumi.IntPtrOutput) +} + +type StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return o +} + +func (o StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) Index(i pulumi.IntInput) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return vs[0].([]StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)[vs[1].(int)] + }).(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) +} + +type StreamBackfillNone struct { +} + +// StreamBackfillNoneInput is an input type that accepts StreamBackfillNoneArgs and StreamBackfillNoneOutput values. +// You can construct a concrete instance of `StreamBackfillNoneInput` via: +// +// StreamBackfillNoneArgs{...} +type StreamBackfillNoneInput interface { + pulumi.Input + + ToStreamBackfillNoneOutput() StreamBackfillNoneOutput + ToStreamBackfillNoneOutputWithContext(context.Context) StreamBackfillNoneOutput +} + +type StreamBackfillNoneArgs struct { +} + +func (StreamBackfillNoneArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillNone)(nil)).Elem() +} + +func (i StreamBackfillNoneArgs) ToStreamBackfillNoneOutput() StreamBackfillNoneOutput { + return i.ToStreamBackfillNoneOutputWithContext(context.Background()) +} + +func (i StreamBackfillNoneArgs) ToStreamBackfillNoneOutputWithContext(ctx context.Context) StreamBackfillNoneOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNoneOutput) +} + +func (i StreamBackfillNoneArgs) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { + return i.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +} + +func (i StreamBackfillNoneArgs) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNoneOutput).ToStreamBackfillNonePtrOutputWithContext(ctx) +} + +// StreamBackfillNonePtrInput is an input type that accepts StreamBackfillNoneArgs, StreamBackfillNonePtr and StreamBackfillNonePtrOutput values. +// You can construct a concrete instance of `StreamBackfillNonePtrInput` via: +// +// StreamBackfillNoneArgs{...} +// +// or: +// +// nil +type StreamBackfillNonePtrInput interface { + pulumi.Input + + ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput + ToStreamBackfillNonePtrOutputWithContext(context.Context) StreamBackfillNonePtrOutput +} + +type streamBackfillNonePtrType StreamBackfillNoneArgs + +func StreamBackfillNonePtr(v *StreamBackfillNoneArgs) StreamBackfillNonePtrInput { + return (*streamBackfillNonePtrType)(v) +} + +func (*streamBackfillNonePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillNone)(nil)).Elem() +} + +func (i *streamBackfillNonePtrType) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { + return i.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +} + +func (i *streamBackfillNonePtrType) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamBackfillNonePtrOutput) +} + +type StreamBackfillNoneOutput struct{ *pulumi.OutputState } + +func (StreamBackfillNoneOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamBackfillNone)(nil)).Elem() +} + +func (o StreamBackfillNoneOutput) ToStreamBackfillNoneOutput() StreamBackfillNoneOutput { + return o +} + +func (o StreamBackfillNoneOutput) ToStreamBackfillNoneOutputWithContext(ctx context.Context) StreamBackfillNoneOutput { + return o +} + +func (o StreamBackfillNoneOutput) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { + return o.ToStreamBackfillNonePtrOutputWithContext(context.Background()) +} + +func (o StreamBackfillNoneOutput) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamBackfillNone) *StreamBackfillNone { + return &v + }).(StreamBackfillNonePtrOutput) +} + +type StreamBackfillNonePtrOutput struct{ *pulumi.OutputState } + +func (StreamBackfillNonePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamBackfillNone)(nil)).Elem() +} + +func (o StreamBackfillNonePtrOutput) ToStreamBackfillNonePtrOutput() StreamBackfillNonePtrOutput { + return o +} + +func (o StreamBackfillNonePtrOutput) ToStreamBackfillNonePtrOutputWithContext(ctx context.Context) StreamBackfillNonePtrOutput { + return o +} + +func (o StreamBackfillNonePtrOutput) Elem() StreamBackfillNoneOutput { + return o.ApplyT(func(v *StreamBackfillNone) StreamBackfillNone { + if v != nil { + return *v + } + var ret StreamBackfillNone + return ret + }).(StreamBackfillNoneOutput) +} + +type StreamDestinationConfig struct { + // A configuration for how data should be loaded to Cloud Storage. + // Structure is documented below. + BigqueryDestinationConfig *StreamDestinationConfigBigqueryDestinationConfig `pulumi:"bigqueryDestinationConfig"` + // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + DestinationConnectionProfile string `pulumi:"destinationConnectionProfile"` + // A configuration for how data should be loaded to Cloud Storage. + // Structure is documented below. + GcsDestinationConfig *StreamDestinationConfigGcsDestinationConfig `pulumi:"gcsDestinationConfig"` +} + +// StreamDestinationConfigInput is an input type that accepts StreamDestinationConfigArgs and StreamDestinationConfigOutput values. +// You can construct a concrete instance of `StreamDestinationConfigInput` via: +// +// StreamDestinationConfigArgs{...} +type StreamDestinationConfigInput interface { + pulumi.Input + + ToStreamDestinationConfigOutput() StreamDestinationConfigOutput + ToStreamDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigOutput +} + +type StreamDestinationConfigArgs struct { + // A configuration for how data should be loaded to Cloud Storage. + // Structure is documented below. + BigqueryDestinationConfig StreamDestinationConfigBigqueryDestinationConfigPtrInput `pulumi:"bigqueryDestinationConfig"` + // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + DestinationConnectionProfile pulumi.StringInput `pulumi:"destinationConnectionProfile"` + // A configuration for how data should be loaded to Cloud Storage. + // Structure is documented below. + GcsDestinationConfig StreamDestinationConfigGcsDestinationConfigPtrInput `pulumi:"gcsDestinationConfig"` +} + +func (StreamDestinationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfig)(nil)).Elem() +} + +func (i StreamDestinationConfigArgs) ToStreamDestinationConfigOutput() StreamDestinationConfigOutput { + return i.ToStreamDestinationConfigOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigArgs) ToStreamDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigOutput) +} + +func (i StreamDestinationConfigArgs) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigArgs) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigOutput).ToStreamDestinationConfigPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigArgs, StreamDestinationConfigPtr and StreamDestinationConfigPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigPtrInput` via: +// +// StreamDestinationConfigArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput + ToStreamDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigPtrOutput +} + +type streamDestinationConfigPtrType StreamDestinationConfigArgs + +func StreamDestinationConfigPtr(v *StreamDestinationConfigArgs) StreamDestinationConfigPtrInput { + return (*streamDestinationConfigPtrType)(v) +} + +func (*streamDestinationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfig)(nil)).Elem() +} + +func (i *streamDestinationConfigPtrType) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigPtrType) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigPtrOutput) +} + +type StreamDestinationConfigOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigOutput) ToStreamDestinationConfigOutput() StreamDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigOutput) ToStreamDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigOutput) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { + return o.ToStreamDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigOutput) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfig) *StreamDestinationConfig { + return &v + }).(StreamDestinationConfigPtrOutput) +} + +// A configuration for how data should be loaded to Cloud Storage. +// Structure is documented below. +func (o StreamDestinationConfigOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o.ApplyT(func(v StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { + return v.BigqueryDestinationConfig + }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +} + +// Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} +func (o StreamDestinationConfigOutput) DestinationConnectionProfile() pulumi.StringOutput { + return o.ApplyT(func(v StreamDestinationConfig) string { return v.DestinationConnectionProfile }).(pulumi.StringOutput) +} + +// A configuration for how data should be loaded to Cloud Storage. +// Structure is documented below. +func (o StreamDestinationConfigOutput) GcsDestinationConfig() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o.ApplyT(func(v StreamDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { + return v.GcsDestinationConfig + }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +} + +type StreamDestinationConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigPtrOutput) ToStreamDestinationConfigPtrOutput() StreamDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigPtrOutput) ToStreamDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigPtrOutput) Elem() StreamDestinationConfigOutput { + return o.ApplyT(func(v *StreamDestinationConfig) StreamDestinationConfig { + if v != nil { + return *v + } + var ret StreamDestinationConfig + return ret + }).(StreamDestinationConfigOutput) +} + +// A configuration for how data should be loaded to Cloud Storage. +// Structure is documented below. +func (o StreamDestinationConfigPtrOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { + if v == nil { + return nil + } + return v.BigqueryDestinationConfig + }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +} + +// Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} +func (o StreamDestinationConfigPtrOutput) DestinationConnectionProfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfig) *string { + if v == nil { + return nil + } + return &v.DestinationConnectionProfile + }).(pulumi.StringPtrOutput) +} + +// A configuration for how data should be loaded to Cloud Storage. +// Structure is documented below. +func (o StreamDestinationConfigPtrOutput) GcsDestinationConfig() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { + if v == nil { + return nil + } + return v.GcsDestinationConfig + }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfig struct { + // The guaranteed data freshness (in seconds) when querying tables created by the stream. + // Editing this field will only affect new tables created in the future, but existing tables + // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + DataFreshness *string `pulumi:"dataFreshness"` + // A single target dataset to which all data will be streamed. + // Structure is documented below. + SingleTargetDataset *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset `pulumi:"singleTargetDataset"` + // Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + // Structure is documented below. + SourceHierarchyDatasets *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets `pulumi:"sourceHierarchyDatasets"` +} + +// StreamDestinationConfigBigqueryDestinationConfigInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigArgs and StreamDestinationConfigBigqueryDestinationConfigOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput + ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigArgs struct { + // The guaranteed data freshness (in seconds) when querying tables created by the stream. + // Editing this field will only affect new tables created in the future, but existing tables + // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + DataFreshness pulumi.StringPtrInput `pulumi:"dataFreshness"` + // A single target dataset to which all data will be streamed. + // Structure is documented below. + SingleTargetDataset StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput `pulumi:"singleTargetDataset"` + // Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + // Structure is documented below. + SourceHierarchyDatasets StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput `pulumi:"sourceHierarchyDatasets"` +} + +func (StreamDestinationConfigBigqueryDestinationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigArgs) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigOutput).ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigArgs, StreamDestinationConfigBigqueryDestinationConfigPtr and StreamDestinationConfigBigqueryDestinationConfigPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigPtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigPtrType StreamDestinationConfigBigqueryDestinationConfigArgs + +func StreamDestinationConfigBigqueryDestinationConfigPtr(v *StreamDestinationConfigBigqueryDestinationConfigArgs) StreamDestinationConfigBigqueryDestinationConfigPtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigPtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigPtrType) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigPtrType) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigOutput() StreamDestinationConfigBigqueryDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) +} + +// The guaranteed data freshness (in seconds) when querying tables created by the stream. +// Editing this field will only affect new tables created in the future, but existing tables +// will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. +// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) DataFreshness() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *string { return v.DataFreshness }).(pulumi.StringPtrOutput) +} + +// A single target dataset to which all data will be streamed. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { + return v.SingleTargetDataset + }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +} + +// Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) SourceHierarchyDatasets() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { + return v.SourceHierarchyDatasets + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutput() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) StreamDestinationConfigBigqueryDestinationConfig { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfig + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigOutput) +} + +// The guaranteed data freshness (in seconds) when querying tables created by the stream. +// Editing this field will only affect new tables created in the future, but existing tables +// will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. +// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) DataFreshness() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *string { + if v == nil { + return nil + } + return v.DataFreshness + }).(pulumi.StringPtrOutput) +} + +// A single target dataset to which all data will be streamed. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { + if v == nil { + return nil + } + return v.SingleTargetDataset + }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +} + +// Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SourceHierarchyDatasets() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { + if v == nil { + return nil + } + return v.SourceHierarchyDatasets + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset struct { + // Dataset ID in the format projects/{project}/datasets/{dataset_id} + DatasetId string `pulumi:"datasetId"` +} + +// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs and StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput + ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs struct { + // Dataset ID in the format projects/{project}/datasets/{dataset_id} + DatasetId pulumi.StringInput `pulumi:"datasetId"` +} + +func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput).ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs, StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtr and StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs + +func StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtr(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) +} + +// Dataset ID in the format projects/{project}/datasets/{dataset_id} +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) DatasetId() pulumi.StringOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) string { return v.DatasetId }).(pulumi.StringOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput) +} + +// Dataset ID in the format projects/{project}/datasets/{dataset_id} +func (o StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput) DatasetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset) *string { + if v == nil { + return nil + } + return &v.DatasetId + }).(pulumi.StringPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets struct { + // Dataset template used for dynamic dataset creation. + // Structure is documented below. + DatasetTemplate StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate `pulumi:"datasetTemplate"` +} + +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs struct { + // Dataset template used for dynamic dataset creation. + // Structure is documented below. + DatasetTemplate StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput `pulumi:"datasetTemplate"` +} + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput).ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs, StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtr and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs + +func StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtr(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ElementType() reflect.Type { return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(context.Background()) +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +} + +// Dataset template used for dynamic dataset creation. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) DatasetTemplate() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { + return v.DatasetTemplate + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) +} + +// Dataset template used for dynamic dataset creation. +// Structure is documented below. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) DatasetTemplate() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { + if v == nil { + return nil + } + return &v.DatasetTemplate + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate struct { + // If supplied, every created dataset will have its name prefixed by the provided value. + // The prefix and name will be separated by an underscore. i.e. _. + DatasetIdPrefix *string `pulumi:"datasetIdPrefix"` + // Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + // table. The BigQuery Service Account associated with your project requires access to this + // encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + // See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + KmsKeyName *string `pulumi:"kmsKeyName"` + // The geographic location where the dataset should reside. + // See https://cloud.google.com/bigquery/docs/locations for supported locations. + Location string `pulumi:"location"` +} + +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs struct { + // If supplied, every created dataset will have its name prefixed by the provided value. + // The prefix and name will be separated by an underscore. i.e. _. + DatasetIdPrefix pulumi.StringPtrInput `pulumi:"datasetIdPrefix"` + // Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + // table. The BigQuery Service Account associated with your project requires access to this + // encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + // See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` + // The geographic location where the dataset should reside. + // See https://cloud.google.com/bigquery/docs/locations for supported locations. + Location pulumi.StringInput `pulumi:"location"` +} + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput).ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs, StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtr and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs + +func StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtr(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) +} + +// If supplied, every created dataset will have its name prefixed by the provided value. +// The prefix and name will be separated by an underscore. i.e. _. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) DatasetIdPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { + return v.DatasetIdPrefix + }).(pulumi.StringPtrOutput) +} + +// Describes the Cloud KMS encryption key that will be used to protect destination BigQuery +// table. The BigQuery Service Account associated with your project requires access to this +// encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. +// See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) KmsKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { + return v.KmsKeyName + }).(pulumi.StringPtrOutput) +} + +// The geographic location where the dataset should reside. +// See https://cloud.google.com/bigquery/docs/locations for supported locations. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) string { + return v.Location + }).(pulumi.StringOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +} + +// If supplied, every created dataset will have its name prefixed by the provided value. +// The prefix and name will be separated by an underscore. i.e. _. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) DatasetIdPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { + if v == nil { + return nil + } + return v.DatasetIdPrefix + }).(pulumi.StringPtrOutput) +} + +// Describes the Cloud KMS encryption key that will be used to protect destination BigQuery +// table. The BigQuery Service Account associated with your project requires access to this +// encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. +// See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) KmsKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { + if v == nil { + return nil + } + return v.KmsKeyName + }).(pulumi.StringPtrOutput) +} + +// The geographic location where the dataset should reside. +// See https://cloud.google.com/bigquery/docs/locations for supported locations. +func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { + if v == nil { + return nil + } + return &v.Location + }).(pulumi.StringPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfig struct { + // AVRO file format configuration. + AvroFileFormat *StreamDestinationConfigGcsDestinationConfigAvroFileFormat `pulumi:"avroFileFormat"` + // The maximum duration for which new events are added before a file is closed and a new file is created. + // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + FileRotationInterval *string `pulumi:"fileRotationInterval"` + // The maximum file size to be saved in the bucket. + FileRotationMb *int `pulumi:"fileRotationMb"` + // JSON file format configuration. + // Structure is documented below. + JsonFileFormat *StreamDestinationConfigGcsDestinationConfigJsonFileFormat `pulumi:"jsonFileFormat"` + // Path inside the Cloud Storage bucket to write data to. + Path *string `pulumi:"path"` +} + +// StreamDestinationConfigGcsDestinationConfigInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigArgs and StreamDestinationConfigGcsDestinationConfigOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigInput` via: +// +// StreamDestinationConfigGcsDestinationConfigArgs{...} +type StreamDestinationConfigGcsDestinationConfigInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput + ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigOutput +} + +type StreamDestinationConfigGcsDestinationConfigArgs struct { + // AVRO file format configuration. + AvroFileFormat StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput `pulumi:"avroFileFormat"` + // The maximum duration for which new events are added before a file is closed and a new file is created. + // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + FileRotationInterval pulumi.StringPtrInput `pulumi:"fileRotationInterval"` + // The maximum file size to be saved in the bucket. + FileRotationMb pulumi.IntPtrInput `pulumi:"fileRotationMb"` + // JSON file format configuration. + // Structure is documented below. + JsonFileFormat StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput `pulumi:"jsonFileFormat"` + // Path inside the Cloud Storage bucket to write data to. + Path pulumi.StringPtrInput `pulumi:"path"` +} + +func (StreamDestinationConfigGcsDestinationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +} + +func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigOutput) +} + +func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigOutput).ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigGcsDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigArgs, StreamDestinationConfigGcsDestinationConfigPtr and StreamDestinationConfigGcsDestinationConfigPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigPtrInput` via: +// +// StreamDestinationConfigGcsDestinationConfigArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigGcsDestinationConfigPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput + ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput +} + +type streamDestinationConfigGcsDestinationConfigPtrType StreamDestinationConfigGcsDestinationConfigArgs + +func StreamDestinationConfigGcsDestinationConfigPtr(v *StreamDestinationConfigGcsDestinationConfigArgs) StreamDestinationConfigGcsDestinationConfigPtrInput { + return (*streamDestinationConfigGcsDestinationConfigPtrType)(v) +} + +func (*streamDestinationConfigGcsDestinationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +} + +func (i *streamDestinationConfigGcsDestinationConfigPtrType) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigGcsDestinationConfigPtrType) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { + return &v + }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +} + +// AVRO file format configuration. +func (o StreamDestinationConfigGcsDestinationConfigOutput) AvroFileFormat() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { + return v.AvroFileFormat + }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +} + +// The maximum duration for which new events are added before a file is closed and a new file is created. +// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. +func (o StreamDestinationConfigGcsDestinationConfigOutput) FileRotationInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *string { return v.FileRotationInterval }).(pulumi.StringPtrOutput) +} + +// The maximum file size to be saved in the bucket. +func (o StreamDestinationConfigGcsDestinationConfigOutput) FileRotationMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *int { return v.FileRotationMb }).(pulumi.IntPtrOutput) +} + +// JSON file format configuration. +// Structure is documented below. +func (o StreamDestinationConfigGcsDestinationConfigOutput) JsonFileFormat() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { + return v.JsonFileFormat + }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +} + +// Path inside the Cloud Storage bucket to write data to. +func (o StreamDestinationConfigGcsDestinationConfigOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) StreamDestinationConfigGcsDestinationConfig { + if v != nil { + return *v + } + var ret StreamDestinationConfigGcsDestinationConfig + return ret + }).(StreamDestinationConfigGcsDestinationConfigOutput) +} + +// AVRO file format configuration. +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) AvroFileFormat() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { + if v == nil { + return nil + } + return v.AvroFileFormat + }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +} + +// The maximum duration for which new events are added before a file is closed and a new file is created. +// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) FileRotationInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *string { + if v == nil { + return nil + } + return v.FileRotationInterval + }).(pulumi.StringPtrOutput) +} + +// The maximum file size to be saved in the bucket. +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) FileRotationMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *int { + if v == nil { + return nil + } + return v.FileRotationMb + }).(pulumi.IntPtrOutput) +} + +// JSON file format configuration. +// Structure is documented below. +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) JsonFileFormat() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { + if v == nil { + return nil + } + return v.JsonFileFormat + }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +} + +// Path inside the Cloud Storage bucket to write data to. +func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigAvroFileFormat struct { +} + +// StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs and StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput` via: +// +// StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs{...} +type StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput + ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput +} + +type StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs struct { +} + +func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +} + +func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) +} + +func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput).ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs, StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtr and StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput` via: +// +// StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput + ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput +} + +type streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs + +func StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtr(v *StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput { + return (*streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType)(v) +} + +func (*streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +} + +func (i *streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfigAvroFileFormat) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { + return &v + }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigAvroFileFormat) StreamDestinationConfigGcsDestinationConfigAvroFileFormat { + if v != nil { + return *v + } + var ret StreamDestinationConfigGcsDestinationConfigAvroFileFormat + return ret + }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) +} + +type StreamDestinationConfigGcsDestinationConfigJsonFileFormat struct { + // Compression of the loaded JSON file. + // Possible values are `NO_COMPRESSION` and `GZIP`. + Compression *string `pulumi:"compression"` + // The schema file format along JSON data files. + // Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + SchemaFileFormat *string `pulumi:"schemaFileFormat"` +} + +// StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs and StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput` via: +// +// StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{...} +type StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput + ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput +} + +type StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs struct { + // Compression of the loaded JSON file. + // Possible values are `NO_COMPRESSION` and `GZIP`. + Compression pulumi.StringPtrInput `pulumi:"compression"` + // The schema file format along JSON data files. + // Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + SchemaFileFormat pulumi.StringPtrInput `pulumi:"schemaFileFormat"` +} + +func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +} + +func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) +} + +func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput).ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs, StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtr and StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput` via: +// +// StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput + ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput +} + +type streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs + +func StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtr(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput { + return (*streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType)(v) +} + +func (*streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +} + +func (i *streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { + return &v + }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +} + +// Compression of the loaded JSON file. +// Possible values are `NO_COMPRESSION` and `GZIP`. +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) Compression() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { return v.Compression }).(pulumi.StringPtrOutput) +} + +// The schema file format along JSON data files. +// Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) SchemaFileFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { return v.SchemaFileFormat }).(pulumi.StringPtrOutput) +} + +type StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { + return o +} + +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) StreamDestinationConfigGcsDestinationConfigJsonFileFormat { + if v != nil { + return *v + } + var ret StreamDestinationConfigGcsDestinationConfigJsonFileFormat + return ret + }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) +} + +// Compression of the loaded JSON file. +// Possible values are `NO_COMPRESSION` and `GZIP`. +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) Compression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { + if v == nil { + return nil + } + return v.Compression + }).(pulumi.StringPtrOutput) +} + +// The schema file format along JSON data files. +// Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. +func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) SchemaFileFormat() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { + if v == nil { + return nil + } + return v.SchemaFileFormat + }).(pulumi.StringPtrOutput) +} + +type StreamSourceConfig struct { + // MySQL data source configuration. + // Structure is documented below. + MysqlSourceConfig *StreamSourceConfigMysqlSourceConfig `pulumi:"mysqlSourceConfig"` + // MySQL data source configuration. + // Structure is documented below. + OracleSourceConfig *StreamSourceConfigOracleSourceConfig `pulumi:"oracleSourceConfig"` + // PostgreSQL data source configuration. + // Structure is documented below. + PostgresqlSourceConfig *StreamSourceConfigPostgresqlSourceConfig `pulumi:"postgresqlSourceConfig"` + // Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + SourceConnectionProfile string `pulumi:"sourceConnectionProfile"` +} + +// StreamSourceConfigInput is an input type that accepts StreamSourceConfigArgs and StreamSourceConfigOutput values. +// You can construct a concrete instance of `StreamSourceConfigInput` via: +// +// StreamSourceConfigArgs{...} +type StreamSourceConfigInput interface { + pulumi.Input + + ToStreamSourceConfigOutput() StreamSourceConfigOutput + ToStreamSourceConfigOutputWithContext(context.Context) StreamSourceConfigOutput +} + +type StreamSourceConfigArgs struct { + // MySQL data source configuration. + // Structure is documented below. + MysqlSourceConfig StreamSourceConfigMysqlSourceConfigPtrInput `pulumi:"mysqlSourceConfig"` + // MySQL data source configuration. + // Structure is documented below. + OracleSourceConfig StreamSourceConfigOracleSourceConfigPtrInput `pulumi:"oracleSourceConfig"` + // PostgreSQL data source configuration. + // Structure is documented below. + PostgresqlSourceConfig StreamSourceConfigPostgresqlSourceConfigPtrInput `pulumi:"postgresqlSourceConfig"` + // Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + SourceConnectionProfile pulumi.StringInput `pulumi:"sourceConnectionProfile"` +} + +func (StreamSourceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfig)(nil)).Elem() +} + +func (i StreamSourceConfigArgs) ToStreamSourceConfigOutput() StreamSourceConfigOutput { + return i.ToStreamSourceConfigOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigArgs) ToStreamSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOutput) +} + +func (i StreamSourceConfigArgs) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { + return i.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigArgs) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOutput).ToStreamSourceConfigPtrOutputWithContext(ctx) +} + +// StreamSourceConfigPtrInput is an input type that accepts StreamSourceConfigArgs, StreamSourceConfigPtr and StreamSourceConfigPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigPtrInput` via: +// +// StreamSourceConfigArgs{...} +// +// or: +// +// nil +type StreamSourceConfigPtrInput interface { + pulumi.Input + + ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput + ToStreamSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigPtrOutput +} + +type streamSourceConfigPtrType StreamSourceConfigArgs + +func StreamSourceConfigPtr(v *StreamSourceConfigArgs) StreamSourceConfigPtrInput { + return (*streamSourceConfigPtrType)(v) +} + +func (*streamSourceConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfig)(nil)).Elem() +} + +func (i *streamSourceConfigPtrType) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { + return i.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamSourceConfigPtrType) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPtrOutput) +} + +type StreamSourceConfigOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigOutput) ToStreamSourceConfigOutput() StreamSourceConfigOutput { + return o +} + +func (o StreamSourceConfigOutput) ToStreamSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOutput { + return o +} + +func (o StreamSourceConfigOutput) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { + return o.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigOutput) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfig) *StreamSourceConfig { + return &v + }).(StreamSourceConfigPtrOutput) +} + +// MySQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigOutput) MysqlSourceConfig() StreamSourceConfigMysqlSourceConfigPtrOutput { + return o.ApplyT(func(v StreamSourceConfig) *StreamSourceConfigMysqlSourceConfig { return v.MysqlSourceConfig }).(StreamSourceConfigMysqlSourceConfigPtrOutput) +} + +// MySQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigOutput) OracleSourceConfig() StreamSourceConfigOracleSourceConfigPtrOutput { + return o.ApplyT(func(v StreamSourceConfig) *StreamSourceConfigOracleSourceConfig { return v.OracleSourceConfig }).(StreamSourceConfigOracleSourceConfigPtrOutput) +} + +// PostgreSQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigOutput) PostgresqlSourceConfig() StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return o.ApplyT(func(v StreamSourceConfig) *StreamSourceConfigPostgresqlSourceConfig { return v.PostgresqlSourceConfig }).(StreamSourceConfigPostgresqlSourceConfigPtrOutput) +} + +// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} +func (o StreamSourceConfigOutput) SourceConnectionProfile() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfig) string { return v.SourceConnectionProfile }).(pulumi.StringOutput) +} + +type StreamSourceConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigPtrOutput) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigPtrOutput) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigPtrOutput) Elem() StreamSourceConfigOutput { + return o.ApplyT(func(v *StreamSourceConfig) StreamSourceConfig { + if v != nil { + return *v + } + var ret StreamSourceConfig + return ret + }).(StreamSourceConfigOutput) +} + +// MySQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigPtrOutput) MysqlSourceConfig() StreamSourceConfigMysqlSourceConfigPtrOutput { + return o.ApplyT(func(v *StreamSourceConfig) *StreamSourceConfigMysqlSourceConfig { + if v == nil { + return nil + } + return v.MysqlSourceConfig + }).(StreamSourceConfigMysqlSourceConfigPtrOutput) +} + +// MySQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigPtrOutput) OracleSourceConfig() StreamSourceConfigOracleSourceConfigPtrOutput { + return o.ApplyT(func(v *StreamSourceConfig) *StreamSourceConfigOracleSourceConfig { + if v == nil { + return nil + } + return v.OracleSourceConfig + }).(StreamSourceConfigOracleSourceConfigPtrOutput) +} + +// PostgreSQL data source configuration. +// Structure is documented below. +func (o StreamSourceConfigPtrOutput) PostgresqlSourceConfig() StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return o.ApplyT(func(v *StreamSourceConfig) *StreamSourceConfigPostgresqlSourceConfig { + if v == nil { + return nil + } + return v.PostgresqlSourceConfig + }).(StreamSourceConfigPostgresqlSourceConfigPtrOutput) +} + +// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} +func (o StreamSourceConfigPtrOutput) SourceConnectionProfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamSourceConfig) *string { + if v == nil { + return nil + } + return &v.SourceConnectionProfile + }).(pulumi.StringPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfig struct { + // MySQL objects to exclude from the stream. + // Structure is documented below. + ExcludeObjects *StreamSourceConfigMysqlSourceConfigExcludeObjects `pulumi:"excludeObjects"` + // MySQL objects to retrieve from the source. + // Structure is documented below. + IncludeObjects *StreamSourceConfigMysqlSourceConfigIncludeObjects `pulumi:"includeObjects"` + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentCdcTasks *int `pulumi:"maxConcurrentCdcTasks"` +} + +// StreamSourceConfigMysqlSourceConfigInput is an input type that accepts StreamSourceConfigMysqlSourceConfigArgs and StreamSourceConfigMysqlSourceConfigOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigInput` via: +// +// StreamSourceConfigMysqlSourceConfigArgs{...} +type StreamSourceConfigMysqlSourceConfigInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput + ToStreamSourceConfigMysqlSourceConfigOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigOutput +} + +type StreamSourceConfigMysqlSourceConfigArgs struct { + // MySQL objects to exclude from the stream. + // Structure is documented below. + ExcludeObjects StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput `pulumi:"excludeObjects"` + // MySQL objects to retrieve from the source. + // Structure is documented below. + IncludeObjects StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput `pulumi:"includeObjects"` + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentCdcTasks pulumi.IntPtrInput `pulumi:"maxConcurrentCdcTasks"` +} + +func (StreamSourceConfigMysqlSourceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput { + return i.ToStreamSourceConfigMysqlSourceConfigOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigOutput) +} + +func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigOutput).ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx) +} + +// StreamSourceConfigMysqlSourceConfigPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigArgs, StreamSourceConfigMysqlSourceConfigPtr and StreamSourceConfigMysqlSourceConfigPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigPtrInput` via: +// +// StreamSourceConfigMysqlSourceConfigArgs{...} +// +// or: +// +// nil +type StreamSourceConfigMysqlSourceConfigPtrInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput + ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput +} + +type streamSourceConfigMysqlSourceConfigPtrType StreamSourceConfigMysqlSourceConfigArgs + +func StreamSourceConfigMysqlSourceConfigPtr(v *StreamSourceConfigMysqlSourceConfigArgs) StreamSourceConfigMysqlSourceConfigPtrInput { + return (*streamSourceConfigMysqlSourceConfigPtrType)(v) +} + +func (*streamSourceConfigMysqlSourceConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +} + +func (i *streamSourceConfigMysqlSourceConfigPtrType) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamSourceConfigMysqlSourceConfigPtrType) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { + return o.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfig { + return &v + }).(StreamSourceConfigMysqlSourceConfigPtrOutput) +} + +// MySQL objects to exclude from the stream. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigOutput) ExcludeObjects() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigExcludeObjects { + return v.ExcludeObjects + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) +} + +// MySQL objects to retrieve from the source. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigOutput) IncludeObjects() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigIncludeObjects { + return v.IncludeObjects + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) +} + +// Maximum number of concurrent CDC tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigMysqlSourceConfigOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *int { return v.MaxConcurrentCdcTasks }).(pulumi.IntPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) StreamSourceConfigMysqlSourceConfig { + if v != nil { + return *v + } + var ret StreamSourceConfigMysqlSourceConfig + return ret + }).(StreamSourceConfigMysqlSourceConfigOutput) +} + +// MySQL objects to exclude from the stream. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ExcludeObjects() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigExcludeObjects { + if v == nil { + return nil + } + return v.ExcludeObjects + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) +} + +// MySQL objects to retrieve from the source. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) IncludeObjects() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigIncludeObjects { + if v == nil { + return nil + } + return v.IncludeObjects + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) +} + +// Maximum number of concurrent CDC tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigMysqlSourceConfigPtrOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *int { + if v == nil { + return nil + } + return v.MaxConcurrentCdcTasks + }).(pulumi.IntPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjects struct { + // MySQL databases on the server + // Structure is documented below. + MysqlDatabases []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase `pulumi:"mysqlDatabases"` +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{...} +type StreamSourceConfigMysqlSourceConfigExcludeObjectsInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs struct { + // MySQL databases on the server + // Structure is documented below. + MysqlDatabases StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput `pulumi:"mysqlDatabases"` +} + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput).ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx) +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs, StreamSourceConfigMysqlSourceConfigExcludeObjectsPtr and StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{...} +// +// or: +// +// nil +type StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput +} + +type streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs + +func StreamSourceConfigMysqlSourceConfigExcludeObjectsPtr(v *StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput { + return (*streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType)(v) +} + +func (*streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +} + +func (i *streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +} + +func (i *streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfigExcludeObjects) *StreamSourceConfigMysqlSourceConfigExcludeObjects { + return &v + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) +} + +// MySQL databases on the server +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjects) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { + return v.MysqlDatabases + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigExcludeObjects) StreamSourceConfigMysqlSourceConfigExcludeObjects { + if v != nil { + return *v + } + var ret StreamSourceConfigMysqlSourceConfigExcludeObjects + return ret + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) +} + +// MySQL databases on the server +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigExcludeObjects) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { + if v == nil { + return nil + } + return v.MysqlDatabases + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase struct { + // Database name. + Database string `pulumi:"database"` + // Tables in the database. + // Structure is documented below. + MysqlTables []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable `pulumi:"mysqlTables"` +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{...} +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs struct { + // Database name. + Database pulumi.StringInput `pulumi:"database"` + // Tables in the database. + // Structure is documented below. + MysqlTables StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput `pulumi:"mysqlTables"` +} + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{...} } +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { + return o +} + +// Database name. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) Database() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase) string { return v.Database }).(pulumi.StringOutput) +} + +// Tables in the database. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) MysqlTables() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable { + return v.MysqlTables + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { + return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable struct { + // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + MysqlColumns []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn `pulumi:"mysqlColumns"` + // Table name. + Table string `pulumi:"table"` +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{...} +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs struct { + // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + MysqlColumns StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput `pulumi:"mysqlColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` +} + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{...} } +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { + return o +} + +// MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) MysqlColumns() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn { + return v.MysqlColumns + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +} + +// Table name. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable) string { + return v.Table + }).(pulumi.StringOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable { + return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn struct { + // Column collation. + Collation *string `pulumi:"collation"` + // Column name. + Column *string `pulumi:"column"` + // The MySQL data type. Full data types list can be found here: + // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + DataType *string `pulumi:"dataType"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs struct { + // Column collation. + Collation pulumi.StringPtrInput `pulumi:"collation"` + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The MySQL data type. Full data types list can be found here: + // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` +} + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +} + +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} } +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput + ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return o +} + +// Column collation. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Collation() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.Collation + }).(pulumi.StringPtrOutput) +} + +// Column name. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) +} + +// The MySQL data type. Full data types list can be found here: +// https://dev.mysql.com/doc/refman/8.0/en/data-types.html +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) +} + +// Column length. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column can accept a null value. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) +} + +// The ordinal position of the column in the table. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column represents a primary key. +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn { + return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjects struct { + // MySQL databases on the server + // Structure is documented below. + MysqlDatabases []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase `pulumi:"mysqlDatabases"` +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{...} +type StreamSourceConfigMysqlSourceConfigIncludeObjectsInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs struct { + // MySQL databases on the server + // Structure is documented below. + MysqlDatabases StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput `pulumi:"mysqlDatabases"` +} + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput).ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx) +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs, StreamSourceConfigMysqlSourceConfigIncludeObjectsPtr and StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{...} +// +// or: +// +// nil +type StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput +} + +type streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs + +func StreamSourceConfigMysqlSourceConfigIncludeObjectsPtr(v *StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput { + return (*streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType)(v) +} + +func (*streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +} + +func (i *streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +} + +func (i *streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfigIncludeObjects) *StreamSourceConfigMysqlSourceConfigIncludeObjects { + return &v + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) +} + +// MySQL databases on the server +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjects) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { + return v.MysqlDatabases + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigIncludeObjects) StreamSourceConfigMysqlSourceConfigIncludeObjects { + if v != nil { + return *v + } + var ret StreamSourceConfigMysqlSourceConfigIncludeObjects + return ret + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) +} + +// MySQL databases on the server +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigIncludeObjects) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { + if v == nil { + return nil + } + return v.MysqlDatabases + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase struct { + // Database name. + Database string `pulumi:"database"` + // Tables in the database. + // Structure is documented below. + MysqlTables []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable `pulumi:"mysqlTables"` +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{...} +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs struct { + // Database name. + Database pulumi.StringInput `pulumi:"database"` + // Tables in the database. + // Structure is documented below. + MysqlTables StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput `pulumi:"mysqlTables"` +} + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{...} } +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { + return o +} + +// Database name. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) Database() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase) string { return v.Database }).(pulumi.StringOutput) +} + +// Tables in the database. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) MysqlTables() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable { + return v.MysqlTables + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { + return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable struct { + // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + MysqlColumns []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn `pulumi:"mysqlColumns"` + // Table name. + Table string `pulumi:"table"` +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{...} +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs struct { + // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + MysqlColumns StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput `pulumi:"mysqlColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` +} + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{...} } +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { + return o +} + +// MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// Structure is documented below. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) MysqlColumns() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn { + return v.MysqlColumns + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +} + +// Table name. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable) string { + return v.Table + }).(pulumi.StringOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable { + return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn struct { + // Column collation. + Collation *string `pulumi:"collation"` + // Column name. + Column *string `pulumi:"column"` + // The MySQL data type. Full data types list can be found here: + // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + DataType *string `pulumi:"dataType"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs struct { + // Column collation. + Collation pulumi.StringPtrInput `pulumi:"collation"` + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The MySQL data type. Full data types list can be found here: + // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` +} + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +} + +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput` via: +// +// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} } +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput interface { + pulumi.Input + + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput + ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return o +} + +// Column collation. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Collation() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.Collation + }).(pulumi.StringPtrOutput) +} + +// Column name. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) +} + +// The MySQL data type. Full data types list can be found here: +// https://dev.mysql.com/doc/refman/8.0/en/data-types.html +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) +} + +// Column length. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column can accept a null value. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) +} + +// The ordinal position of the column in the table. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) +} + +// Whether or not the column represents a primary key. +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) +} + +type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { + return o +} + +func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn { + return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)[vs[1].(int)] + }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +} + +type StreamSourceConfigOracleSourceConfig struct { + // Configuration to drop large object values. + DropLargeObjects *StreamSourceConfigOracleSourceConfigDropLargeObjects `pulumi:"dropLargeObjects"` + // Oracle objects to exclude from the stream. + // Structure is documented below. + ExcludeObjects *StreamSourceConfigOracleSourceConfigExcludeObjects `pulumi:"excludeObjects"` + // Oracle objects to retrieve from the source. + // Structure is documented below. + IncludeObjects *StreamSourceConfigOracleSourceConfigIncludeObjects `pulumi:"includeObjects"` + // Maximum number of concurrent backfill tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentBackfillTasks *int `pulumi:"maxConcurrentBackfillTasks"` + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentCdcTasks *int `pulumi:"maxConcurrentCdcTasks"` + // Configuration to drop large object values. + StreamLargeObjects *StreamSourceConfigOracleSourceConfigStreamLargeObjects `pulumi:"streamLargeObjects"` +} + +// StreamSourceConfigOracleSourceConfigInput is an input type that accepts StreamSourceConfigOracleSourceConfigArgs and StreamSourceConfigOracleSourceConfigOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigInput` via: +// +// StreamSourceConfigOracleSourceConfigArgs{...} +type StreamSourceConfigOracleSourceConfigInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigOutput() StreamSourceConfigOracleSourceConfigOutput + ToStreamSourceConfigOracleSourceConfigOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigOutput +} + +type StreamSourceConfigOracleSourceConfigArgs struct { + // Configuration to drop large object values. + DropLargeObjects StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput `pulumi:"dropLargeObjects"` + // Oracle objects to exclude from the stream. + // Structure is documented below. + ExcludeObjects StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput `pulumi:"excludeObjects"` + // Oracle objects to retrieve from the source. + // Structure is documented below. + IncludeObjects StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput `pulumi:"includeObjects"` + // Maximum number of concurrent backfill tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentBackfillTasks pulumi.IntPtrInput `pulumi:"maxConcurrentBackfillTasks"` + // Maximum number of concurrent CDC tasks. The number should be non negative. + // If not set (or set to 0), the system's default value will be used. + MaxConcurrentCdcTasks pulumi.IntPtrInput `pulumi:"maxConcurrentCdcTasks"` + // Configuration to drop large object values. + StreamLargeObjects StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput `pulumi:"streamLargeObjects"` +} + +func (StreamSourceConfigOracleSourceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfig)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigArgs) ToStreamSourceConfigOracleSourceConfigOutput() StreamSourceConfigOracleSourceConfigOutput { + return i.ToStreamSourceConfigOracleSourceConfigOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigArgs) ToStreamSourceConfigOracleSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigOutput) +} + +func (i StreamSourceConfigOracleSourceConfigArgs) ToStreamSourceConfigOracleSourceConfigPtrOutput() StreamSourceConfigOracleSourceConfigPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigArgs) ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigOutput).ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(ctx) +} + +// StreamSourceConfigOracleSourceConfigPtrInput is an input type that accepts StreamSourceConfigOracleSourceConfigArgs, StreamSourceConfigOracleSourceConfigPtr and StreamSourceConfigOracleSourceConfigPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigPtrInput` via: +// +// StreamSourceConfigOracleSourceConfigArgs{...} +// +// or: +// +// nil +type StreamSourceConfigOracleSourceConfigPtrInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigPtrOutput() StreamSourceConfigOracleSourceConfigPtrOutput + ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigPtrOutput +} + +type streamSourceConfigOracleSourceConfigPtrType StreamSourceConfigOracleSourceConfigArgs + +func StreamSourceConfigOracleSourceConfigPtr(v *StreamSourceConfigOracleSourceConfigArgs) StreamSourceConfigOracleSourceConfigPtrInput { + return (*streamSourceConfigOracleSourceConfigPtrType)(v) +} + +func (*streamSourceConfigOracleSourceConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfig)(nil)).Elem() +} + +func (i *streamSourceConfigOracleSourceConfigPtrType) ToStreamSourceConfigOracleSourceConfigPtrOutput() StreamSourceConfigOracleSourceConfigPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(context.Background()) +} + +func (i *streamSourceConfigOracleSourceConfigPtrType) ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigPtrOutput) +} + +type StreamSourceConfigOracleSourceConfigOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigOutput) ToStreamSourceConfigOracleSourceConfigOutput() StreamSourceConfigOracleSourceConfigOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigOutput) ToStreamSourceConfigOracleSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigOutput) ToStreamSourceConfigOracleSourceConfigPtrOutput() StreamSourceConfigOracleSourceConfigPtrOutput { + return o.ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigOracleSourceConfigOutput) ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfig { + return &v + }).(StreamSourceConfigOracleSourceConfigPtrOutput) +} + +// Configuration to drop large object values. +func (o StreamSourceConfigOracleSourceConfigOutput) DropLargeObjects() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigDropLargeObjects { + return v.DropLargeObjects + }).(StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) +} + +// Oracle objects to exclude from the stream. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigOutput) ExcludeObjects() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigExcludeObjects { + return v.ExcludeObjects + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) +} + +// Oracle objects to retrieve from the source. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigOutput) IncludeObjects() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigIncludeObjects { + return v.IncludeObjects + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) +} + +// Maximum number of concurrent backfill tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigOracleSourceConfigOutput) MaxConcurrentBackfillTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *int { return v.MaxConcurrentBackfillTasks }).(pulumi.IntPtrOutput) +} + +// Maximum number of concurrent CDC tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigOracleSourceConfigOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *int { return v.MaxConcurrentCdcTasks }).(pulumi.IntPtrOutput) +} + +// Configuration to drop large object values. +func (o StreamSourceConfigOracleSourceConfigOutput) StreamLargeObjects() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigStreamLargeObjects { + return v.StreamLargeObjects + }).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) +} + +type StreamSourceConfigOracleSourceConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigPtrOutput) ToStreamSourceConfigOracleSourceConfigPtrOutput() StreamSourceConfigOracleSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigPtrOutput) ToStreamSourceConfigOracleSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigPtrOutput) Elem() StreamSourceConfigOracleSourceConfigOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) StreamSourceConfigOracleSourceConfig { + if v != nil { + return *v + } + var ret StreamSourceConfigOracleSourceConfig + return ret + }).(StreamSourceConfigOracleSourceConfigOutput) +} + +// Configuration to drop large object values. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) DropLargeObjects() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigDropLargeObjects { + if v == nil { + return nil + } + return v.DropLargeObjects + }).(StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) +} + +// Oracle objects to exclude from the stream. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) ExcludeObjects() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigExcludeObjects { + if v == nil { + return nil + } + return v.ExcludeObjects + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) +} + +// Oracle objects to retrieve from the source. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) IncludeObjects() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigIncludeObjects { + if v == nil { + return nil + } + return v.IncludeObjects + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) +} + +// Maximum number of concurrent backfill tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) MaxConcurrentBackfillTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *int { + if v == nil { + return nil + } + return v.MaxConcurrentBackfillTasks + }).(pulumi.IntPtrOutput) +} + +// Maximum number of concurrent CDC tasks. The number should be non negative. +// If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *int { + if v == nil { + return nil + } + return v.MaxConcurrentCdcTasks + }).(pulumi.IntPtrOutput) +} + +// Configuration to drop large object values. +func (o StreamSourceConfigOracleSourceConfigPtrOutput) StreamLargeObjects() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfig) *StreamSourceConfigOracleSourceConfigStreamLargeObjects { + if v == nil { + return nil + } + return v.StreamLargeObjects + }).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) +} + +type StreamSourceConfigOracleSourceConfigDropLargeObjects struct { +} + +// StreamSourceConfigOracleSourceConfigDropLargeObjectsInput is an input type that accepts StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs and StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigDropLargeObjectsInput` via: +// +// StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs{...} +type StreamSourceConfigOracleSourceConfigDropLargeObjectsInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput + ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput +} + +type StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs struct { +} + +func (StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigDropLargeObjects)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput { + return i.ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) +} + +func (i StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput).ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(ctx) +} + +// StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput is an input type that accepts StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs, StreamSourceConfigOracleSourceConfigDropLargeObjectsPtr and StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput` via: +// +// StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs{...} +// +// or: +// +// nil +type StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput + ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput +} + +type streamSourceConfigOracleSourceConfigDropLargeObjectsPtrType StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs + +func StreamSourceConfigOracleSourceConfigDropLargeObjectsPtr(v *StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput { + return (*streamSourceConfigOracleSourceConfigDropLargeObjectsPtrType)(v) } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) +func (*streamSourceConfigOracleSourceConfigDropLargeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigDropLargeObjects)(nil)).Elem() } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigOracleSourceConfigDropLargeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(context.Background()) } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput).ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx) +func (i *streamSourceConfigOracleSourceConfigDropLargeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) } -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs, StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtr and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput` via: +type StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigDropLargeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o.ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(context.Background()) +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigOracleSourceConfigDropLargeObjects) *StreamSourceConfigOracleSourceConfigDropLargeObjects { + return &v + }).(StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) +} + +type StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigDropLargeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput) Elem() StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigDropLargeObjects) StreamSourceConfigOracleSourceConfigDropLargeObjects { + if v != nil { + return *v + } + var ret StreamSourceConfigOracleSourceConfigDropLargeObjects + return ret + }).(StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjects struct { + // Oracle schemas/databases in the database server + // Structure is documented below. + OracleSchemas []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema `pulumi:"oracleSchemas"` +} + +// StreamSourceConfigOracleSourceConfigExcludeObjectsInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsArgs and StreamSourceConfigOracleSourceConfigExcludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsInput` via: // -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{...} +// StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{...} +type StreamSourceConfigOracleSourceConfigExcludeObjectsInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOutput +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsArgs struct { + // Oracle schemas/databases in the database server + // Structure is documented below. + OracleSchemas StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayInput `pulumi:"oracleSchemas"` +} + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjects)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOutput).ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(ctx) +} + +// StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsArgs, StreamSourceConfigOracleSourceConfigExcludeObjectsPtr and StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput` via: +// +// StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{...} // // or: // // nil -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput interface { +type StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput } -type streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs +type streamSourceConfigOracleSourceConfigExcludeObjectsPtrType StreamSourceConfigOracleSourceConfigExcludeObjectsArgs -func StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtr(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrInput { - return (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType)(v) +func StreamSourceConfigOracleSourceConfigExcludeObjectsPtr(v *StreamSourceConfigOracleSourceConfigExcludeObjectsArgs) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput { + return (*streamSourceConfigOracleSourceConfigExcludeObjectsPtrType)(v) } -func (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +func (*streamSourceConfigOracleSourceConfigExcludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigExcludeObjects)(nil)).Elem() } -func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigOracleSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) } -func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) +func (i *streamSourceConfigOracleSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigExcludeObjectsOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjects)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return o.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return o.ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigOracleSourceConfigExcludeObjects) *StreamSourceConfigOracleSourceConfigExcludeObjects { return &v - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) } -// Dataset template used for dynamic dataset creation. +// Oracle schemas/databases in the database server // Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) DatasetTemplate() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { - return v.DatasetTemplate - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) OracleSchemas() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjects) []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { + return v.OracleSchemas + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigExcludeObjects)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) Elem() StreamSourceConfigOracleSourceConfigExcludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigExcludeObjects) StreamSourceConfigOracleSourceConfigExcludeObjects { if v != nil { return *v } - var ret StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets + var ret StreamSourceConfigOracleSourceConfigExcludeObjects return ret - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput) + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOutput) } -// Dataset template used for dynamic dataset creation. +// Oracle schemas/databases in the database server // Structure is documented below. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) DatasetTemplate() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput) OracleSchemas() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigExcludeObjects) []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { if v == nil { return nil } - return &v.DatasetTemplate - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) + return v.OracleSchemas + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate struct { - // If supplied, every created dataset will have its name prefixed by the provided value. - // The prefix and name will be separated by an underscore. i.e. _. - DatasetIdPrefix *string `pulumi:"datasetIdPrefix"` - // Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - // table. The BigQuery Service Account associated with your project requires access to this - // encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - // See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. - KmsKeyName *string `pulumi:"kmsKeyName"` - // The geographic location where the dataset should reside. - // See https://cloud.google.com/bigquery/docs/locations for supported locations. - Location string `pulumi:"location"` +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema struct { + // Tables in the database. + // Structure is documented below. + OracleTables []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable `pulumi:"oracleTables"` + // Schema name. + Schema string `pulumi:"schema"` } -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput` via: +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaInput` via: // -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{...} -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateInput interface { +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{...} +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs struct { - // If supplied, every created dataset will have its name prefixed by the provided value. - // The prefix and name will be separated by an underscore. i.e. _. - DatasetIdPrefix pulumi.StringPtrInput `pulumi:"datasetIdPrefix"` - // Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - // table. The BigQuery Service Account associated with your project requires access to this - // encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - // See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. - KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` - // The geographic location where the dataset should reside. - // See https://cloud.google.com/bigquery/docs/locations for supported locations. - Location pulumi.StringInput `pulumi:"location"` +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs struct { + // Tables in the database. + // Structure is documented below. + OracleTables StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayInput `pulumi:"oracleTables"` + // Schema name. + Schema pulumi.StringInput `pulumi:"schema"` +} + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) +} + +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayInput` via: +// +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{ StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{...} } +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaInput + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput { + return o +} + +// Tables in the database. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) OracleTables() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema) []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable { + return v.OracleTables + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) +} + +// Schema name. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema) string { return v.Schema }).(pulumi.StringOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { + return vs[0].([]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn `pulumi:"oracleColumns"` + // Table name. + Table string `pulumi:"table"` +} + +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableInput` via: +// +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{...} +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayInput `pulumi:"oracleColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` +} + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) +} + +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayInput` via: +// +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{ StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{...} } +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableInput + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput { + return o +} + +// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) OracleColumns() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable) []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn { + return v.OracleColumns + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) +} + +// Table name. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable) string { + return v.Table + }).(pulumi.StringOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable { + return vs[0].([]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput) +} + +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn struct { + // Column name. + Column *string `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType *string `pulumi:"dataType"` + // Column encoding. + Encoding *string `pulumi:"encoding"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` } -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnInput` via: +// +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{...} +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(context.Background()) +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs struct { + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column encoding. + Encoding pulumi.StringPtrInput `pulumi:"encoding"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Background()) } -func (i StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput).ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx) +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) } -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs, StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtr and StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput` via: -// -// StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{...} -// -// or: +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray and StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayInput` via: // -// nil -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput interface { +// StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{ StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{...} } +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayInput interface { pulumi.Input - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput - ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput + ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput } -type streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs - -func StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtr(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrInput { - return (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType)(v) -} +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray []StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnInput -func (*streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return i.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Background()) } -func (i *streamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrType) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) +func (i StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput { return o } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return o.ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(context.Background()) +// Column name. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { - return &v - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) +// The Oracle data type. Full data types list can be found here: +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) } -// If supplied, every created dataset will have its name prefixed by the provided value. -// The prefix and name will be separated by an underscore. i.e. _. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) DatasetIdPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { - return v.DatasetIdPrefix +// Column encoding. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Encoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Encoding }).(pulumi.StringPtrOutput) } -// Describes the Cloud KMS encryption key that will be used to protect destination BigQuery -// table. The BigQuery Service Account associated with your project requires access to this -// encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. -// See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) KmsKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { - return v.KmsKeyName - }).(pulumi.StringPtrOutput) +// Column length. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) } -// The geographic location where the dataset should reside. -// See https://cloud.google.com/bigquery/docs/locations for supported locations. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) string { - return v.Location - }).(pulumi.StringOutput) +// Whether or not the column can accept a null value. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) } -type StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput struct{ *pulumi.OutputState } +// The ordinal position of the column in the table. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) +} -func (StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate)(nil)).Elem() +// Column precision. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return o +// Whether or not the column represents a primary key. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput { - return o +// Column scale. +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Scale + }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate { - if v != nil { - return *v - } - var ret StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate - return ret - }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutput) +type StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -// If supplied, every created dataset will have its name prefixed by the provided value. -// The prefix and name will be separated by an underscore. i.e. _. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) DatasetIdPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { - if v == nil { - return nil - } - return v.DatasetIdPrefix - }).(pulumi.StringPtrOutput) +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o } -// Describes the Cloud KMS encryption key that will be used to protect destination BigQuery -// table. The BigQuery Service Account associated with your project requires access to this -// encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. -// See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) KmsKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { - if v == nil { - return nil - } - return v.KmsKeyName - }).(pulumi.StringPtrOutput) +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o } -// The geographic location where the dataset should reside. -// See https://cloud.google.com/bigquery/docs/locations for supported locations. -func (o StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplatePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate) *string { - if v == nil { - return nil - } - return &v.Location - }).(pulumi.StringPtrOutput) +func (o StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn { + return vs[0].([]StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput) } -type StreamDestinationConfigGcsDestinationConfig struct { - // AVRO file format configuration. - AvroFileFormat *StreamDestinationConfigGcsDestinationConfigAvroFileFormat `pulumi:"avroFileFormat"` - // The maximum duration for which new events are added before a file is closed and a new file is created. - // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - FileRotationInterval *string `pulumi:"fileRotationInterval"` - // The maximum file size to be saved in the bucket. - FileRotationMb *int `pulumi:"fileRotationMb"` - // JSON file format configuration. +type StreamSourceConfigOracleSourceConfigIncludeObjects struct { + // Oracle schemas/databases in the database server // Structure is documented below. - JsonFileFormat *StreamDestinationConfigGcsDestinationConfigJsonFileFormat `pulumi:"jsonFileFormat"` - // Path inside the Cloud Storage bucket to write data to. - Path *string `pulumi:"path"` + OracleSchemas []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema `pulumi:"oracleSchemas"` } -// StreamDestinationConfigGcsDestinationConfigInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigArgs and StreamDestinationConfigGcsDestinationConfigOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigInput` via: +// StreamSourceConfigOracleSourceConfigIncludeObjectsInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsArgs and StreamSourceConfigOracleSourceConfigIncludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsInput` via: // -// StreamDestinationConfigGcsDestinationConfigArgs{...} -type StreamDestinationConfigGcsDestinationConfigInput interface { +// StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{...} +type StreamSourceConfigOracleSourceConfigIncludeObjectsInput interface { pulumi.Input - ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput - ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOutput } -type StreamDestinationConfigGcsDestinationConfigArgs struct { - // AVRO file format configuration. - AvroFileFormat StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput `pulumi:"avroFileFormat"` - // The maximum duration for which new events are added before a file is closed and a new file is created. - // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - FileRotationInterval pulumi.StringPtrInput `pulumi:"fileRotationInterval"` - // The maximum file size to be saved in the bucket. - FileRotationMb pulumi.IntPtrInput `pulumi:"fileRotationMb"` - // JSON file format configuration. +type StreamSourceConfigOracleSourceConfigIncludeObjectsArgs struct { + // Oracle schemas/databases in the database server // Structure is documented below. - JsonFileFormat StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput `pulumi:"jsonFileFormat"` - // Path inside the Cloud Storage bucket to write data to. - Path pulumi.StringPtrInput `pulumi:"path"` + OracleSchemas StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayInput `pulumi:"oracleSchemas"` } -func (StreamDestinationConfigGcsDestinationConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjects)(nil)).Elem() } -func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutputWithContext(context.Background()) } -func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigOutput) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) } -func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (i StreamDestinationConfigGcsDestinationConfigArgs) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigOutput).ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOutput).ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(ctx) } -// StreamDestinationConfigGcsDestinationConfigPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigArgs, StreamDestinationConfigGcsDestinationConfigPtr and StreamDestinationConfigGcsDestinationConfigPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigPtrInput` via: +// StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsArgs, StreamSourceConfigOracleSourceConfigIncludeObjectsPtr and StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput` via: // -// StreamDestinationConfigGcsDestinationConfigArgs{...} +// StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{...} // // or: // // nil -type StreamDestinationConfigGcsDestinationConfigPtrInput interface { +type StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput interface { pulumi.Input - ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput - ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput } -type streamDestinationConfigGcsDestinationConfigPtrType StreamDestinationConfigGcsDestinationConfigArgs +type streamSourceConfigOracleSourceConfigIncludeObjectsPtrType StreamSourceConfigOracleSourceConfigIncludeObjectsArgs -func StreamDestinationConfigGcsDestinationConfigPtr(v *StreamDestinationConfigGcsDestinationConfigArgs) StreamDestinationConfigGcsDestinationConfigPtrInput { - return (*streamDestinationConfigGcsDestinationConfigPtrType)(v) +func StreamSourceConfigOracleSourceConfigIncludeObjectsPtr(v *StreamSourceConfigOracleSourceConfigIncludeObjectsArgs) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput { + return (*streamSourceConfigOracleSourceConfigIncludeObjectsPtrType)(v) } -func (*streamDestinationConfigGcsDestinationConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +func (*streamSourceConfigOracleSourceConfigIncludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigIncludeObjects)(nil)).Elem() } -func (i *streamDestinationConfigGcsDestinationConfigPtrType) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigOracleSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (i *streamDestinationConfigGcsDestinationConfigPtrType) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigPtrOutput) +func (i *streamSourceConfigOracleSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) } -type StreamDestinationConfigGcsDestinationConfigOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigGcsDestinationConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjects)(nil)).Elem() } -func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigOutput() StreamDestinationConfigGcsDestinationConfigOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { - return o.ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o.ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (o StreamDestinationConfigGcsDestinationConfigOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfig { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigOracleSourceConfigIncludeObjects) *StreamSourceConfigOracleSourceConfigIncludeObjects { return &v - }).(StreamDestinationConfigGcsDestinationConfigPtrOutput) + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) } -// AVRO file format configuration. -func (o StreamDestinationConfigGcsDestinationConfigOutput) AvroFileFormat() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { - return v.AvroFileFormat - }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +// Oracle schemas/databases in the database server +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) OracleSchemas() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjects) []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + return v.OracleSchemas + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) +} + +type StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigIncludeObjects)(nil)).Elem() +} + +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput { + return o +} + +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) Elem() StreamSourceConfigOracleSourceConfigIncludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigIncludeObjects) StreamSourceConfigOracleSourceConfigIncludeObjects { + if v != nil { + return *v + } + var ret StreamSourceConfigOracleSourceConfigIncludeObjects + return ret + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOutput) +} + +// Oracle schemas/databases in the database server +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput) OracleSchemas() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigIncludeObjects) []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + if v == nil { + return nil + } + return v.OracleSchemas + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) +} + +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema struct { + // Tables in the database. + // Structure is documented below. + OracleTables []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable `pulumi:"oracleTables"` + // Schema name. + Schema string `pulumi:"schema"` +} + +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaInput` via: +// +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{...} +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput +} + +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs struct { + // Tables in the database. + // Structure is documented below. + OracleTables StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayInput `pulumi:"oracleTables"` + // Schema name. + Schema pulumi.StringInput `pulumi:"schema"` +} + +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema)(nil)).Elem() +} + +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutputWithContext(context.Background()) +} + +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) } -// The maximum duration for which new events are added before a file is closed and a new file is created. -// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. -func (o StreamDestinationConfigGcsDestinationConfigOutput) FileRotationInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *string { return v.FileRotationInterval }).(pulumi.StringPtrOutput) +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayInput` via: +// +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{ StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{...} } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput } -// The maximum file size to be saved in the bucket. -func (o StreamDestinationConfigGcsDestinationConfigOutput) FileRotationMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *int { return v.FileRotationMb }).(pulumi.IntPtrOutput) +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaInput + +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema)(nil)).Elem() } -// JSON file format configuration. -// Structure is documented below. -func (o StreamDestinationConfigGcsDestinationConfigOutput) JsonFileFormat() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { - return v.JsonFileFormat - }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutputWithContext(context.Background()) } -// Path inside the Cloud Storage bucket to write data to. -func (o StreamDestinationConfigGcsDestinationConfigOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfig) *string { return v.Path }).(pulumi.StringPtrOutput) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) } -type StreamDestinationConfigGcsDestinationConfigPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigGcsDestinationConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema)(nil)).Elem() } -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutput() StreamDestinationConfigGcsDestinationConfigPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) ToStreamDestinationConfigGcsDestinationConfigPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) StreamDestinationConfigGcsDestinationConfig { - if v != nil { - return *v - } - var ret StreamDestinationConfigGcsDestinationConfig - return ret - }).(StreamDestinationConfigGcsDestinationConfigOutput) +// Tables in the database. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) OracleTables() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema) []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable { + return v.OracleTables + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) } -// AVRO file format configuration. -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) AvroFileFormat() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { - if v == nil { - return nil - } - return v.AvroFileFormat - }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +// Schema name. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema) string { return v.Schema }).(pulumi.StringOutput) } -// The maximum duration for which new events are added before a file is closed and a new file is created. -// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) FileRotationInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *string { - if v == nil { - return nil - } - return v.FileRotationInterval - }).(pulumi.StringPtrOutput) +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema)(nil)).Elem() } -// The maximum file size to be saved in the bucket. -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) FileRotationMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *int { - if v == nil { - return nil - } - return v.FileRotationMb - }).(pulumi.IntPtrOutput) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return o } -// JSON file format configuration. -// Structure is documented below. -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) JsonFileFormat() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { - if v == nil { - return nil - } - return v.JsonFileFormat - }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput { + return o } -// Path inside the Cloud Storage bucket to write data to. -func (o StreamDestinationConfigGcsDestinationConfigPtrOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfig) *string { - if v == nil { - return nil - } - return v.Path - }).(pulumi.StringPtrOutput) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + return vs[0].([]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput) } -type StreamDestinationConfigGcsDestinationConfigAvroFileFormat struct { +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn `pulumi:"oracleColumns"` + // Table name. + Table string `pulumi:"table"` } -// StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs and StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput` via: +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableInput` via: // -// StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs{...} -type StreamDestinationConfigGcsDestinationConfigAvroFileFormatInput interface { +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{...} +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableInput interface { pulumi.Input - ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput - ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput -} - -type StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs struct { -} - -func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput } -func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(context.Background()) +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs struct { + // Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + // Structure is documented below. + OracleColumns StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayInput `pulumi:"oracleColumns"` + // Table name. + Table pulumi.StringInput `pulumi:"table"` } -func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable)(nil)).Elem() } -func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutputWithContext(context.Background()) } -func (i StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput).ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) } -// StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs, StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtr and StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput` via: -// -// StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs{...} +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayInput` via: // -// or: -// -// nil -type StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput interface { +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{ StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{...} } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayInput interface { pulumi.Input - ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput - ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput } -type streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs - -func StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtr(v *StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrInput { - return (*streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType)(v) -} +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableInput -func (*streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable)(nil)).Elem() } -func (i *streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutputWithContext(context.Background()) } -func (i *streamDestinationConfigGcsDestinationConfigAvroFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) } -type StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable)(nil)).Elem() } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return o.ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(context.Background()) +// Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// Structure is documented below. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) OracleColumns() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable) []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn { + return v.OracleColumns + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfigAvroFileFormat) *StreamDestinationConfigGcsDestinationConfigAvroFileFormat { - return &v - }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) +// Table name. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable) string { + return v.Table + }).(pulumi.StringOutput) } -type StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigAvroFileFormat)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable)(nil)).Elem() } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigAvroFileFormatPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigAvroFileFormat) StreamDestinationConfigGcsDestinationConfigAvroFileFormat { - if v != nil { - return *v - } - var ret StreamDestinationConfigGcsDestinationConfigAvroFileFormat - return ret - }).(StreamDestinationConfigGcsDestinationConfigAvroFileFormatOutput) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable { + return vs[0].([]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput) } -type StreamDestinationConfigGcsDestinationConfigJsonFileFormat struct { - // Compression of the loaded JSON file. - // Possible values are `NO_COMPRESSION` and `GZIP`. - Compression *string `pulumi:"compression"` - // The schema file format along JSON data files. - // Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. - SchemaFileFormat *string `pulumi:"schemaFileFormat"` +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn struct { + // Column name. + Column *string `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType *string `pulumi:"dataType"` + // Column encoding. + Encoding *string `pulumi:"encoding"` + // Column length. + Length *int `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable *bool `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` } -// StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs and StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput` via: +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnInput` via: // -// StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{...} -type StreamDestinationConfigGcsDestinationConfigJsonFileFormatInput interface { +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{...} +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnInput interface { pulumi.Input - ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput - ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput } -type StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs struct { - // Compression of the loaded JSON file. - // Possible values are `NO_COMPRESSION` and `GZIP`. - Compression pulumi.StringPtrInput `pulumi:"compression"` - // The schema file format along JSON data files. - // Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. - SchemaFileFormat pulumi.StringPtrInput `pulumi:"schemaFileFormat"` +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs struct { + // Column name. + Column pulumi.StringPtrInput `pulumi:"column"` + // The Oracle data type. Full data types list can be found here: + // https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + DataType pulumi.StringPtrInput `pulumi:"dataType"` + // Column encoding. + Encoding pulumi.StringPtrInput `pulumi:"encoding"` + // Column length. + Length pulumi.IntPtrInput `pulumi:"length"` + // Whether or not the column can accept a null value. + Nullable pulumi.BoolPtrInput `pulumi:"nullable"` + // The ordinal position of the column in the table. + OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` + // Whether or not the column represents a primary key. + PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` } -func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(context.Background()) } -func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) } -func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayInput is an input type that accepts StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray and StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayInput` via: +// +// StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{ StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{...} } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayInput interface { + pulumi.Input + + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput + ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput } -func (i StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput).ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx) +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray []StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnInput + +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -// StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput is an input type that accepts StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs, StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtr and StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput values. -// You can construct a concrete instance of `StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput` via: -// -// StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{...} -// -// or: -// -// nil -type StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput interface { - pulumi.Input +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return i.ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(context.Background()) +} - ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput - ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput +func (i StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) } -type streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput struct{ *pulumi.OutputState } -func StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtr(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrInput { - return (*streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType)(v) +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (*streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return o } -func (i *streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return i.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return o } -func (i *streamDestinationConfigGcsDestinationConfigJsonFileFormatPtrType) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +// Column name. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Column + }).(pulumi.StringPtrOutput) } -type StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput struct{ *pulumi.OutputState } +// The Oracle data type. Full data types list can be found here: +// https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.DataType + }).(pulumi.StringPtrOutput) +} -func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +// Column encoding. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Encoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *string { + return v.Encoding + }).(pulumi.StringPtrOutput) } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { - return o +// Column length. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Length + }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { - return o +// Whether or not the column can accept a null value. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.Nullable + }).(pulumi.BoolPtrOutput) } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return o.ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(context.Background()) +// The ordinal position of the column in the table. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.OrdinalPosition + }).(pulumi.IntPtrOutput) } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *StreamDestinationConfigGcsDestinationConfigJsonFileFormat { - return &v - }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) +// Column precision. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) } -// Compression of the loaded JSON file. -// Possible values are `NO_COMPRESSION` and `GZIP`. -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) Compression() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { return v.Compression }).(pulumi.StringPtrOutput) +// Whether or not the column represents a primary key. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *bool { + return v.PrimaryKey + }).(pulumi.BoolPtrOutput) } -// The schema file format along JSON data files. -// Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) SchemaFileFormat() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { return v.SchemaFileFormat }).(pulumi.StringPtrOutput) +// Column scale. +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn) *int { + return v.Scale + }).(pulumi.IntPtrOutput) } -type StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput struct{ *pulumi.OutputState } -func (StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamDestinationConfigGcsDestinationConfigJsonFileFormat)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn)(nil)).Elem() } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput() StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput() StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) ToStreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutputWithContext(ctx context.Context) StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput { +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) ToStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput { return o } -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) Elem() StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) StreamDestinationConfigGcsDestinationConfigJsonFileFormat { - if v != nil { - return *v - } - var ret StreamDestinationConfigGcsDestinationConfigJsonFileFormat - return ret - }).(StreamDestinationConfigGcsDestinationConfigJsonFileFormatOutput) -} - -// Compression of the loaded JSON file. -// Possible values are `NO_COMPRESSION` and `GZIP`. -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) Compression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { - if v == nil { - return nil - } - return v.Compression - }).(pulumi.StringPtrOutput) -} - -// The schema file format along JSON data files. -// Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. -func (o StreamDestinationConfigGcsDestinationConfigJsonFileFormatPtrOutput) SchemaFileFormat() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamDestinationConfigGcsDestinationConfigJsonFileFormat) *string { - if v == nil { - return nil - } - return v.SchemaFileFormat - }).(pulumi.StringPtrOutput) +func (o StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn { + return vs[0].([]StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn)[vs[1].(int)] + }).(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput) } -type StreamSourceConfig struct { - // MySQL data source configuration. - // Structure is documented below. - MysqlSourceConfig StreamSourceConfigMysqlSourceConfig `pulumi:"mysqlSourceConfig"` - // Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - SourceConnectionProfile string `pulumi:"sourceConnectionProfile"` +type StreamSourceConfigOracleSourceConfigStreamLargeObjects struct { } -// StreamSourceConfigInput is an input type that accepts StreamSourceConfigArgs and StreamSourceConfigOutput values. -// You can construct a concrete instance of `StreamSourceConfigInput` via: +// StreamSourceConfigOracleSourceConfigStreamLargeObjectsInput is an input type that accepts StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs and StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigStreamLargeObjectsInput` via: // -// StreamSourceConfigArgs{...} -type StreamSourceConfigInput interface { +// StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs{...} +type StreamSourceConfigOracleSourceConfigStreamLargeObjectsInput interface { pulumi.Input - ToStreamSourceConfigOutput() StreamSourceConfigOutput - ToStreamSourceConfigOutputWithContext(context.Context) StreamSourceConfigOutput + ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput + ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput } -type StreamSourceConfigArgs struct { - // MySQL data source configuration. - // Structure is documented below. - MysqlSourceConfig StreamSourceConfigMysqlSourceConfigInput `pulumi:"mysqlSourceConfig"` - // Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - SourceConnectionProfile pulumi.StringInput `pulumi:"sourceConnectionProfile"` +type StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs struct { } -func (StreamSourceConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigStreamLargeObjects)(nil)).Elem() } -func (i StreamSourceConfigArgs) ToStreamSourceConfigOutput() StreamSourceConfigOutput { - return i.ToStreamSourceConfigOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput { + return i.ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputWithContext(context.Background()) } -func (i StreamSourceConfigArgs) ToStreamSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOutput) +func (i StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) } -func (i StreamSourceConfigArgs) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { - return i.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(context.Background()) } -func (i StreamSourceConfigArgs) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOutput).ToStreamSourceConfigPtrOutputWithContext(ctx) +func (i StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput).ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(ctx) } -// StreamSourceConfigPtrInput is an input type that accepts StreamSourceConfigArgs, StreamSourceConfigPtr and StreamSourceConfigPtrOutput values. -// You can construct a concrete instance of `StreamSourceConfigPtrInput` via: +// StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput is an input type that accepts StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs, StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtr and StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput` via: // -// StreamSourceConfigArgs{...} +// StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs{...} // // or: // // nil -type StreamSourceConfigPtrInput interface { +type StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput interface { pulumi.Input - ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput - ToStreamSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigPtrOutput + ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput + ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput } -type streamSourceConfigPtrType StreamSourceConfigArgs +type streamSourceConfigOracleSourceConfigStreamLargeObjectsPtrType StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs -func StreamSourceConfigPtr(v *StreamSourceConfigArgs) StreamSourceConfigPtrInput { - return (*streamSourceConfigPtrType)(v) +func StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtr(v *StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput { + return (*streamSourceConfigOracleSourceConfigStreamLargeObjectsPtrType)(v) } -func (*streamSourceConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfig)(nil)).Elem() +func (*streamSourceConfigOracleSourceConfigStreamLargeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigStreamLargeObjects)(nil)).Elem() } -func (i *streamSourceConfigPtrType) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { - return i.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigOracleSourceConfigStreamLargeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return i.ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(context.Background()) } -func (i *streamSourceConfigPtrType) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPtrOutput) +func (i *streamSourceConfigOracleSourceConfigStreamLargeObjectsPtrType) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) } -type StreamSourceConfigOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigOracleSourceConfigStreamLargeObjects)(nil)).Elem() } -func (o StreamSourceConfigOutput) ToStreamSourceConfigOutput() StreamSourceConfigOutput { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput { return o } -func (o StreamSourceConfigOutput) ToStreamSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigOutput { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput { return o } -func (o StreamSourceConfigOutput) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { - return o.ToStreamSourceConfigPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return o.ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(context.Background()) } -func (o StreamSourceConfigOutput) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfig) *StreamSourceConfig { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigOracleSourceConfigStreamLargeObjects) *StreamSourceConfigOracleSourceConfigStreamLargeObjects { return &v - }).(StreamSourceConfigPtrOutput) -} - -// MySQL data source configuration. -// Structure is documented below. -func (o StreamSourceConfigOutput) MysqlSourceConfig() StreamSourceConfigMysqlSourceConfigOutput { - return o.ApplyT(func(v StreamSourceConfig) StreamSourceConfigMysqlSourceConfig { return v.MysqlSourceConfig }).(StreamSourceConfigMysqlSourceConfigOutput) -} - -// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} -func (o StreamSourceConfigOutput) SourceConnectionProfile() pulumi.StringOutput { - return o.ApplyT(func(v StreamSourceConfig) string { return v.SourceConnectionProfile }).(pulumi.StringOutput) + }).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) } -type StreamSourceConfigPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfig)(nil)).Elem() +func (StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigOracleSourceConfigStreamLargeObjects)(nil)).Elem() } -func (o StreamSourceConfigPtrOutput) ToStreamSourceConfigPtrOutput() StreamSourceConfigPtrOutput { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput() StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { return o } -func (o StreamSourceConfigPtrOutput) ToStreamSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPtrOutput { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) ToStreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput { return o } -func (o StreamSourceConfigPtrOutput) Elem() StreamSourceConfigOutput { - return o.ApplyT(func(v *StreamSourceConfig) StreamSourceConfig { +func (o StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput) Elem() StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigOracleSourceConfigStreamLargeObjects) StreamSourceConfigOracleSourceConfigStreamLargeObjects { if v != nil { return *v } - var ret StreamSourceConfig + var ret StreamSourceConfigOracleSourceConfigStreamLargeObjects return ret - }).(StreamSourceConfigOutput) -} - -// MySQL data source configuration. -// Structure is documented below. -func (o StreamSourceConfigPtrOutput) MysqlSourceConfig() StreamSourceConfigMysqlSourceConfigPtrOutput { - return o.ApplyT(func(v *StreamSourceConfig) *StreamSourceConfigMysqlSourceConfig { - if v == nil { - return nil - } - return &v.MysqlSourceConfig - }).(StreamSourceConfigMysqlSourceConfigPtrOutput) -} - -// Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} -func (o StreamSourceConfigPtrOutput) SourceConnectionProfile() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StreamSourceConfig) *string { - if v == nil { - return nil - } - return &v.SourceConnectionProfile - }).(pulumi.StringPtrOutput) + }).(StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput) } -type StreamSourceConfigMysqlSourceConfig struct { - // MySQL objects to exclude from the stream. +type StreamSourceConfigPostgresqlSourceConfig struct { + // PostgreSQL objects to exclude from the stream. // Structure is documented below. - ExcludeObjects *StreamSourceConfigMysqlSourceConfigExcludeObjects `pulumi:"excludeObjects"` - // MySQL objects to retrieve from the source. + ExcludeObjects *StreamSourceConfigPostgresqlSourceConfigExcludeObjects `pulumi:"excludeObjects"` + // PostgreSQL objects to retrieve from the source. // Structure is documented below. - IncludeObjects *StreamSourceConfigMysqlSourceConfigIncludeObjects `pulumi:"includeObjects"` - // Maximum number of concurrent CDC tasks. The number should be non negative. - // If not set (or set to 0), the system's default value will be used. - MaxConcurrentCdcTasks *int `pulumi:"maxConcurrentCdcTasks"` -} - -// StreamSourceConfigMysqlSourceConfigInput is an input type that accepts StreamSourceConfigMysqlSourceConfigArgs and StreamSourceConfigMysqlSourceConfigOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigInput` via: + IncludeObjects *StreamSourceConfigPostgresqlSourceConfigIncludeObjects `pulumi:"includeObjects"` + // Maximum number of concurrent backfill tasks. The number should be non + // negative. If not set (or set to 0), the system's default value will be used. + MaxConcurrentBackfillTasks *int `pulumi:"maxConcurrentBackfillTasks"` + // The name of the publication that includes the set of all tables + // that are defined in the stream's include_objects. + Publication string `pulumi:"publication"` + // The name of the logical replication slot that's configured with + // the pgoutput plugin. + ReplicationSlot string `pulumi:"replicationSlot"` +} + +// StreamSourceConfigPostgresqlSourceConfigInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigArgs and StreamSourceConfigPostgresqlSourceConfigOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigInput` via: // -// StreamSourceConfigMysqlSourceConfigArgs{...} -type StreamSourceConfigMysqlSourceConfigInput interface { +// StreamSourceConfigPostgresqlSourceConfigArgs{...} +type StreamSourceConfigPostgresqlSourceConfigInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput - ToStreamSourceConfigMysqlSourceConfigOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigOutput + ToStreamSourceConfigPostgresqlSourceConfigOutput() StreamSourceConfigPostgresqlSourceConfigOutput + ToStreamSourceConfigPostgresqlSourceConfigOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigOutput } -type StreamSourceConfigMysqlSourceConfigArgs struct { - // MySQL objects to exclude from the stream. +type StreamSourceConfigPostgresqlSourceConfigArgs struct { + // PostgreSQL objects to exclude from the stream. // Structure is documented below. - ExcludeObjects StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput `pulumi:"excludeObjects"` - // MySQL objects to retrieve from the source. + ExcludeObjects StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput `pulumi:"excludeObjects"` + // PostgreSQL objects to retrieve from the source. // Structure is documented below. - IncludeObjects StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput `pulumi:"includeObjects"` - // Maximum number of concurrent CDC tasks. The number should be non negative. - // If not set (or set to 0), the system's default value will be used. - MaxConcurrentCdcTasks pulumi.IntPtrInput `pulumi:"maxConcurrentCdcTasks"` + IncludeObjects StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput `pulumi:"includeObjects"` + // Maximum number of concurrent backfill tasks. The number should be non + // negative. If not set (or set to 0), the system's default value will be used. + MaxConcurrentBackfillTasks pulumi.IntPtrInput `pulumi:"maxConcurrentBackfillTasks"` + // The name of the publication that includes the set of all tables + // that are defined in the stream's include_objects. + Publication pulumi.StringInput `pulumi:"publication"` + // The name of the logical replication slot that's configured with + // the pgoutput plugin. + ReplicationSlot pulumi.StringInput `pulumi:"replicationSlot"` } -func (StreamSourceConfigMysqlSourceConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfig)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput { - return i.ToStreamSourceConfigMysqlSourceConfigOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigArgs) ToStreamSourceConfigPostgresqlSourceConfigOutput() StreamSourceConfigPostgresqlSourceConfigOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigOutput) +func (i StreamSourceConfigPostgresqlSourceConfigArgs) ToStreamSourceConfigPostgresqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigOutput) } -func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigArgs) ToStreamSourceConfigPostgresqlSourceConfigPtrOutput() StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigArgs) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigOutput).ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx) +func (i StreamSourceConfigPostgresqlSourceConfigArgs) ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigOutput).ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(ctx) } -// StreamSourceConfigMysqlSourceConfigPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigArgs, StreamSourceConfigMysqlSourceConfigPtr and StreamSourceConfigMysqlSourceConfigPtrOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigPtrInput` via: +// StreamSourceConfigPostgresqlSourceConfigPtrInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigArgs, StreamSourceConfigPostgresqlSourceConfigPtr and StreamSourceConfigPostgresqlSourceConfigPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigPtrInput` via: // -// StreamSourceConfigMysqlSourceConfigArgs{...} +// StreamSourceConfigPostgresqlSourceConfigArgs{...} // // or: // // nil -type StreamSourceConfigMysqlSourceConfigPtrInput interface { +type StreamSourceConfigPostgresqlSourceConfigPtrInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput - ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigPtrOutput() StreamSourceConfigPostgresqlSourceConfigPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigPtrOutput } -type streamSourceConfigMysqlSourceConfigPtrType StreamSourceConfigMysqlSourceConfigArgs +type streamSourceConfigPostgresqlSourceConfigPtrType StreamSourceConfigPostgresqlSourceConfigArgs -func StreamSourceConfigMysqlSourceConfigPtr(v *StreamSourceConfigMysqlSourceConfigArgs) StreamSourceConfigMysqlSourceConfigPtrInput { - return (*streamSourceConfigMysqlSourceConfigPtrType)(v) +func StreamSourceConfigPostgresqlSourceConfigPtr(v *StreamSourceConfigPostgresqlSourceConfigArgs) StreamSourceConfigPostgresqlSourceConfigPtrInput { + return (*streamSourceConfigPostgresqlSourceConfigPtrType)(v) } -func (*streamSourceConfigMysqlSourceConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +func (*streamSourceConfigPostgresqlSourceConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfig)(nil)).Elem() } -func (i *streamSourceConfigMysqlSourceConfigPtrType) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigPostgresqlSourceConfigPtrType) ToStreamSourceConfigPostgresqlSourceConfigPtrOutput() StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(context.Background()) } -func (i *streamSourceConfigMysqlSourceConfigPtrType) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigPtrOutput) +func (i *streamSourceConfigPostgresqlSourceConfigPtrType) ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigPtrOutput) } -type StreamSourceConfigMysqlSourceConfigOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfig)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigOutput() StreamSourceConfigMysqlSourceConfigOutput { +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ToStreamSourceConfigPostgresqlSourceConfigOutput() StreamSourceConfigPostgresqlSourceConfigOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigOutput { +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ToStreamSourceConfigPostgresqlSourceConfigOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { - return o.ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ToStreamSourceConfigPostgresqlSourceConfigPtrOutput() StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return o.ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(context.Background()) } -func (o StreamSourceConfigMysqlSourceConfigOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfig { +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigPostgresqlSourceConfig) *StreamSourceConfigPostgresqlSourceConfig { return &v - }).(StreamSourceConfigMysqlSourceConfigPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigPtrOutput) } -// MySQL objects to exclude from the stream. +// PostgreSQL objects to exclude from the stream. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigOutput) ExcludeObjects() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigExcludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ExcludeObjects() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfig) *StreamSourceConfigPostgresqlSourceConfigExcludeObjects { return v.ExcludeObjects - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) } -// MySQL objects to retrieve from the source. +// PostgreSQL objects to retrieve from the source. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigOutput) IncludeObjects() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigIncludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigOutput) IncludeObjects() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfig) *StreamSourceConfigPostgresqlSourceConfigIncludeObjects { return v.IncludeObjects - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) } -// Maximum number of concurrent CDC tasks. The number should be non negative. -// If not set (or set to 0), the system's default value will be used. -func (o StreamSourceConfigMysqlSourceConfigOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfig) *int { return v.MaxConcurrentCdcTasks }).(pulumi.IntPtrOutput) +// Maximum number of concurrent backfill tasks. The number should be non +// negative. If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigPostgresqlSourceConfigOutput) MaxConcurrentBackfillTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfig) *int { return v.MaxConcurrentBackfillTasks }).(pulumi.IntPtrOutput) } -type StreamSourceConfigMysqlSourceConfigPtrOutput struct{ *pulumi.OutputState } +// The name of the publication that includes the set of all tables +// that are defined in the stream's include_objects. +func (o StreamSourceConfigPostgresqlSourceConfigOutput) Publication() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfig) string { return v.Publication }).(pulumi.StringOutput) +} -func (StreamSourceConfigMysqlSourceConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfig)(nil)).Elem() +// The name of the logical replication slot that's configured with +// the pgoutput plugin. +func (o StreamSourceConfigPostgresqlSourceConfigOutput) ReplicationSlot() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfig) string { return v.ReplicationSlot }).(pulumi.StringOutput) } -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutput() StreamSourceConfigMysqlSourceConfigPtrOutput { +type StreamSourceConfigPostgresqlSourceConfigPtrOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigPostgresqlSourceConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfig)(nil)).Elem() +} + +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigPtrOutput() StreamSourceConfigPostgresqlSourceConfigPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ToStreamSourceConfigMysqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigPtrOutput { +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) StreamSourceConfigMysqlSourceConfig { +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) Elem() StreamSourceConfigPostgresqlSourceConfigOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) StreamSourceConfigPostgresqlSourceConfig { if v != nil { return *v } - var ret StreamSourceConfigMysqlSourceConfig + var ret StreamSourceConfigPostgresqlSourceConfig return ret - }).(StreamSourceConfigMysqlSourceConfigOutput) + }).(StreamSourceConfigPostgresqlSourceConfigOutput) } -// MySQL objects to exclude from the stream. +// PostgreSQL objects to exclude from the stream. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) ExcludeObjects() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigExcludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) ExcludeObjects() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) *StreamSourceConfigPostgresqlSourceConfigExcludeObjects { if v == nil { return nil } return v.ExcludeObjects - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) } -// MySQL objects to retrieve from the source. +// PostgreSQL objects to retrieve from the source. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) IncludeObjects() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *StreamSourceConfigMysqlSourceConfigIncludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) IncludeObjects() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) *StreamSourceConfigPostgresqlSourceConfigIncludeObjects { if v == nil { return nil } return v.IncludeObjects - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) } -// Maximum number of concurrent CDC tasks. The number should be non negative. -// If not set (or set to 0), the system's default value will be used. -func (o StreamSourceConfigMysqlSourceConfigPtrOutput) MaxConcurrentCdcTasks() pulumi.IntPtrOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfig) *int { +// Maximum number of concurrent backfill tasks. The number should be non +// negative. If not set (or set to 0), the system's default value will be used. +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) MaxConcurrentBackfillTasks() pulumi.IntPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) *int { if v == nil { return nil } - return v.MaxConcurrentCdcTasks + return v.MaxConcurrentBackfillTasks }).(pulumi.IntPtrOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjects struct { - // MySQL databases on the server +// The name of the publication that includes the set of all tables +// that are defined in the stream's include_objects. +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) Publication() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) *string { + if v == nil { + return nil + } + return &v.Publication + }).(pulumi.StringPtrOutput) +} + +// The name of the logical replication slot that's configured with +// the pgoutput plugin. +func (o StreamSourceConfigPostgresqlSourceConfigPtrOutput) ReplicationSlot() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfig) *string { + if v == nil { + return nil + } + return &v.ReplicationSlot + }).(pulumi.StringPtrOutput) +} + +type StreamSourceConfigPostgresqlSourceConfigExcludeObjects struct { + // PostgreSQL schemas on the server // Structure is documented below. - MysqlDatabases []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase `pulumi:"mysqlDatabases"` + PostgresqlSchemas []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema `pulumi:"postgresqlSchemas"` } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{...} -type StreamSourceConfigMysqlSourceConfigExcludeObjectsInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{...} +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs struct { - // MySQL databases on the server +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs struct { + // PostgreSQL schemas on the server // Structure is documented below. - MysqlDatabases StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput `pulumi:"mysqlDatabases"` + PostgresqlSchemas StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayInput `pulumi:"postgresqlSchemas"` } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjects)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput).ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput).ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx) } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs, StreamSourceConfigMysqlSourceConfigExcludeObjectsPtr and StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs, StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtr and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{...} +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{...} // // or: // // nil -type StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput interface { +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput } -type streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs +type streamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrType StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs -func StreamSourceConfigMysqlSourceConfigExcludeObjectsPtr(v *StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrInput { - return (*streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType)(v) +func StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtr(v *StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput { + return (*streamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrType)(v) } -func (*streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +func (*streamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfigExcludeObjects)(nil)).Elem() } -func (i *streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) } -func (i *streamSourceConfigMysqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) +func (i *streamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrType) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjects)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return o.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return o.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(context.Background()) } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfigExcludeObjects) *StreamSourceConfigMysqlSourceConfigExcludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigPostgresqlSourceConfigExcludeObjects) *StreamSourceConfigPostgresqlSourceConfigExcludeObjects { return &v - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) } -// MySQL databases on the server +// PostgreSQL schemas on the server // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjects) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { - return v.MysqlDatabases - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) PostgresqlSchemas() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjects) []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { + return v.PostgresqlSchemas + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigExcludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfigExcludeObjects)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigExcludeObjects) StreamSourceConfigMysqlSourceConfigExcludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) Elem() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfigExcludeObjects) StreamSourceConfigPostgresqlSourceConfigExcludeObjects { if v != nil { return *v } - var ret StreamSourceConfigMysqlSourceConfigExcludeObjects + var ret StreamSourceConfigPostgresqlSourceConfigExcludeObjects return ret - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsOutput) + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput) } -// MySQL databases on the server +// PostgreSQL schemas on the server // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsPtrOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigExcludeObjects) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput) PostgresqlSchemas() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfigExcludeObjects) []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { if v == nil { return nil } - return v.MysqlDatabases - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) + return v.PostgresqlSchemas + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase struct { - // Database name. - Database string `pulumi:"database"` - // Tables in the database. +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema struct { + // Tables in the schema. // Structure is documented below. - MysqlTables []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable `pulumi:"mysqlTables"` + PostgresqlTables []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable `pulumi:"postgresqlTables"` + // Database name. + Schema string `pulumi:"schema"` } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{...} -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{...} +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs struct { - // Database name. - Database pulumi.StringInput `pulumi:"database"` - // Tables in the database. +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs struct { + // Tables in the schema. // Structure is documented below. - MysqlTables StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput `pulumi:"mysqlTables"` + PostgresqlTables StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayInput `pulumi:"postgresqlTables"` + // Database name. + Schema pulumi.StringInput `pulumi:"schema"` } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{...} } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{ StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseInput +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaInput -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput { return o } -// Database name. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) Database() pulumi.StringOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase) string { return v.Database }).(pulumi.StringOutput) +// Tables in the schema. +// Structure is documented below. +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) PostgresqlTables() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema) []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable { + return v.PostgresqlTables + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) } -// Tables in the database. -// Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) MysqlTables() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable { - return v.MysqlTables - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) +// Database name. +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema) string { return v.Schema }).(pulumi.StringOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase { - return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseOutput) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable struct { - // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. - MysqlColumns []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn `pulumi:"mysqlColumns"` + PostgresqlColumns []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn `pulumi:"postgresqlColumns"` // Table name. Table string `pulumi:"table"` } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{...} -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{...} +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs struct { - // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. - MysqlColumns StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput `pulumi:"mysqlColumns"` + PostgresqlColumns StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput `pulumi:"postgresqlColumns"` // Table name. Table pulumi.StringInput `pulumi:"table"` } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{...} } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{ StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableInput +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableInput -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput { return o } -// MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) MysqlColumns() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable) []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn { - return v.MysqlColumns - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) PostgresqlColumns() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable) []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return v.PostgresqlColumns + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) } // Table name. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) Table() pulumi.StringOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable) string { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable) string { return v.Table }).(pulumi.StringOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable { - return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableOutput) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn struct { - // Column collation. - Collation *string `pulumi:"collation"` +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn struct { // Column name. Column *string `pulumi:"column"` - // The MySQL data type. Full data types list can be found here: - // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html DataType *string `pulumi:"dataType"` // Column length. Length *int `pulumi:"length"` @@ -4746,28 +8850,30 @@ type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMys Nullable *bool `pulumi:"nullable"` // The ordinal position of the column in the table. OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` // Whether or not the column represents a primary key. PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs struct { - // Column collation. - Collation pulumi.StringPtrInput `pulumi:"collation"` +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs struct { // Column name. Column pulumi.StringPtrInput `pulumi:"column"` - // The MySQL data type. Full data types list can be found here: - // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html DataType pulumi.StringPtrInput `pulumi:"dataType"` // Column length. Length pulumi.IntPtrInput `pulumi:"length"` @@ -4775,505 +8881,514 @@ type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMys Nullable pulumi.BoolPtrInput `pulumi:"nullable"` // The ordinal position of the column in the table. OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` // Whether or not the column represents a primary key. PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) } -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray and StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray and StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{ StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput - ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray []StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray []StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { return o } -// Column collation. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Collation() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { - return v.Collation - }).(pulumi.StringPtrOutput) -} - // Column name. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Column() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { return v.Column }).(pulumi.StringPtrOutput) } -// The MySQL data type. Full data types list can be found here: -// https://dev.mysql.com/doc/refman/8.0/en/data-types.html -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) DataType() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { +// The PostgreSQL data type. Full data types list can be found here: +// https://www.postgresql.org/docs/current/datatype.html +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { return v.DataType }).(pulumi.StringPtrOutput) } // Column length. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Length() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { return v.Length }).(pulumi.IntPtrOutput) } // Whether or not the column can accept a null value. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Nullable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { return v.Nullable }).(pulumi.BoolPtrOutput) } // The ordinal position of the column in the table. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { return v.OrdinalPosition }).(pulumi.IntPtrOutput) } +// Column precision. +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) +} + // Whether or not the column represents a primary key. -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { return v.PrimaryKey }).(pulumi.BoolPtrOutput) } -type StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput struct{ *pulumi.OutputState } +// Column scale. +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Scale + }).(pulumi.IntPtrOutput) +} -func (StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +type StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn { - return vs[0].([]StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +func (o StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjects struct { - // MySQL databases on the server +type StreamSourceConfigPostgresqlSourceConfigIncludeObjects struct { + // PostgreSQL schemas on the server // Structure is documented below. - MysqlDatabases []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase `pulumi:"mysqlDatabases"` + PostgresqlSchemas []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema `pulumi:"postgresqlSchemas"` } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{...} -type StreamSourceConfigMysqlSourceConfigIncludeObjectsInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{...} +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs struct { - // MySQL databases on the server +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs struct { + // PostgreSQL schemas on the server // Structure is documented below. - MysqlDatabases StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput `pulumi:"mysqlDatabases"` + PostgresqlSchemas StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayInput `pulumi:"postgresqlSchemas"` } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjects)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput).ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput).ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx) } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs, StreamSourceConfigMysqlSourceConfigIncludeObjectsPtr and StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs, StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtr and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{...} +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{...} // // or: // // nil -type StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput interface { +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput } -type streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs +type streamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrType StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs -func StreamSourceConfigMysqlSourceConfigIncludeObjectsPtr(v *StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrInput { - return (*streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType)(v) +func StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtr(v *StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput { + return (*streamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrType)(v) } -func (*streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +func (*streamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfigIncludeObjects)(nil)).Elem() } -func (i *streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +func (i *streamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (i *streamSourceConfigMysqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) +func (i *streamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrType) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjects)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return o.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return o.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(context.Background()) } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigMysqlSourceConfigIncludeObjects) *StreamSourceConfigMysqlSourceConfigIncludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamSourceConfigPostgresqlSourceConfigIncludeObjects) *StreamSourceConfigPostgresqlSourceConfigIncludeObjects { return &v - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) } -// MySQL databases on the server +// PostgreSQL schemas on the server // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjects) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { - return v.MysqlDatabases - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) PostgresqlSchemas() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjects) []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { + return v.PostgresqlSchemas + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StreamSourceConfigMysqlSourceConfigIncludeObjects)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamSourceConfigPostgresqlSourceConfigIncludeObjects)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) Elem() StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigIncludeObjects) StreamSourceConfigMysqlSourceConfigIncludeObjects { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) Elem() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfigIncludeObjects) StreamSourceConfigPostgresqlSourceConfigIncludeObjects { if v != nil { return *v } - var ret StreamSourceConfigMysqlSourceConfigIncludeObjects + var ret StreamSourceConfigPostgresqlSourceConfigIncludeObjects return ret - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsOutput) + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput) } -// MySQL databases on the server +// PostgreSQL schemas on the server // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsPtrOutput) MysqlDatabases() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { - return o.ApplyT(func(v *StreamSourceConfigMysqlSourceConfigIncludeObjects) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput) PostgresqlSchemas() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { + return o.ApplyT(func(v *StreamSourceConfigPostgresqlSourceConfigIncludeObjects) []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { if v == nil { return nil } - return v.MysqlDatabases - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) + return v.PostgresqlSchemas + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase struct { - // Database name. - Database string `pulumi:"database"` - // Tables in the database. +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema struct { + // Tables in the schema. // Structure is documented below. - MysqlTables []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable `pulumi:"mysqlTables"` + PostgresqlTables []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable `pulumi:"postgresqlTables"` + // Database name. + Schema string `pulumi:"schema"` } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{...} -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{...} +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs struct { - // Database name. - Database pulumi.StringInput `pulumi:"database"` - // Tables in the database. +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs struct { + // Tables in the schema. // Structure is documented below. - MysqlTables StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput `pulumi:"mysqlTables"` + PostgresqlTables StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayInput `pulumi:"postgresqlTables"` + // Database name. + Schema pulumi.StringInput `pulumi:"schema"` } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{...} } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{ StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseInput +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaInput -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput { return o } -// Database name. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) Database() pulumi.StringOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase) string { return v.Database }).(pulumi.StringOutput) +// Tables in the schema. +// Structure is documented below. +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) PostgresqlTables() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema) []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable { + return v.PostgresqlTables + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) } -// Tables in the database. -// Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) MysqlTables() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable { - return v.MysqlTables - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) +// Database name. +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) Schema() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema) string { return v.Schema }).(pulumi.StringOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase { - return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseOutput) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable struct { - // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. - MysqlColumns []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn `pulumi:"mysqlColumns"` + PostgresqlColumns []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn `pulumi:"postgresqlColumns"` // Table name. Table string `pulumi:"table"` } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{...} -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{...} +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs struct { - // MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs struct { + // PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. - MysqlColumns StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput `pulumi:"mysqlColumns"` + PostgresqlColumns StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput `pulumi:"postgresqlColumns"` // Table name. Table pulumi.StringInput `pulumi:"table"` } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{...} } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{ StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableInput +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableInput -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput { return o } -// MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. +// PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. // Structure is documented below. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) MysqlColumns() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable) []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn { - return v.MysqlColumns - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) PostgresqlColumns() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable) []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return v.PostgresqlColumns + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) } // Table name. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) Table() pulumi.StringOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable) string { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable) string { return v.Table }).(pulumi.StringOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable { - return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableOutput) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn struct { - // Column collation. - Collation *string `pulumi:"collation"` +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn struct { // Column name. Column *string `pulumi:"column"` - // The MySQL data type. Full data types list can be found here: - // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html DataType *string `pulumi:"dataType"` // Column length. Length *int `pulumi:"length"` @@ -5281,28 +9396,30 @@ type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMys Nullable *bool `pulumi:"nullable"` // The ordinal position of the column in the table. OrdinalPosition *int `pulumi:"ordinalPosition"` + // Column precision. + Precision *int `pulumi:"precision"` // Whether or not the column represents a primary key. PrimaryKey *bool `pulumi:"primaryKey"` + // Column scale. + Scale *int `pulumi:"scale"` } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs struct { - // Column collation. - Collation pulumi.StringPtrInput `pulumi:"collation"` +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs struct { // Column name. Column pulumi.StringPtrInput `pulumi:"column"` - // The MySQL data type. Full data types list can be found here: - // https://dev.mysql.com/doc/refman/8.0/en/data-types.html + // The PostgreSQL data type. Full data types list can be found here: + // https://www.postgresql.org/docs/current/datatype.html DataType pulumi.StringPtrInput `pulumi:"dataType"` // Column length. Length pulumi.IntPtrInput `pulumi:"length"` @@ -5310,129 +9427,140 @@ type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMys Nullable pulumi.BoolPtrInput `pulumi:"nullable"` // The ordinal position of the column in the table. OrdinalPosition pulumi.IntPtrInput `pulumi:"ordinalPosition"` + // Column precision. + Precision pulumi.IntPtrInput `pulumi:"precision"` // Whether or not the column represents a primary key. PrimaryKey pulumi.BoolPtrInput `pulumi:"primaryKey"` + // Column scale. + Scale pulumi.IntPtrInput `pulumi:"scale"` } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) } -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput is an input type that accepts StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray and StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput values. -// You can construct a concrete instance of `StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput` via: +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput is an input type that accepts StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray and StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput values. +// You can construct a concrete instance of `StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput` via: // -// StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{ StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{...} } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput interface { +// StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{...} } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput interface { pulumi.Input - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput - ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput + ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray []StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray []StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return i.ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(context.Background()) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return i.ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(context.Background()) } -func (i StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) +func (i StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput struct{ *pulumi.OutputState } +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput struct{ *pulumi.OutputState } -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { return o } -// Column collation. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Collation() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { - return v.Collation - }).(pulumi.StringPtrOutput) -} - // Column name. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Column() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Column() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { return v.Column }).(pulumi.StringPtrOutput) } -// The MySQL data type. Full data types list can be found here: -// https://dev.mysql.com/doc/refman/8.0/en/data-types.html -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) DataType() pulumi.StringPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *string { +// The PostgreSQL data type. Full data types list can be found here: +// https://www.postgresql.org/docs/current/datatype.html +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) DataType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *string { return v.DataType }).(pulumi.StringPtrOutput) } // Column length. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Length() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Length() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { return v.Length }).(pulumi.IntPtrOutput) } // Whether or not the column can accept a null value. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) Nullable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Nullable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { return v.Nullable }).(pulumi.BoolPtrOutput) } // The ordinal position of the column in the table. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *int { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) OrdinalPosition() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { return v.OrdinalPosition }).(pulumi.IntPtrOutput) } +// Column precision. +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Precision() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Precision + }).(pulumi.IntPtrOutput) +} + // Whether or not the column represents a primary key. -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { - return o.ApplyT(func(v StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn) *bool { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) PrimaryKey() pulumi.BoolPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *bool { return v.PrimaryKey }).(pulumi.BoolPtrOutput) } -type StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput struct{ *pulumi.OutputState } +// Column scale. +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) Scale() pulumi.IntPtrOutput { + return o.ApplyT(func(v StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn) *int { + return v.Scale + }).(pulumi.IntPtrOutput) +} -func (StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)(nil)).Elem() +type StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput struct{ *pulumi.OutputState } + +func (StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)(nil)).Elem() } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput() StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput() StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) ToStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput { +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) ToStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutputWithContext(ctx context.Context) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput { return o } -func (o StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn { - return vs[0].([]StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn)[vs[1].(int)] - }).(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput) +func (o StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput) Index(i pulumi.IntInput) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + return vs[0].([]StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn)[vs[1].(int)] + }).(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput) } func init() { @@ -5466,6 +9594,22 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArrayInput)(nil)).Elem(), StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArray{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnInput)(nil)).Elem(), StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput)(nil)).Elem(), StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsPtrInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayInput)(nil)).Elem(), StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPtrInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput)(nil)).Elem(), StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillNoneInput)(nil)).Elem(), StreamBackfillNoneArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamBackfillNonePtrInput)(nil)).Elem(), StreamBackfillNoneArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigInput)(nil)).Elem(), StreamDestinationConfigArgs{}) @@ -5504,6 +9648,46 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayInput)(nil)).Elem(), StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnInput)(nil)).Elem(), StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayInput)(nil)).Elem(), StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigPtrInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigDropLargeObjectsInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigStreamLargeObjectsInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigPtrInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayInput)(nil)).Elem(), StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{}) pulumi.RegisterOutputType(ConnectionProfileBigqueryProfileOutput{}) pulumi.RegisterOutputType(ConnectionProfileBigqueryProfilePtrOutput{}) pulumi.RegisterOutputType(ConnectionProfileForwardSshConnectivityOutput{}) @@ -5534,6 +9718,22 @@ func init() { pulumi.RegisterOutputType(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArrayOutput{}) pulumi.RegisterOutputType(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnOutput{}) pulumi.RegisterOutputType(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArrayOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput{}) + pulumi.RegisterOutputType(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput{}) pulumi.RegisterOutputType(StreamBackfillNoneOutput{}) pulumi.RegisterOutputType(StreamBackfillNonePtrOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigOutput{}) @@ -5572,4 +9772,44 @@ func init() { pulumi.RegisterOutputType(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArrayOutput{}) pulumi.RegisterOutputType(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnOutput{}) pulumi.RegisterOutputType(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigDropLargeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigDropLargeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigStreamLargeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigOracleSourceConfigStreamLargeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPtrOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArrayOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnOutput{}) + pulumi.RegisterOutputType(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArrayOutput{}) } diff --git a/sdk/go/gcp/datastream/stream.go b/sdk/go/gcp/datastream/stream.go index 10c2919eec..e662d51448 100644 --- a/sdk/go/gcp/datastream/stream.go +++ b/sdk/go/gcp/datastream/stream.go @@ -270,6 +270,254 @@ import ( // } // // ``` +// ### Datastream Stream Postgresql +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// source, err := datastream.NewConnectionProfile(ctx, "source", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("Postgresql Source"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("source-profile"), +// PostgresqlProfile: &datastream.ConnectionProfilePostgresqlProfileArgs{ +// Hostname: pulumi.String("hostname"), +// Port: pulumi.Int(3306), +// Username: pulumi.String("user"), +// Password: pulumi.String("pass"), +// Database: pulumi.String("postgres"), +// }, +// }) +// if err != nil { +// return err +// } +// destination, err := datastream.NewConnectionProfile(ctx, "destination", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("BigQuery Destination"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("destination-profile"), +// BigqueryProfile: nil, +// }) +// if err != nil { +// return err +// } +// _, err = datastream.NewStream(ctx, "default", &datastream.StreamArgs{ +// DisplayName: pulumi.String("Postgres to BigQuery"), +// Location: pulumi.String("us-central1"), +// StreamId: pulumi.String("my-stream"), +// DesiredState: pulumi.String("RUNNING"), +// SourceConfig: &datastream.StreamSourceConfigArgs{ +// SourceConnectionProfile: source.ID(), +// PostgresqlSourceConfig: &datastream.StreamSourceConfigPostgresqlSourceConfigArgs{ +// MaxConcurrentBackfillTasks: pulumi.Int(12), +// Publication: pulumi.String("publication"), +// ReplicationSlot: pulumi.String("replication_slot"), +// IncludeObjects: &datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{ +// PostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{ +// Schema: pulumi.String("schema"), +// PostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{ +// Table: pulumi.String("table"), +// PostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// ExcludeObjects: &datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{ +// PostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{ +// Schema: pulumi.String("schema"), +// PostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{ +// Table: pulumi.String("table"), +// PostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ +// &datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// DestinationConfig: &datastream.StreamDestinationConfigArgs{ +// DestinationConnectionProfile: destination.ID(), +// BigqueryDestinationConfig: &datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{ +// DataFreshness: pulumi.String("900s"), +// SourceHierarchyDatasets: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{ +// DatasetTemplate: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{ +// Location: pulumi.String("us-central1"), +// }, +// }, +// }, +// }, +// BackfillAll: &datastream.StreamBackfillAllArgs{ +// PostgresqlExcludedObjects: &datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs{ +// PostgresqlSchemas: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{ +// &datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{ +// Schema: pulumi.String("schema"), +// PostgresqlTables: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{ +// &datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{ +// Table: pulumi.String("table"), +// PostgresqlColumns: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{ +// &datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Datastream Stream Oracle +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/datastream" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// source, err := datastream.NewConnectionProfile(ctx, "source", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("Oracle Source"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("source-profile"), +// OracleProfile: &datastream.ConnectionProfileOracleProfileArgs{ +// Hostname: pulumi.String("hostname"), +// Port: pulumi.Int(1521), +// Username: pulumi.String("user"), +// Password: pulumi.String("pass"), +// DatabaseService: pulumi.String("ORCL"), +// }, +// }) +// if err != nil { +// return err +// } +// destination, err := datastream.NewConnectionProfile(ctx, "destination", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("BigQuery Destination"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("destination-profile"), +// BigqueryProfile: nil, +// }) +// if err != nil { +// return err +// } +// _, err = datastream.NewStream(ctx, "stream5", &datastream.StreamArgs{ +// DisplayName: pulumi.String("Oracle to BigQuery"), +// Location: pulumi.String("us-central1"), +// StreamId: pulumi.String("my-stream"), +// DesiredState: pulumi.String("RUNNING"), +// SourceConfig: &datastream.StreamSourceConfigArgs{ +// SourceConnectionProfile: source.ID(), +// OracleSourceConfig: &datastream.StreamSourceConfigOracleSourceConfigArgs{ +// MaxConcurrentCdcTasks: pulumi.Int(8), +// MaxConcurrentBackfillTasks: pulumi.Int(12), +// IncludeObjects: &datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{ +// OracleSchemas: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{ +// &datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{ +// Schema: pulumi.String("schema"), +// OracleTables: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{ +// &datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{ +// Table: pulumi.String("table"), +// OracleColumns: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{ +// &datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// ExcludeObjects: &datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{ +// OracleSchemas: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{ +// &datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{ +// Schema: pulumi.String("schema"), +// OracleTables: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{ +// &datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{ +// Table: pulumi.String("table"), +// OracleColumns: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{ +// &datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// DropLargeObjects: nil, +// }, +// }, +// DestinationConfig: &datastream.StreamDestinationConfigArgs{ +// DestinationConnectionProfile: destination.ID(), +// BigqueryDestinationConfig: &datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{ +// DataFreshness: pulumi.String("900s"), +// SourceHierarchyDatasets: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{ +// DatasetTemplate: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{ +// Location: pulumi.String("us-central1"), +// }, +// }, +// }, +// }, +// BackfillAll: &datastream.StreamBackfillAllArgs{ +// OracleExcludedObjects: &datastream.StreamBackfillAllOracleExcludedObjectsArgs{ +// OracleSchemas: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{ +// &datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{ +// Schema: pulumi.String("schema"), +// OracleTables: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{ +// &datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{ +// Table: pulumi.String("table"), +// OracleColumns: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{ +// &datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{ +// Column: pulumi.String("column"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // ### Datastream Stream Bigquery // // ```go diff --git a/sdk/go/gcp/eventarc/channel.go b/sdk/go/gcp/eventarc/channel.go index e5af64c9c6..130b164081 100644 --- a/sdk/go/gcp/eventarc/channel.go +++ b/sdk/go/gcp/eventarc/channel.go @@ -51,12 +51,10 @@ import ( // if err != nil { // return err // } -// key1Binding, err := kms.NewCryptoKeyIAMBinding(ctx, "key1Binding", &kms.CryptoKeyIAMBindingArgs{ +// key1Member, err := kms.NewCryptoKeyIAMMember(ctx, "key1Member", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Members: pulumi.StringArray{ -// pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.Number)), -// }, +// Member: pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.Number)), // }) // if err != nil { // return err @@ -67,7 +65,7 @@ import ( // CryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id), // ThirdPartyProvider: pulumi.String(fmt.Sprintf("projects/%v/locations/us-west1/providers/datadog", testProject.ProjectId)), // }, pulumi.DependsOn([]pulumi.Resource{ -// key1Binding, +// key1Member, // })) // if err != nil { // return err diff --git a/sdk/go/gcp/eventarc/googleChannelConfig.go b/sdk/go/gcp/eventarc/googleChannelConfig.go index 03545c5a7c..dc9d690d95 100644 --- a/sdk/go/gcp/eventarc/googleChannelConfig.go +++ b/sdk/go/gcp/eventarc/googleChannelConfig.go @@ -51,12 +51,10 @@ import ( // if err != nil { // return err // } -// key1Binding, err := kms.NewCryptoKeyIAMBinding(ctx, "key1Binding", &kms.CryptoKeyIAMBindingArgs{ +// key1Member, err := kms.NewCryptoKeyIAMMember(ctx, "key1Member", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: pulumi.Any(data.Google_kms_crypto_key.Key1.Id), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Members: pulumi.StringArray{ -// pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.Number)), -// }, +// Member: pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.Number)), // }) // if err != nil { // return err @@ -66,7 +64,7 @@ import ( // Project: *pulumi.String(testProject.ProjectId), // CryptoKeyName: pulumi.Any(data.Google_kms_crypto_key.Key1.Id), // }, pulumi.DependsOn([]pulumi.Resource{ -// key1Binding, +// key1Member, // })) // if err != nil { // return err diff --git a/sdk/go/gcp/firebase/androidApp.go b/sdk/go/gcp/firebase/androidApp.go index 1772cace1b..fe141b5fc5 100644 --- a/sdk/go/gcp/firebase/androidApp.go +++ b/sdk/go/gcp/firebase/androidApp.go @@ -81,7 +81,7 @@ type AndroidApp struct { AppId pulumi.StringOutput `pulumi:"appId"` // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - // AndroidApp. Default to 'DELETE'. + // AndroidApp. Defaults to 'DELETE'. DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"` // The user-assigned display name of the AndroidApp. DisplayName pulumi.StringOutput `pulumi:"displayName"` @@ -140,7 +140,7 @@ type androidAppState struct { AppId *string `pulumi:"appId"` // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - // AndroidApp. Default to 'DELETE'. + // AndroidApp. Defaults to 'DELETE'. DeletionPolicy *string `pulumi:"deletionPolicy"` // The user-assigned display name of the AndroidApp. DisplayName *string `pulumi:"displayName"` @@ -168,7 +168,7 @@ type AndroidAppState struct { AppId pulumi.StringPtrInput // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - // AndroidApp. Default to 'DELETE'. + // AndroidApp. Defaults to 'DELETE'. DeletionPolicy pulumi.StringPtrInput // The user-assigned display name of the AndroidApp. DisplayName pulumi.StringPtrInput @@ -197,7 +197,7 @@ func (AndroidAppState) ElementType() reflect.Type { type androidAppArgs struct { // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - // AndroidApp. Default to 'DELETE'. + // AndroidApp. Defaults to 'DELETE'. DeletionPolicy *string `pulumi:"deletionPolicy"` // The user-assigned display name of the AndroidApp. DisplayName string `pulumi:"displayName"` @@ -217,7 +217,7 @@ type androidAppArgs struct { type AndroidAppArgs struct { // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - // AndroidApp. Default to 'DELETE'. + // AndroidApp. Defaults to 'DELETE'. DeletionPolicy pulumi.StringPtrInput // The user-assigned display name of the AndroidApp. DisplayName pulumi.StringInput @@ -328,7 +328,7 @@ func (o AndroidAppOutput) AppId() pulumi.StringOutput { // (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon // 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the -// AndroidApp. Default to 'DELETE'. +// AndroidApp. Defaults to 'DELETE'. func (o AndroidAppOutput) DeletionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *AndroidApp) pulumi.StringPtrOutput { return v.DeletionPolicy }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/firebase/appleApp.go b/sdk/go/gcp/firebase/appleApp.go index f7198b2334..0495abe5bb 100644 --- a/sdk/go/gcp/firebase/appleApp.go +++ b/sdk/go/gcp/firebase/appleApp.go @@ -106,9 +106,9 @@ type AppleApp struct { AppStoreId pulumi.StringPtrOutput `pulumi:"appStoreId"` // The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. BundleId pulumi.StringPtrOutput `pulumi:"bundleId"` - // (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - // 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - // Default to 'DELETE'. + // (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + // destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + // 'DELETE'. DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"` // The user-assigned display name of the App. DisplayName pulumi.StringOutput `pulumi:"displayName"` @@ -161,9 +161,9 @@ type appleAppState struct { AppStoreId *string `pulumi:"appStoreId"` // The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. BundleId *string `pulumi:"bundleId"` - // (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - // 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - // Default to 'DELETE'. + // (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + // destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + // 'DELETE'. DeletionPolicy *string `pulumi:"deletionPolicy"` // The user-assigned display name of the App. DisplayName *string `pulumi:"displayName"` @@ -185,9 +185,9 @@ type AppleAppState struct { AppStoreId pulumi.StringPtrInput // The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. BundleId pulumi.StringPtrInput - // (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - // 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - // Default to 'DELETE'. + // (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + // destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + // 'DELETE'. DeletionPolicy pulumi.StringPtrInput // The user-assigned display name of the App. DisplayName pulumi.StringPtrInput @@ -210,9 +210,9 @@ type appleAppArgs struct { AppStoreId *string `pulumi:"appStoreId"` // The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. BundleId *string `pulumi:"bundleId"` - // (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - // 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - // Default to 'DELETE'. + // (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + // destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + // 'DELETE'. DeletionPolicy *string `pulumi:"deletionPolicy"` // The user-assigned display name of the App. DisplayName string `pulumi:"displayName"` @@ -229,9 +229,9 @@ type AppleAppArgs struct { AppStoreId pulumi.StringPtrInput // The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. BundleId pulumi.StringPtrInput - // (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - // 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - // Default to 'DELETE'. + // (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + // destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + // 'DELETE'. DeletionPolicy pulumi.StringPtrInput // The user-assigned display name of the App. DisplayName pulumi.StringInput @@ -345,9 +345,9 @@ func (o AppleAppOutput) BundleId() pulumi.StringPtrOutput { return o.ApplyT(func(v *AppleApp) pulumi.StringPtrOutput { return v.BundleId }).(pulumi.StringPtrOutput) } -// (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon -// 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. -// Default to 'DELETE'. +// (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform +// destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to +// 'DELETE'. func (o AppleAppOutput) DeletionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *AppleApp) pulumi.StringPtrOutput { return v.DeletionPolicy }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/firestore/database.go b/sdk/go/gcp/firestore/database.go new file mode 100644 index 0000000000..837b9a492d --- /dev/null +++ b/sdk/go/gcp/firestore/database.go @@ -0,0 +1,442 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package firestore + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ## Import +// +// # Database can be imported using any of these accepted formats +// +// ```sh +// +// $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} +// +// ``` +// +// ```sh +// +// $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} +// +// ``` +// +// ```sh +// +// $ pulumi import gcp:firestore/database:Database default {{name}} +// +// ``` +type Database struct { + pulumi.CustomResourceState + + // The App Engine integration mode to use for this database. + // Possible values are `ENABLED` and `DISABLED`. + AppEngineIntegrationMode pulumi.StringOutput `pulumi:"appEngineIntegrationMode"` + // The concurrency control mode to use for this database. + // Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + ConcurrencyMode pulumi.StringOutput `pulumi:"concurrencyMode"` + // The timestamp at which this database was created. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // This checksum is computed by the server based on the value of other fields, + // and may be sent on update and delete requests to ensure the client has an + // up-to-date value before proceeding. + Etag pulumi.StringOutput `pulumi:"etag"` + // Output only. The keyPrefix for this database. + // This keyPrefix is used, in combination with the project id ("~") to construct the application id + // that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + // This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). + KeyPrefix pulumi.StringOutput `pulumi:"keyPrefix"` + // The location of the database. Available databases are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId pulumi.StringOutput `pulumi:"locationId"` + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This value should be 4-63 + // characters. Valid characters are /[a-z][0-9]-/ with first character + // a letter and the last a letter or a number. Must not be + // UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // "(default)" database id is also valid. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore + // for information about how to choose. + // Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewDatabase registers a new resource with the given unique name, arguments, and options. +func NewDatabase(ctx *pulumi.Context, + name string, args *DatabaseArgs, opts ...pulumi.ResourceOption) (*Database, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.LocationId == nil { + return nil, errors.New("invalid value for required argument 'LocationId'") + } + if args.Type == nil { + return nil, errors.New("invalid value for required argument 'Type'") + } + var resource Database + err := ctx.RegisterResource("gcp:firestore/database:Database", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDatabase gets an existing Database resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDatabase(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DatabaseState, opts ...pulumi.ResourceOption) (*Database, error) { + var resource Database + err := ctx.ReadResource("gcp:firestore/database:Database", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Database resources. +type databaseState struct { + // The App Engine integration mode to use for this database. + // Possible values are `ENABLED` and `DISABLED`. + AppEngineIntegrationMode *string `pulumi:"appEngineIntegrationMode"` + // The concurrency control mode to use for this database. + // Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + ConcurrencyMode *string `pulumi:"concurrencyMode"` + // The timestamp at which this database was created. + CreateTime *string `pulumi:"createTime"` + // This checksum is computed by the server based on the value of other fields, + // and may be sent on update and delete requests to ensure the client has an + // up-to-date value before proceeding. + Etag *string `pulumi:"etag"` + // Output only. The keyPrefix for this database. + // This keyPrefix is used, in combination with the project id ("~") to construct the application id + // that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + // This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). + KeyPrefix *string `pulumi:"keyPrefix"` + // The location of the database. Available databases are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId *string `pulumi:"locationId"` + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This value should be 4-63 + // characters. Valid characters are /[a-z][0-9]-/ with first character + // a letter and the last a letter or a number. Must not be + // UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // "(default)" database id is also valid. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore + // for information about how to choose. + // Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + Type *string `pulumi:"type"` +} + +type DatabaseState struct { + // The App Engine integration mode to use for this database. + // Possible values are `ENABLED` and `DISABLED`. + AppEngineIntegrationMode pulumi.StringPtrInput + // The concurrency control mode to use for this database. + // Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + ConcurrencyMode pulumi.StringPtrInput + // The timestamp at which this database was created. + CreateTime pulumi.StringPtrInput + // This checksum is computed by the server based on the value of other fields, + // and may be sent on update and delete requests to ensure the client has an + // up-to-date value before proceeding. + Etag pulumi.StringPtrInput + // Output only. The keyPrefix for this database. + // This keyPrefix is used, in combination with the project id ("~") to construct the application id + // that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + // This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). + KeyPrefix pulumi.StringPtrInput + // The location of the database. Available databases are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId pulumi.StringPtrInput + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This value should be 4-63 + // characters. Valid characters are /[a-z][0-9]-/ with first character + // a letter and the last a letter or a number. Must not be + // UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // "(default)" database id is also valid. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore + // for information about how to choose. + // Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + Type pulumi.StringPtrInput +} + +func (DatabaseState) ElementType() reflect.Type { + return reflect.TypeOf((*databaseState)(nil)).Elem() +} + +type databaseArgs struct { + // The App Engine integration mode to use for this database. + // Possible values are `ENABLED` and `DISABLED`. + AppEngineIntegrationMode *string `pulumi:"appEngineIntegrationMode"` + // The concurrency control mode to use for this database. + // Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + ConcurrencyMode *string `pulumi:"concurrencyMode"` + // The location of the database. Available databases are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId string `pulumi:"locationId"` + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This value should be 4-63 + // characters. Valid characters are /[a-z][0-9]-/ with first character + // a letter and the last a letter or a number. Must not be + // UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // "(default)" database id is also valid. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore + // for information about how to choose. + // Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + Type string `pulumi:"type"` +} + +// The set of arguments for constructing a Database resource. +type DatabaseArgs struct { + // The App Engine integration mode to use for this database. + // Possible values are `ENABLED` and `DISABLED`. + AppEngineIntegrationMode pulumi.StringPtrInput + // The concurrency control mode to use for this database. + // Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + ConcurrencyMode pulumi.StringPtrInput + // The location of the database. Available databases are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId pulumi.StringInput + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This value should be 4-63 + // characters. Valid characters are /[a-z][0-9]-/ with first character + // a letter and the last a letter or a number. Must not be + // UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // "(default)" database id is also valid. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore + // for information about how to choose. + // Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + Type pulumi.StringInput +} + +func (DatabaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*databaseArgs)(nil)).Elem() +} + +type DatabaseInput interface { + pulumi.Input + + ToDatabaseOutput() DatabaseOutput + ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput +} + +func (*Database) ElementType() reflect.Type { + return reflect.TypeOf((**Database)(nil)).Elem() +} + +func (i *Database) ToDatabaseOutput() DatabaseOutput { + return i.ToDatabaseOutputWithContext(context.Background()) +} + +func (i *Database) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseOutput) +} + +// DatabaseArrayInput is an input type that accepts DatabaseArray and DatabaseArrayOutput values. +// You can construct a concrete instance of `DatabaseArrayInput` via: +// +// DatabaseArray{ DatabaseArgs{...} } +type DatabaseArrayInput interface { + pulumi.Input + + ToDatabaseArrayOutput() DatabaseArrayOutput + ToDatabaseArrayOutputWithContext(context.Context) DatabaseArrayOutput +} + +type DatabaseArray []DatabaseInput + +func (DatabaseArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Database)(nil)).Elem() +} + +func (i DatabaseArray) ToDatabaseArrayOutput() DatabaseArrayOutput { + return i.ToDatabaseArrayOutputWithContext(context.Background()) +} + +func (i DatabaseArray) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseArrayOutput) +} + +// DatabaseMapInput is an input type that accepts DatabaseMap and DatabaseMapOutput values. +// You can construct a concrete instance of `DatabaseMapInput` via: +// +// DatabaseMap{ "key": DatabaseArgs{...} } +type DatabaseMapInput interface { + pulumi.Input + + ToDatabaseMapOutput() DatabaseMapOutput + ToDatabaseMapOutputWithContext(context.Context) DatabaseMapOutput +} + +type DatabaseMap map[string]DatabaseInput + +func (DatabaseMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Database)(nil)).Elem() +} + +func (i DatabaseMap) ToDatabaseMapOutput() DatabaseMapOutput { + return i.ToDatabaseMapOutputWithContext(context.Background()) +} + +func (i DatabaseMap) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DatabaseMapOutput) +} + +type DatabaseOutput struct{ *pulumi.OutputState } + +func (DatabaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Database)(nil)).Elem() +} + +func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput { + return o +} + +func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput { + return o +} + +// The App Engine integration mode to use for this database. +// Possible values are `ENABLED` and `DISABLED`. +func (o DatabaseOutput) AppEngineIntegrationMode() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.AppEngineIntegrationMode }).(pulumi.StringOutput) +} + +// The concurrency control mode to use for this database. +// Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. +func (o DatabaseOutput) ConcurrencyMode() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.ConcurrencyMode }).(pulumi.StringOutput) +} + +// The timestamp at which this database was created. +func (o DatabaseOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// This checksum is computed by the server based on the value of other fields, +// and may be sent on update and delete requests to ensure the client has an +// up-to-date value before proceeding. +func (o DatabaseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Output only. The keyPrefix for this database. +// This keyPrefix is used, in combination with the project id ("~") to construct the application id +// that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. +// This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). +func (o DatabaseOutput) KeyPrefix() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.KeyPrefix }).(pulumi.StringOutput) +} + +// The location of the database. Available databases are listed at +// https://cloud.google.com/firestore/docs/locations. +func (o DatabaseOutput) LocationId() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.LocationId }).(pulumi.StringOutput) +} + +// Required. The ID to use for the database, which will become the final +// component of the database's resource name. This value should be 4-63 +// characters. Valid characters are /[a-z][0-9]-/ with first character +// a letter and the last a letter or a number. Must not be +// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. +// "(default)" database id is also valid. +func (o DatabaseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o DatabaseOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// The type of the database. +// See https://cloud.google.com/datastore/docs/firestore-or-datastore +// for information about how to choose. +// Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. +func (o DatabaseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *Database) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +type DatabaseArrayOutput struct{ *pulumi.OutputState } + +func (DatabaseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Database)(nil)).Elem() +} + +func (o DatabaseArrayOutput) ToDatabaseArrayOutput() DatabaseArrayOutput { + return o +} + +func (o DatabaseArrayOutput) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput { + return o +} + +func (o DatabaseArrayOutput) Index(i pulumi.IntInput) DatabaseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Database { + return vs[0].([]*Database)[vs[1].(int)] + }).(DatabaseOutput) +} + +type DatabaseMapOutput struct{ *pulumi.OutputState } + +func (DatabaseMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Database)(nil)).Elem() +} + +func (o DatabaseMapOutput) ToDatabaseMapOutput() DatabaseMapOutput { + return o +} + +func (o DatabaseMapOutput) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput { + return o +} + +func (o DatabaseMapOutput) MapIndex(k pulumi.StringInput) DatabaseOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Database { + return vs[0].(map[string]*Database)[vs[1].(string)] + }).(DatabaseOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseInput)(nil)).Elem(), &Database{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseArrayInput)(nil)).Elem(), DatabaseArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DatabaseMapInput)(nil)).Elem(), DatabaseMap{}) + pulumi.RegisterOutputType(DatabaseOutput{}) + pulumi.RegisterOutputType(DatabaseArrayOutput{}) + pulumi.RegisterOutputType(DatabaseMapOutput{}) +} diff --git a/sdk/go/gcp/firestore/init.go b/sdk/go/gcp/firestore/init.go index 07fa842a55..58a62e0391 100644 --- a/sdk/go/gcp/firestore/init.go +++ b/sdk/go/gcp/firestore/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "gcp:firestore/database:Database": + r = &Database{} case "gcp:firestore/document:Document": r = &Document{} case "gcp:firestore/index:Index": @@ -38,6 +40,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "gcp", + "firestore/database", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "firestore/document", diff --git a/sdk/go/gcp/redis/instance.go b/sdk/go/gcp/redis/instance.go index 4a14f4c1b9..72ef806576 100644 --- a/sdk/go/gcp/redis/instance.go +++ b/sdk/go/gcp/redis/instance.go @@ -336,7 +336,7 @@ type Instance struct { // instance. If set to "true" AUTH is enabled on the instance. // Default value is "false" meaning AUTH is disabled. AuthEnabled pulumi.BoolPtrOutput `pulumi:"authEnabled"` - // AUTH String set on the instance. This field will only be populated if authEnabled is true. + // AUTH String set on the instance. This field will only be populated if auth_enabled is true. AuthString pulumi.StringOutput `pulumi:"authString"` // The full name of the Google Compute Engine network to which the // instance is connected. If left unspecified, the default network @@ -500,7 +500,7 @@ type instanceState struct { // instance. If set to "true" AUTH is enabled on the instance. // Default value is "false" meaning AUTH is disabled. AuthEnabled *bool `pulumi:"authEnabled"` - // AUTH String set on the instance. This field will only be populated if authEnabled is true. + // AUTH String set on the instance. This field will only be populated if auth_enabled is true. AuthString *string `pulumi:"authString"` // The full name of the Google Compute Engine network to which the // instance is connected. If left unspecified, the default network @@ -629,7 +629,7 @@ type InstanceState struct { // instance. If set to "true" AUTH is enabled on the instance. // Default value is "false" meaning AUTH is disabled. AuthEnabled pulumi.BoolPtrInput - // AUTH String set on the instance. This field will only be populated if authEnabled is true. + // AUTH String set on the instance. This field will only be populated if auth_enabled is true. AuthString pulumi.StringPtrInput // The full name of the Google Compute Engine network to which the // instance is connected. If left unspecified, the default network @@ -1043,7 +1043,7 @@ func (o InstanceOutput) AuthEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.AuthEnabled }).(pulumi.BoolPtrOutput) } -// AUTH String set on the instance. This field will only be populated if authEnabled is true. +// AUTH String set on the instance. This field will only be populated if auth_enabled is true. func (o InstanceOutput) AuthString() pulumi.StringOutput { return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.AuthString }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/securitycenter/instanceIamBinding.go b/sdk/go/gcp/securitycenter/instanceIamBinding.go index 5bb46ba042..3fd87ee286 100644 --- a/sdk/go/gcp/securitycenter/instanceIamBinding.go +++ b/sdk/go/gcp/securitycenter/instanceIamBinding.go @@ -35,9 +35,6 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "basicInstance", &datafusion.InstanceArgs{ -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // Region: pulumi.String("us-central1"), // Type: pulumi.String("BASIC"), // }) @@ -105,9 +102,6 @@ import ( // return fmt.Sprintf("%v/%v", address, prefixLength), nil // }).(pulumi.StringOutput), // }, -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // }) // if err != nil { // return err @@ -194,11 +188,8 @@ import ( // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "enterpriseInstance", &datafusion.InstanceArgs{ // EnableRbac: pulumi.Bool(true), -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, -// Region: pulumi.String("us-central1"), -// Type: pulumi.String("ENTERPRISE"), +// Region: pulumi.String("us-central1"), +// Type: pulumi.String("ENTERPRISE"), // }) // if err != nil { // return err diff --git a/sdk/go/gcp/securitycenter/instanceIamMember.go b/sdk/go/gcp/securitycenter/instanceIamMember.go index 622e79bbdb..7f9fd12d27 100644 --- a/sdk/go/gcp/securitycenter/instanceIamMember.go +++ b/sdk/go/gcp/securitycenter/instanceIamMember.go @@ -35,9 +35,6 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "basicInstance", &datafusion.InstanceArgs{ -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // Region: pulumi.String("us-central1"), // Type: pulumi.String("BASIC"), // }) @@ -105,9 +102,6 @@ import ( // return fmt.Sprintf("%v/%v", address, prefixLength), nil // }).(pulumi.StringOutput), // }, -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // }) // if err != nil { // return err @@ -194,11 +188,8 @@ import ( // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "enterpriseInstance", &datafusion.InstanceArgs{ // EnableRbac: pulumi.Bool(true), -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, -// Region: pulumi.String("us-central1"), -// Type: pulumi.String("ENTERPRISE"), +// Region: pulumi.String("us-central1"), +// Type: pulumi.String("ENTERPRISE"), // }) // if err != nil { // return err diff --git a/sdk/go/gcp/securitycenter/instanceIamPolicy.go b/sdk/go/gcp/securitycenter/instanceIamPolicy.go index c4f3f1be8c..12452d7c79 100644 --- a/sdk/go/gcp/securitycenter/instanceIamPolicy.go +++ b/sdk/go/gcp/securitycenter/instanceIamPolicy.go @@ -35,9 +35,6 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "basicInstance", &datafusion.InstanceArgs{ -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // Region: pulumi.String("us-central1"), // Type: pulumi.String("BASIC"), // }) @@ -105,9 +102,6 @@ import ( // return fmt.Sprintf("%v/%v", address, prefixLength), nil // }).(pulumi.StringOutput), // }, -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, // }) // if err != nil { // return err @@ -194,11 +188,8 @@ import ( // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := datafusion.NewInstance(ctx, "enterpriseInstance", &datafusion.InstanceArgs{ // EnableRbac: pulumi.Bool(true), -// Options: pulumi.StringMap{ -// "prober_test_run": pulumi.String("true"), -// }, -// Region: pulumi.String("us-central1"), -// Type: pulumi.String("ENTERPRISE"), +// Region: pulumi.String("us-central1"), +// Type: pulumi.String("ENTERPRISE"), // }) // if err != nil { // return err diff --git a/sdk/go/gcp/sql/databaseInstance.go b/sdk/go/gcp/sql/databaseInstance.go index 7a30bc17d0..f3f355c53e 100644 --- a/sdk/go/gcp/sql/databaseInstance.go +++ b/sdk/go/gcp/sql/databaseInstance.go @@ -94,8 +94,9 @@ import ( // Settings: &sql.DatabaseInstanceSettingsArgs{ // Tier: pulumi.String("db-f1-micro"), // IpConfiguration: &sql.DatabaseInstanceSettingsIpConfigurationArgs{ -// Ipv4Enabled: pulumi.Bool(false), -// PrivateNetwork: privateNetwork.ID(), +// Ipv4Enabled: pulumi.Bool(false), +// PrivateNetwork: privateNetwork.ID(), +// EnablePrivatePathForGoogleCloudServices: pulumi.Bool(true), // }, // }, // }, pulumi.Provider(google_beta), pulumi.DependsOn([]pulumi.Resource{ diff --git a/sdk/go/gcp/sql/pulumiTypes.go b/sdk/go/gcp/sql/pulumiTypes.go index 6bd52c3723..fd7e99da47 100644 --- a/sdk/go/gcp/sql/pulumiTypes.go +++ b/sdk/go/gcp/sql/pulumiTypes.go @@ -2593,6 +2593,8 @@ type DatabaseInstanceSettingsIpConfiguration struct { // The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression a-z?. AllocatedIpRange *string `pulumi:"allocatedIpRange"` AuthorizedNetworks []DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` + // Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + EnablePrivatePathForGoogleCloudServices *bool `pulumi:"enablePrivatePathForGoogleCloudServices"` // Whether this Cloud SQL instance should be assigned // a public IPV4 address. At least `ipv4Enabled` must be enabled or a // `privateNetwork` must be configured. @@ -2622,6 +2624,8 @@ type DatabaseInstanceSettingsIpConfigurationArgs struct { // The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression a-z?. AllocatedIpRange pulumi.StringPtrInput `pulumi:"allocatedIpRange"` AuthorizedNetworks DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` + // Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + EnablePrivatePathForGoogleCloudServices pulumi.BoolPtrInput `pulumi:"enablePrivatePathForGoogleCloudServices"` // Whether this Cloud SQL instance should be assigned // a public IPV4 address. At least `ipv4Enabled` must be enabled or a // `privateNetwork` must be configured. @@ -2724,6 +2728,13 @@ func (o DatabaseInstanceSettingsIpConfigurationOutput) AuthorizedNetworks() Data }).(DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArrayOutput) } +// Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. +func (o DatabaseInstanceSettingsIpConfigurationOutput) EnablePrivatePathForGoogleCloudServices() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DatabaseInstanceSettingsIpConfiguration) *bool { + return v.EnablePrivatePathForGoogleCloudServices + }).(pulumi.BoolPtrOutput) +} + // Whether this Cloud SQL instance should be assigned // a public IPV4 address. At least `ipv4Enabled` must be enabled or a // `privateNetwork` must be configured. @@ -2788,6 +2799,16 @@ func (o DatabaseInstanceSettingsIpConfigurationPtrOutput) AuthorizedNetworks() D }).(DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArrayOutput) } +// Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. +func (o DatabaseInstanceSettingsIpConfigurationPtrOutput) EnablePrivatePathForGoogleCloudServices() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DatabaseInstanceSettingsIpConfiguration) *bool { + if v == nil { + return nil + } + return v.EnablePrivatePathForGoogleCloudServices + }).(pulumi.BoolPtrOutput) +} + // Whether this Cloud SQL instance should be assigned // a public IPV4 address. At least `ipv4Enabled` must be enabled or a // `privateNetwork` must be configured. @@ -5766,11 +5787,12 @@ func (o GetDatabaseInstanceSettingInsightsConfigArrayOutput) Index(i pulumi.IntI } type GetDatabaseInstanceSettingIpConfiguration struct { - AllocatedIpRange string `pulumi:"allocatedIpRange"` - AuthorizedNetworks []GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` - Ipv4Enabled bool `pulumi:"ipv4Enabled"` - PrivateNetwork string `pulumi:"privateNetwork"` - RequireSsl bool `pulumi:"requireSsl"` + AllocatedIpRange string `pulumi:"allocatedIpRange"` + AuthorizedNetworks []GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` + EnablePrivatePathForGoogleCloudServices bool `pulumi:"enablePrivatePathForGoogleCloudServices"` + Ipv4Enabled bool `pulumi:"ipv4Enabled"` + PrivateNetwork string `pulumi:"privateNetwork"` + RequireSsl bool `pulumi:"requireSsl"` } // GetDatabaseInstanceSettingIpConfigurationInput is an input type that accepts GetDatabaseInstanceSettingIpConfigurationArgs and GetDatabaseInstanceSettingIpConfigurationOutput values. @@ -5785,11 +5807,12 @@ type GetDatabaseInstanceSettingIpConfigurationInput interface { } type GetDatabaseInstanceSettingIpConfigurationArgs struct { - AllocatedIpRange pulumi.StringInput `pulumi:"allocatedIpRange"` - AuthorizedNetworks GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` - Ipv4Enabled pulumi.BoolInput `pulumi:"ipv4Enabled"` - PrivateNetwork pulumi.StringInput `pulumi:"privateNetwork"` - RequireSsl pulumi.BoolInput `pulumi:"requireSsl"` + AllocatedIpRange pulumi.StringInput `pulumi:"allocatedIpRange"` + AuthorizedNetworks GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` + EnablePrivatePathForGoogleCloudServices pulumi.BoolInput `pulumi:"enablePrivatePathForGoogleCloudServices"` + Ipv4Enabled pulumi.BoolInput `pulumi:"ipv4Enabled"` + PrivateNetwork pulumi.StringInput `pulumi:"privateNetwork"` + RequireSsl pulumi.BoolInput `pulumi:"requireSsl"` } func (GetDatabaseInstanceSettingIpConfigurationArgs) ElementType() reflect.Type { @@ -5853,6 +5876,12 @@ func (o GetDatabaseInstanceSettingIpConfigurationOutput) AuthorizedNetworks() Ge }).(GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) } +func (o GetDatabaseInstanceSettingIpConfigurationOutput) EnablePrivatePathForGoogleCloudServices() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) bool { + return v.EnablePrivatePathForGoogleCloudServices + }).(pulumi.BoolOutput) +} + func (o GetDatabaseInstanceSettingIpConfigurationOutput) Ipv4Enabled() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabaseInstanceSettingIpConfiguration) bool { return v.Ipv4Enabled }).(pulumi.BoolOutput) } @@ -8184,11 +8213,12 @@ func (o GetDatabaseInstancesInstanceSettingInsightsConfigArrayOutput) Index(i pu } type GetDatabaseInstancesInstanceSettingIpConfiguration struct { - AllocatedIpRange string `pulumi:"allocatedIpRange"` - AuthorizedNetworks []GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` - Ipv4Enabled bool `pulumi:"ipv4Enabled"` - PrivateNetwork string `pulumi:"privateNetwork"` - RequireSsl bool `pulumi:"requireSsl"` + AllocatedIpRange string `pulumi:"allocatedIpRange"` + AuthorizedNetworks []GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetwork `pulumi:"authorizedNetworks"` + EnablePrivatePathForGoogleCloudServices bool `pulumi:"enablePrivatePathForGoogleCloudServices"` + Ipv4Enabled bool `pulumi:"ipv4Enabled"` + PrivateNetwork string `pulumi:"privateNetwork"` + RequireSsl bool `pulumi:"requireSsl"` } // GetDatabaseInstancesInstanceSettingIpConfigurationInput is an input type that accepts GetDatabaseInstancesInstanceSettingIpConfigurationArgs and GetDatabaseInstancesInstanceSettingIpConfigurationOutput values. @@ -8203,11 +8233,12 @@ type GetDatabaseInstancesInstanceSettingIpConfigurationInput interface { } type GetDatabaseInstancesInstanceSettingIpConfigurationArgs struct { - AllocatedIpRange pulumi.StringInput `pulumi:"allocatedIpRange"` - AuthorizedNetworks GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` - Ipv4Enabled pulumi.BoolInput `pulumi:"ipv4Enabled"` - PrivateNetwork pulumi.StringInput `pulumi:"privateNetwork"` - RequireSsl pulumi.BoolInput `pulumi:"requireSsl"` + AllocatedIpRange pulumi.StringInput `pulumi:"allocatedIpRange"` + AuthorizedNetworks GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetworkArrayInput `pulumi:"authorizedNetworks"` + EnablePrivatePathForGoogleCloudServices pulumi.BoolInput `pulumi:"enablePrivatePathForGoogleCloudServices"` + Ipv4Enabled pulumi.BoolInput `pulumi:"ipv4Enabled"` + PrivateNetwork pulumi.StringInput `pulumi:"privateNetwork"` + RequireSsl pulumi.BoolInput `pulumi:"requireSsl"` } func (GetDatabaseInstancesInstanceSettingIpConfigurationArgs) ElementType() reflect.Type { @@ -8271,6 +8302,12 @@ func (o GetDatabaseInstancesInstanceSettingIpConfigurationOutput) AuthorizedNetw }).(GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetworkArrayOutput) } +func (o GetDatabaseInstancesInstanceSettingIpConfigurationOutput) EnablePrivatePathForGoogleCloudServices() pulumi.BoolOutput { + return o.ApplyT(func(v GetDatabaseInstancesInstanceSettingIpConfiguration) bool { + return v.EnablePrivatePathForGoogleCloudServices + }).(pulumi.BoolOutput) +} + func (o GetDatabaseInstancesInstanceSettingIpConfigurationOutput) Ipv4Enabled() pulumi.BoolOutput { return o.ApplyT(func(v GetDatabaseInstancesInstanceSettingIpConfiguration) bool { return v.Ipv4Enabled }).(pulumi.BoolOutput) } diff --git a/sdk/go/gcp/vertex/aiFeatureStore.go b/sdk/go/gcp/vertex/aiFeatureStore.go index 9a36d305f5..de90b7276c 100644 --- a/sdk/go/gcp/vertex/aiFeatureStore.go +++ b/sdk/go/gcp/vertex/aiFeatureStore.go @@ -54,6 +54,42 @@ import ( // } // // ``` +// ### Vertex Ai Featurestore With Beta Fields +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/vertex" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := vertex.NewAiFeatureStore(ctx, "featurestore", &vertex.AiFeatureStoreArgs{ +// Labels: pulumi.StringMap{ +// "foo": pulumi.String("bar"), +// }, +// Region: pulumi.String("us-central1"), +// OnlineServingConfig: &vertex.AiFeatureStoreOnlineServingConfigArgs{ +// FixedNodeCount: pulumi.Int(2), +// }, +// EncryptionSpec: &vertex.AiFeatureStoreEncryptionSpecArgs{ +// KmsKeyName: pulumi.String("kms-name"), +// }, +// OnlineStorageTtlDays: pulumi.Int(30), +// ForceDestroy: pulumi.Bool(true), +// }, pulumi.Provider(google_beta)) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // ### Vertex Ai Featurestore Scaling // // ```go @@ -139,6 +175,11 @@ type AiFeatureStore struct { // Config for online serving resources. // Structure is documented below. OnlineServingConfig AiFeatureStoreOnlineServingConfigPtrOutput `pulumi:"onlineServingConfig"` + // TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + // periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + // that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + // featurestore. If not set, default to 4000 days + OnlineStorageTtlDays pulumi.IntPtrOutput `pulumi:"onlineStorageTtlDays"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` @@ -193,6 +234,11 @@ type aiFeatureStoreState struct { // Config for online serving resources. // Structure is documented below. OnlineServingConfig *AiFeatureStoreOnlineServingConfig `pulumi:"onlineServingConfig"` + // TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + // periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + // that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + // featurestore. If not set, default to 4000 days + OnlineStorageTtlDays *int `pulumi:"onlineStorageTtlDays"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` @@ -219,6 +265,11 @@ type AiFeatureStoreState struct { // Config for online serving resources. // Structure is documented below. OnlineServingConfig AiFeatureStoreOnlineServingConfigPtrInput + // TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + // periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + // that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + // featurestore. If not set, default to 4000 days + OnlineStorageTtlDays pulumi.IntPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput @@ -245,6 +296,11 @@ type aiFeatureStoreArgs struct { // Config for online serving resources. // Structure is documented below. OnlineServingConfig *AiFeatureStoreOnlineServingConfig `pulumi:"onlineServingConfig"` + // TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + // periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + // that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + // featurestore. If not set, default to 4000 days + OnlineStorageTtlDays *int `pulumi:"onlineStorageTtlDays"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` @@ -266,6 +322,11 @@ type AiFeatureStoreArgs struct { // Config for online serving resources. // Structure is documented below. OnlineServingConfig AiFeatureStoreOnlineServingConfigPtrInput + // TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + // periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + // that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + // featurestore. If not set, default to 4000 days + OnlineStorageTtlDays pulumi.IntPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput @@ -397,6 +458,14 @@ func (o AiFeatureStoreOutput) OnlineServingConfig() AiFeatureStoreOnlineServingC return o.ApplyT(func(v *AiFeatureStore) AiFeatureStoreOnlineServingConfigPtrOutput { return v.OnlineServingConfig }).(AiFeatureStoreOnlineServingConfigPtrOutput) } +// TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage +// periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note +// that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a +// featurestore. If not set, default to 4000 days +func (o AiFeatureStoreOutput) OnlineStorageTtlDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AiFeatureStore) pulumi.IntPtrOutput { return v.OnlineStorageTtlDays }).(pulumi.IntPtrOutput) +} + // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. func (o AiFeatureStoreOutput) Project() pulumi.StringOutput { diff --git a/sdk/go/gcp/vertex/aiFeatureStoreEntityType.go b/sdk/go/gcp/vertex/aiFeatureStoreEntityType.go index cab7bd5c61..eb1b667893 100644 --- a/sdk/go/gcp/vertex/aiFeatureStoreEntityType.go +++ b/sdk/go/gcp/vertex/aiFeatureStoreEntityType.go @@ -53,6 +53,7 @@ import ( // Labels: pulumi.StringMap{ // "foo": pulumi.String("bar"), // }, +// Description: pulumi.String("test description"), // Featurestore: featurestore.ID(), // MonitoringConfig: &vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs{ // SnapshotAnalysis: &vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs{ @@ -126,6 +127,7 @@ import ( // Value: pulumi.Float64(0.3), // }, // }, +// OfflineStorageTtlDays: pulumi.Int(30), // }, pulumi.Provider(google_beta)) // if err != nil { // return err @@ -150,6 +152,8 @@ type AiFeatureStoreEntityType struct { // The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. CreateTime pulumi.StringOutput `pulumi:"createTime"` + // Optional. Description of the EntityType. + Description pulumi.StringPtrOutput `pulumi:"description"` // Used to perform consistent read-modify-write updates. Etag pulumi.StringOutput `pulumi:"etag"` // The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. @@ -162,6 +166,10 @@ type AiFeatureStoreEntityType struct { MonitoringConfig AiFeatureStoreEntityTypeMonitoringConfigPtrOutput `pulumi:"monitoringConfig"` // The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. Name pulumi.StringOutput `pulumi:"name"` + // Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + // storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + // since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + OfflineStorageTtlDays pulumi.IntPtrOutput `pulumi:"offlineStorageTtlDays"` // The region of the EntityType. Region pulumi.StringOutput `pulumi:"region"` // The timestamp of when the featurestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. @@ -202,6 +210,8 @@ func GetAiFeatureStoreEntityType(ctx *pulumi.Context, type aiFeatureStoreEntityTypeState struct { // The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. CreateTime *string `pulumi:"createTime"` + // Optional. Description of the EntityType. + Description *string `pulumi:"description"` // Used to perform consistent read-modify-write updates. Etag *string `pulumi:"etag"` // The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. @@ -214,6 +224,10 @@ type aiFeatureStoreEntityTypeState struct { MonitoringConfig *AiFeatureStoreEntityTypeMonitoringConfig `pulumi:"monitoringConfig"` // The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. Name *string `pulumi:"name"` + // Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + // storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + // since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + OfflineStorageTtlDays *int `pulumi:"offlineStorageTtlDays"` // The region of the EntityType. Region *string `pulumi:"region"` // The timestamp of when the featurestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. @@ -223,6 +237,8 @@ type aiFeatureStoreEntityTypeState struct { type AiFeatureStoreEntityTypeState struct { // The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. CreateTime pulumi.StringPtrInput + // Optional. Description of the EntityType. + Description pulumi.StringPtrInput // Used to perform consistent read-modify-write updates. Etag pulumi.StringPtrInput // The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. @@ -235,6 +251,10 @@ type AiFeatureStoreEntityTypeState struct { MonitoringConfig AiFeatureStoreEntityTypeMonitoringConfigPtrInput // The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. Name pulumi.StringPtrInput + // Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + // storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + // since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + OfflineStorageTtlDays pulumi.IntPtrInput // The region of the EntityType. Region pulumi.StringPtrInput // The timestamp of when the featurestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. @@ -246,6 +266,8 @@ func (AiFeatureStoreEntityTypeState) ElementType() reflect.Type { } type aiFeatureStoreEntityTypeArgs struct { + // Optional. Description of the EntityType. + Description *string `pulumi:"description"` // The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. Featurestore string `pulumi:"featurestore"` // A set of key/value label pairs to assign to this EntityType. @@ -256,10 +278,16 @@ type aiFeatureStoreEntityTypeArgs struct { MonitoringConfig *AiFeatureStoreEntityTypeMonitoringConfig `pulumi:"monitoringConfig"` // The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. Name *string `pulumi:"name"` + // Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + // storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + // since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + OfflineStorageTtlDays *int `pulumi:"offlineStorageTtlDays"` } // The set of arguments for constructing a AiFeatureStoreEntityType resource. type AiFeatureStoreEntityTypeArgs struct { + // Optional. Description of the EntityType. + Description pulumi.StringPtrInput // The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. Featurestore pulumi.StringInput // A set of key/value label pairs to assign to this EntityType. @@ -270,6 +298,10 @@ type AiFeatureStoreEntityTypeArgs struct { MonitoringConfig AiFeatureStoreEntityTypeMonitoringConfigPtrInput // The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. Name pulumi.StringPtrInput + // Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + // storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + // since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + OfflineStorageTtlDays pulumi.IntPtrInput } func (AiFeatureStoreEntityTypeArgs) ElementType() reflect.Type { @@ -364,6 +396,11 @@ func (o AiFeatureStoreEntityTypeOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } +// Optional. Description of the EntityType. +func (o AiFeatureStoreEntityTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + // Used to perform consistent read-modify-write updates. func (o AiFeatureStoreEntityTypeOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -393,6 +430,13 @@ func (o AiFeatureStoreEntityTypeOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline +// storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays +// since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. +func (o AiFeatureStoreEntityTypeOutput) OfflineStorageTtlDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.IntPtrOutput { return v.OfflineStorageTtlDays }).(pulumi.IntPtrOutput) +} + // The region of the EntityType. func (o AiFeatureStoreEntityTypeOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *AiFeatureStoreEntityType) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java index 39d6c12e0f..3306a59ecb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java @@ -17,6 +17,14 @@ import javax.annotation.Nullable; /** + * An AlloyDB Backup. + * + * To get more information about Backup, see: + * + * * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) + * * How-to Guides + * * [AlloyDB](https://cloud.google.com/alloydb/docs/) + * * ## Example Usage * ### Alloydb Backup Full * ```java @@ -59,33 +67,26 @@ * .clusterId("alloydb-cluster") * .location("us-central1") * .network(defaultNetwork.applyValue(getNetworkResult -> getNetworkResult.id())) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var privateIpAlloc = new GlobalAddress("privateIpAlloc", GlobalAddressArgs.builder() * .addressType("INTERNAL") * .purpose("VPC_PEERING") * .prefixLength(16) * .network(defaultNetwork.applyValue(getNetworkResult -> getNetworkResult.id())) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var vpcConnection = new Connection("vpcConnection", ConnectionArgs.builder() * .network(defaultNetwork.applyValue(getNetworkResult -> getNetworkResult.id())) * .service("servicenetworking.googleapis.com") * .reservedPeeringRanges(privateIpAlloc.name()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder() * .cluster(defaultCluster.name()) * .instanceId("alloydb-instance") * .instanceType("PRIMARY") * .build(), CustomResourceOptions.builder() - * .provider(google_beta) * .dependsOn(vpcConnection) * .build()); * @@ -96,7 +97,6 @@ * .description("example description") * .labels(Map.of("label", "key")) * .build(), CustomResourceOptions.builder() - * .provider(google_beta) * .dependsOn(defaultInstance) * .build()); * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java index fbe3780301..ba596f8fa9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java @@ -32,10 +32,8 @@ * import com.pulumi.gcp.organizations.OrganizationsFunctions; * import com.pulumi.gcp.organizations.inputs.GetProjectArgs; * import com.pulumi.gcp.compute.Network; - * import com.pulumi.gcp.compute.NetworkArgs; * import com.pulumi.gcp.alloydb.Cluster; * import com.pulumi.gcp.alloydb.ClusterArgs; - * import com.pulumi.resources.CustomResourceOptions; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -51,22 +49,19 @@ * public static void stack(Context ctx) { * final var project = OrganizationsFunctions.getProject(); * - * var defaultNetwork = new Network("defaultNetwork", NetworkArgs.Empty, CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * var defaultNetwork = new Network("defaultNetwork"); * * var defaultCluster = new Cluster("defaultCluster", ClusterArgs.builder() * .clusterId("alloydb-cluster") * .location("us-central1") * .network(defaultNetwork.name().applyValue(name -> String.format("projects/%s/global/networks/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name))) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * } * } * ``` * ### Alloydb Cluster Full + * * ```java * package generated_program; * @@ -76,14 +71,12 @@ * import com.pulumi.gcp.organizations.OrganizationsFunctions; * import com.pulumi.gcp.organizations.inputs.GetProjectArgs; * import com.pulumi.gcp.compute.Network; - * import com.pulumi.gcp.compute.NetworkArgs; * import com.pulumi.gcp.alloydb.Cluster; * import com.pulumi.gcp.alloydb.ClusterArgs; - * import com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs; * import com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyArgs; - * import com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs; * import com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs; - * import com.pulumi.resources.CustomResourceOptions; + * import com.pulumi.gcp.alloydb.inputs.ClusterAutomatedBackupPolicyWeeklyScheduleArgs; + * import com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -99,40 +92,36 @@ * public static void stack(Context ctx) { * final var project = OrganizationsFunctions.getProject(); * - * var default_ = new Network("default", NetworkArgs.Empty, CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * var default_ = new Network("default"); * * var full = new Cluster("full", ClusterArgs.builder() - * .clusterId("alloydb-cluster-full") - * .location("us-central1") - * .network(default_.name().applyValue(name -> String.format("projects/%s/global/networks/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name))) - * .initialUser(ClusterInitialUserArgs.builder() - * .user("alloydb-cluster-full") - * .password("alloydb-cluster-full") - * .build()) * .automatedBackupPolicy(ClusterAutomatedBackupPolicyArgs.builder() - * .location("us-central1") * .backupWindow("1800s") * .enabled(true) + * .labels(Map.of("test", "alloydb-cluster-full")) + * .location("us-central1") + * .quantityBasedRetention(ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs.builder() + * .count(1) + * .build()) * .weeklySchedule(ClusterAutomatedBackupPolicyWeeklyScheduleArgs.builder() - * .daysOfWeeks("MONDAY") + * .daysOfWeek("MONDAY") * .startTimes(ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs.builder() * .hours(23) * .minutes(0) - * .seconds(0) * .nanos(0) + * .seconds(0) * .build()) * .build()) - * .quantityBasedRetention(ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs.builder() - * .count(1) - * .build()) - * .labels(Map.of("test", "alloydb-cluster-full")) + * .build()) + * .clusterId("alloydb-cluster-full") + * .initialUser(ClusterInitialUserArgs.builder() + * .password("alloydb-cluster-full") + * .user("alloydb-cluster-full") * .build()) * .labels(Map.of("test", "alloydb-cluster-full")) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .location("us-central1") + * .network(default_.name().applyValue(name -> String.format("projects/%s/global/networks/%s", project.applyValue(getProjectResult -> getProjectResult.number()),name))) + * .build()); * * } * } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java index cdcc7d60bc..06e5533e07 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java @@ -19,6 +19,14 @@ import javax.annotation.Nullable; /** + * A managed alloydb cluster instance. + * + * To get more information about Instance, see: + * + * * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) + * * How-to Guides + * * [AlloyDB](https://cloud.google.com/alloydb/docs/) + * * ## Example Usage * ### Alloydb Instance Basic * ```java @@ -30,7 +38,6 @@ * import com.pulumi.gcp.organizations.OrganizationsFunctions; * import com.pulumi.gcp.organizations.inputs.GetProjectArgs; * import com.pulumi.gcp.compute.Network; - * import com.pulumi.gcp.compute.NetworkArgs; * import com.pulumi.gcp.alloydb.Cluster; * import com.pulumi.gcp.alloydb.ClusterArgs; * import com.pulumi.gcp.alloydb.inputs.ClusterInitialUserArgs; @@ -57,9 +64,7 @@ * public static void stack(Context ctx) { * final var project = OrganizationsFunctions.getProject(); * - * var defaultNetwork = new Network("defaultNetwork", NetworkArgs.Empty, CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * var defaultNetwork = new Network("defaultNetwork"); * * var defaultCluster = new Cluster("defaultCluster", ClusterArgs.builder() * .clusterId("alloydb-cluster") @@ -68,26 +73,20 @@ * .initialUser(ClusterInitialUserArgs.builder() * .password("alloydb-cluster") * .build()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var privateIpAlloc = new GlobalAddress("privateIpAlloc", GlobalAddressArgs.builder() * .addressType("INTERNAL") * .purpose("VPC_PEERING") * .prefixLength(16) * .network(defaultNetwork.id()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var vpcConnection = new Connection("vpcConnection", ConnectionArgs.builder() * .network(defaultNetwork.id()) * .service("servicenetworking.googleapis.com") * .reservedPeeringRanges(privateIpAlloc.name()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder() * .cluster(defaultCluster.name()) @@ -97,7 +96,6 @@ * .cpuCount(2) * .build()) * .build(), CustomResourceOptions.builder() - * .provider(google_beta) * .dependsOn(vpcConnection) * .build()); * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java new file mode 100644 index 0000000000..aeec42d44f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java @@ -0,0 +1,275 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.apigee.AddonsConfigArgs; +import com.pulumi.gcp.apigee.inputs.AddonsConfigState; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfig; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. + * + * To get more information about AddonsConfig, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) + * * How-to Guides + * * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) + * + * ## Example Usage + * ### Apigee Addons Basic + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.apigee.AddonsConfig; + * import com.pulumi.gcp.apigee.AddonsConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigMonetizationConfigArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var testOrganization = new AddonsConfig("testOrganization", AddonsConfigArgs.builder() + * .addonsConfig(AddonsConfigAddonsConfigArgs.builder() + * .apiSecurityConfig(AddonsConfigAddonsConfigApiSecurityConfigArgs.builder() + * .enabled(true) + * .build()) + * .monetizationConfig(AddonsConfigAddonsConfigMonetizationConfigArgs.builder() + * .enabled(true) + * .build()) + * .build()) + * .org("test_organization") + * .build()); + * + * } + * } + * ``` + * ### Apigee Addons Full + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.organizations.OrganizationsFunctions; + * import com.pulumi.gcp.projects.Service; + * import com.pulumi.gcp.projects.ServiceArgs; + * import com.pulumi.gcp.compute.Network; + * import com.pulumi.gcp.compute.NetworkArgs; + * import com.pulumi.gcp.compute.GlobalAddress; + * import com.pulumi.gcp.compute.GlobalAddressArgs; + * import com.pulumi.gcp.servicenetworking.Connection; + * import com.pulumi.gcp.servicenetworking.ConnectionArgs; + * import com.pulumi.gcp.apigee.Organization; + * import com.pulumi.gcp.apigee.OrganizationArgs; + * import com.pulumi.gcp.apigee.AddonsConfig; + * import com.pulumi.gcp.apigee.AddonsConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigIntegrationConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigMonetizationConfigArgs; + * import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs; + * import com.pulumi.resources.CustomResourceOptions; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * final var current = OrganizationsFunctions.getClientConfig(); + * + * var apigee = new Service("apigee", ServiceArgs.builder() + * .project(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .service("apigee.googleapis.com") + * .build()); + * + * var compute = new Service("compute", ServiceArgs.builder() + * .project(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .service("compute.googleapis.com") + * .build()); + * + * var servicenetworking = new Service("servicenetworking", ServiceArgs.builder() + * .project(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .service("servicenetworking.googleapis.com") + * .build()); + * + * var apigeeNetwork = new Network("apigeeNetwork", NetworkArgs.builder() + * .project(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .build(), CustomResourceOptions.builder() + * .dependsOn(compute) + * .build()); + * + * var apigeeRange = new GlobalAddress("apigeeRange", GlobalAddressArgs.builder() + * .purpose("VPC_PEERING") + * .addressType("INTERNAL") + * .prefixLength(16) + * .network(apigeeNetwork.id()) + * .project(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .build()); + * + * var apigeeVpcConnection = new Connection("apigeeVpcConnection", ConnectionArgs.builder() + * .network(apigeeNetwork.id()) + * .service("servicenetworking.googleapis.com") + * .reservedPeeringRanges(apigeeRange.name()) + * .build()); + * + * var org = new Organization("org", OrganizationArgs.builder() + * .analyticsRegion("us-central1") + * .projectId(current.applyValue(getClientConfigResult -> getClientConfigResult.project())) + * .authorizedNetwork(apigeeNetwork.id()) + * .billingType("EVALUATION") + * .build(), CustomResourceOptions.builder() + * .dependsOn( + * apigeeVpcConnection, + * apigee) + * .build()); + * + * var testOrganization = new AddonsConfig("testOrganization", AddonsConfigArgs.builder() + * .org(org.name()) + * .addonsConfig(AddonsConfigAddonsConfigArgs.builder() + * .integrationConfig(AddonsConfigAddonsConfigIntegrationConfigArgs.builder() + * .enabled(true) + * .build()) + * .apiSecurityConfig(AddonsConfigAddonsConfigApiSecurityConfigArgs.builder() + * .enabled(true) + * .build()) + * .connectorsPlatformConfig(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.builder() + * .enabled(true) + * .build()) + * .monetizationConfig(AddonsConfigAddonsConfigMonetizationConfigArgs.builder() + * .enabled(true) + * .build()) + * .advancedApiOpsConfig(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.builder() + * .enabled(true) + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` + * + * ## Import + * + * AddonsConfig can be imported using any of these accepted formats + * + * ```sh + * $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} + * ``` + * + */ +@ResourceType(type="gcp:apigee/addonsConfig:AddonsConfig") +public class AddonsConfig extends com.pulumi.resources.CustomResource { + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + @Export(name="addonsConfig", type=AddonsConfigAddonsConfig.class, parameters={}) + private Output addonsConfig; + + /** + * @return Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + public Output> addonsConfig() { + return Codegen.optional(this.addonsConfig); + } + /** + * Name of the Apigee organization. + * + */ + @Export(name="org", type=String.class, parameters={}) + private Output org; + + /** + * @return Name of the Apigee organization. + * + */ + public Output org() { + return this.org; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public AddonsConfig(String name) { + this(name, AddonsConfigArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public AddonsConfig(String name, AddonsConfigArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public AddonsConfig(String name, AddonsConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/addonsConfig:AddonsConfig", name, args == null ? AddonsConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private AddonsConfig(String name, Output id, @Nullable AddonsConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/addonsConfig:AddonsConfig", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static AddonsConfig get(String name, Output id, @Nullable AddonsConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new AddonsConfig(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfigArgs.java new file mode 100644 index 0000000000..31bccbcd1c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfigArgs.java @@ -0,0 +1,126 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigArgs Empty = new AddonsConfigArgs(); + + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + @Import(name="addonsConfig") + private @Nullable Output addonsConfig; + + /** + * @return Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + public Optional> addonsConfig() { + return Optional.ofNullable(this.addonsConfig); + } + + /** + * Name of the Apigee organization. + * + */ + @Import(name="org", required=true) + private Output org; + + /** + * @return Name of the Apigee organization. + * + */ + public Output org() { + return this.org; + } + + private AddonsConfigArgs() {} + + private AddonsConfigArgs(AddonsConfigArgs $) { + this.addonsConfig = $.addonsConfig; + this.org = $.org; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigArgs $; + + public Builder() { + $ = new AddonsConfigArgs(); + } + + public Builder(AddonsConfigArgs defaults) { + $ = new AddonsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param addonsConfig Addon configurations of the Apigee organization. + * Structure is documented below. + * + * @return builder + * + */ + public Builder addonsConfig(@Nullable Output addonsConfig) { + $.addonsConfig = addonsConfig; + return this; + } + + /** + * @param addonsConfig Addon configurations of the Apigee organization. + * Structure is documented below. + * + * @return builder + * + */ + public Builder addonsConfig(AddonsConfigAddonsConfigArgs addonsConfig) { + return addonsConfig(Output.of(addonsConfig)); + } + + /** + * @param org Name of the Apigee organization. + * + * @return builder + * + */ + public Builder org(Output org) { + $.org = org; + return this; + } + + /** + * @param org Name of the Apigee organization. + * + * @return builder + * + */ + public Builder org(String org) { + return org(Output.of(org)); + } + + public AddonsConfigArgs build() { + $.org = Objects.requireNonNull($.org, "expected parameter 'org' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.java new file mode 100644 index 0000000000..9a97d2f825 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs Empty = new AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(); + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + private AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs() {} + + private AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.java new file mode 100644 index 0000000000..6ae8eb9e29 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigApiSecurityConfigArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigApiSecurityConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigApiSecurityConfigArgs Empty = new AddonsConfigAddonsConfigApiSecurityConfigArgs(); + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="expiresAt") + private @Nullable Output expiresAt; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> expiresAt() { + return Optional.ofNullable(this.expiresAt); + } + + private AddonsConfigAddonsConfigApiSecurityConfigArgs() {} + + private AddonsConfigAddonsConfigApiSecurityConfigArgs(AddonsConfigAddonsConfigApiSecurityConfigArgs $) { + this.enabled = $.enabled; + this.expiresAt = $.expiresAt; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigApiSecurityConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigApiSecurityConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigApiSecurityConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigApiSecurityConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigApiSecurityConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param expiresAt Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder expiresAt(@Nullable Output expiresAt) { + $.expiresAt = expiresAt; + return this; + } + + /** + * @param expiresAt Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder expiresAt(String expiresAt) { + return expiresAt(Output.of(expiresAt)); + } + + public AddonsConfigAddonsConfigApiSecurityConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigArgs.java new file mode 100644 index 0000000000..9b946763b2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigArgs.java @@ -0,0 +1,255 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigApiSecurityConfigArgs; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigIntegrationConfigArgs; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigMonetizationConfigArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigArgs Empty = new AddonsConfigAddonsConfigArgs(); + + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + @Import(name="advancedApiOpsConfig") + private @Nullable Output advancedApiOpsConfig; + + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional> advancedApiOpsConfig() { + return Optional.ofNullable(this.advancedApiOpsConfig); + } + + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + @Import(name="apiSecurityConfig") + private @Nullable Output apiSecurityConfig; + + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional> apiSecurityConfig() { + return Optional.ofNullable(this.apiSecurityConfig); + } + + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + @Import(name="connectorsPlatformConfig") + private @Nullable Output connectorsPlatformConfig; + + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional> connectorsPlatformConfig() { + return Optional.ofNullable(this.connectorsPlatformConfig); + } + + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + @Import(name="integrationConfig") + private @Nullable Output integrationConfig; + + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional> integrationConfig() { + return Optional.ofNullable(this.integrationConfig); + } + + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + @Import(name="monetizationConfig") + private @Nullable Output monetizationConfig; + + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional> monetizationConfig() { + return Optional.ofNullable(this.monetizationConfig); + } + + private AddonsConfigAddonsConfigArgs() {} + + private AddonsConfigAddonsConfigArgs(AddonsConfigAddonsConfigArgs $) { + this.advancedApiOpsConfig = $.advancedApiOpsConfig; + this.apiSecurityConfig = $.apiSecurityConfig; + this.connectorsPlatformConfig = $.connectorsPlatformConfig; + this.integrationConfig = $.integrationConfig; + this.monetizationConfig = $.monetizationConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param advancedApiOpsConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder advancedApiOpsConfig(@Nullable Output advancedApiOpsConfig) { + $.advancedApiOpsConfig = advancedApiOpsConfig; + return this; + } + + /** + * @param advancedApiOpsConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder advancedApiOpsConfig(AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs advancedApiOpsConfig) { + return advancedApiOpsConfig(Output.of(advancedApiOpsConfig)); + } + + /** + * @param apiSecurityConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder apiSecurityConfig(@Nullable Output apiSecurityConfig) { + $.apiSecurityConfig = apiSecurityConfig; + return this; + } + + /** + * @param apiSecurityConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder apiSecurityConfig(AddonsConfigAddonsConfigApiSecurityConfigArgs apiSecurityConfig) { + return apiSecurityConfig(Output.of(apiSecurityConfig)); + } + + /** + * @param connectorsPlatformConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder connectorsPlatformConfig(@Nullable Output connectorsPlatformConfig) { + $.connectorsPlatformConfig = connectorsPlatformConfig; + return this; + } + + /** + * @param connectorsPlatformConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder connectorsPlatformConfig(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs connectorsPlatformConfig) { + return connectorsPlatformConfig(Output.of(connectorsPlatformConfig)); + } + + /** + * @param integrationConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder integrationConfig(@Nullable Output integrationConfig) { + $.integrationConfig = integrationConfig; + return this; + } + + /** + * @param integrationConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder integrationConfig(AddonsConfigAddonsConfigIntegrationConfigArgs integrationConfig) { + return integrationConfig(Output.of(integrationConfig)); + } + + /** + * @param monetizationConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder monetizationConfig(@Nullable Output monetizationConfig) { + $.monetizationConfig = monetizationConfig; + return this; + } + + /** + * @param monetizationConfig Configuration for the Monetization add-on. + * Structure is documented below. + * + * @return builder + * + */ + public Builder monetizationConfig(AddonsConfigAddonsConfigMonetizationConfigArgs monetizationConfig) { + return monetizationConfig(Output.of(monetizationConfig)); + } + + public AddonsConfigAddonsConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.java new file mode 100644 index 0000000000..2a1f7a7ff3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigConnectorsPlatformConfigArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigConnectorsPlatformConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigConnectorsPlatformConfigArgs Empty = new AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(); + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="expiresAt") + private @Nullable Output expiresAt; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> expiresAt() { + return Optional.ofNullable(this.expiresAt); + } + + private AddonsConfigAddonsConfigConnectorsPlatformConfigArgs() {} + + private AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs $) { + this.enabled = $.enabled; + this.expiresAt = $.expiresAt; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigConnectorsPlatformConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigConnectorsPlatformConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigConnectorsPlatformConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param expiresAt Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder expiresAt(@Nullable Output expiresAt) { + $.expiresAt = expiresAt; + return this; + } + + /** + * @param expiresAt Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder expiresAt(String expiresAt) { + return expiresAt(Output.of(expiresAt)); + } + + public AddonsConfigAddonsConfigConnectorsPlatformConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.java new file mode 100644 index 0000000000..33846459ff --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigIntegrationConfigArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigIntegrationConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigIntegrationConfigArgs Empty = new AddonsConfigAddonsConfigIntegrationConfigArgs(); + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + private AddonsConfigAddonsConfigIntegrationConfigArgs() {} + + private AddonsConfigAddonsConfigIntegrationConfigArgs(AddonsConfigAddonsConfigIntegrationConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigIntegrationConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigIntegrationConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigIntegrationConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigIntegrationConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigIntegrationConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public AddonsConfigAddonsConfigIntegrationConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.java new file mode 100644 index 0000000000..bbc446eb94 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigAddonsConfigMonetizationConfigArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigAddonsConfigMonetizationConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigAddonsConfigMonetizationConfigArgs Empty = new AddonsConfigAddonsConfigMonetizationConfigArgs(); + + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + private AddonsConfigAddonsConfigMonetizationConfigArgs() {} + + private AddonsConfigAddonsConfigMonetizationConfigArgs(AddonsConfigAddonsConfigMonetizationConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigAddonsConfigMonetizationConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigAddonsConfigMonetizationConfigArgs $; + + public Builder() { + $ = new AddonsConfigAddonsConfigMonetizationConfigArgs(); + } + + public Builder(AddonsConfigAddonsConfigMonetizationConfigArgs defaults) { + $ = new AddonsConfigAddonsConfigMonetizationConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Flag that specifies whether the Advanced API Ops add-on is enabled. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public AddonsConfigAddonsConfigMonetizationConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigState.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigState.java new file mode 100644 index 0000000000..9af896781b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/AddonsConfigState.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.apigee.inputs.AddonsConfigAddonsConfigArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AddonsConfigState extends com.pulumi.resources.ResourceArgs { + + public static final AddonsConfigState Empty = new AddonsConfigState(); + + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + @Import(name="addonsConfig") + private @Nullable Output addonsConfig; + + /** + * @return Addon configurations of the Apigee organization. + * Structure is documented below. + * + */ + public Optional> addonsConfig() { + return Optional.ofNullable(this.addonsConfig); + } + + /** + * Name of the Apigee organization. + * + */ + @Import(name="org") + private @Nullable Output org; + + /** + * @return Name of the Apigee organization. + * + */ + public Optional> org() { + return Optional.ofNullable(this.org); + } + + private AddonsConfigState() {} + + private AddonsConfigState(AddonsConfigState $) { + this.addonsConfig = $.addonsConfig; + this.org = $.org; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AddonsConfigState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AddonsConfigState $; + + public Builder() { + $ = new AddonsConfigState(); + } + + public Builder(AddonsConfigState defaults) { + $ = new AddonsConfigState(Objects.requireNonNull(defaults)); + } + + /** + * @param addonsConfig Addon configurations of the Apigee organization. + * Structure is documented below. + * + * @return builder + * + */ + public Builder addonsConfig(@Nullable Output addonsConfig) { + $.addonsConfig = addonsConfig; + return this; + } + + /** + * @param addonsConfig Addon configurations of the Apigee organization. + * Structure is documented below. + * + * @return builder + * + */ + public Builder addonsConfig(AddonsConfigAddonsConfigArgs addonsConfig) { + return addonsConfig(Output.of(addonsConfig)); + } + + /** + * @param org Name of the Apigee organization. + * + * @return builder + * + */ + public Builder org(@Nullable Output org) { + $.org = org; + return this; + } + + /** + * @param org Name of the Apigee organization. + * + * @return builder + * + */ + public Builder org(String org) { + return org(Output.of(org)); + } + + public AddonsConfigState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfig.java new file mode 100644 index 0000000000..390a30b1c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfig.java @@ -0,0 +1,150 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfigAdvancedApiOpsConfig; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfigApiSecurityConfig; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfigConnectorsPlatformConfig; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfigIntegrationConfig; +import com.pulumi.gcp.apigee.outputs.AddonsConfigAddonsConfigMonetizationConfig; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfig { + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + private @Nullable AddonsConfigAddonsConfigAdvancedApiOpsConfig advancedApiOpsConfig; + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + private @Nullable AddonsConfigAddonsConfigApiSecurityConfig apiSecurityConfig; + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + private @Nullable AddonsConfigAddonsConfigConnectorsPlatformConfig connectorsPlatformConfig; + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + private @Nullable AddonsConfigAddonsConfigIntegrationConfig integrationConfig; + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + private @Nullable AddonsConfigAddonsConfigMonetizationConfig monetizationConfig; + + private AddonsConfigAddonsConfig() {} + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional advancedApiOpsConfig() { + return Optional.ofNullable(this.advancedApiOpsConfig); + } + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional apiSecurityConfig() { + return Optional.ofNullable(this.apiSecurityConfig); + } + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional connectorsPlatformConfig() { + return Optional.ofNullable(this.connectorsPlatformConfig); + } + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional integrationConfig() { + return Optional.ofNullable(this.integrationConfig); + } + /** + * @return Configuration for the Monetization add-on. + * Structure is documented below. + * + */ + public Optional monetizationConfig() { + return Optional.ofNullable(this.monetizationConfig); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable AddonsConfigAddonsConfigAdvancedApiOpsConfig advancedApiOpsConfig; + private @Nullable AddonsConfigAddonsConfigApiSecurityConfig apiSecurityConfig; + private @Nullable AddonsConfigAddonsConfigConnectorsPlatformConfig connectorsPlatformConfig; + private @Nullable AddonsConfigAddonsConfigIntegrationConfig integrationConfig; + private @Nullable AddonsConfigAddonsConfigMonetizationConfig monetizationConfig; + public Builder() {} + public Builder(AddonsConfigAddonsConfig defaults) { + Objects.requireNonNull(defaults); + this.advancedApiOpsConfig = defaults.advancedApiOpsConfig; + this.apiSecurityConfig = defaults.apiSecurityConfig; + this.connectorsPlatformConfig = defaults.connectorsPlatformConfig; + this.integrationConfig = defaults.integrationConfig; + this.monetizationConfig = defaults.monetizationConfig; + } + + @CustomType.Setter + public Builder advancedApiOpsConfig(@Nullable AddonsConfigAddonsConfigAdvancedApiOpsConfig advancedApiOpsConfig) { + this.advancedApiOpsConfig = advancedApiOpsConfig; + return this; + } + @CustomType.Setter + public Builder apiSecurityConfig(@Nullable AddonsConfigAddonsConfigApiSecurityConfig apiSecurityConfig) { + this.apiSecurityConfig = apiSecurityConfig; + return this; + } + @CustomType.Setter + public Builder connectorsPlatformConfig(@Nullable AddonsConfigAddonsConfigConnectorsPlatformConfig connectorsPlatformConfig) { + this.connectorsPlatformConfig = connectorsPlatformConfig; + return this; + } + @CustomType.Setter + public Builder integrationConfig(@Nullable AddonsConfigAddonsConfigIntegrationConfig integrationConfig) { + this.integrationConfig = integrationConfig; + return this; + } + @CustomType.Setter + public Builder monetizationConfig(@Nullable AddonsConfigAddonsConfigMonetizationConfig monetizationConfig) { + this.monetizationConfig = monetizationConfig; + return this; + } + public AddonsConfigAddonsConfig build() { + final var o = new AddonsConfigAddonsConfig(); + o.advancedApiOpsConfig = advancedApiOpsConfig; + o.apiSecurityConfig = apiSecurityConfig; + o.connectorsPlatformConfig = connectorsPlatformConfig; + o.integrationConfig = integrationConfig; + o.monetizationConfig = monetizationConfig; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.java new file mode 100644 index 0000000000..26581df2c0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigAdvancedApiOpsConfig.java @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfigAdvancedApiOpsConfig { + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable Boolean enabled; + + private AddonsConfigAddonsConfigAdvancedApiOpsConfig() {} + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfigAdvancedApiOpsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + public Builder() {} + public Builder(AddonsConfigAddonsConfigAdvancedApiOpsConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + public AddonsConfigAddonsConfigAdvancedApiOpsConfig build() { + final var o = new AddonsConfigAddonsConfigAdvancedApiOpsConfig(); + o.enabled = enabled; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigApiSecurityConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigApiSecurityConfig.java new file mode 100644 index 0000000000..bbf0c9c84f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigApiSecurityConfig.java @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfigApiSecurityConfig { + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable Boolean enabled; + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable String expiresAt; + + private AddonsConfigAddonsConfigApiSecurityConfig() {} + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional expiresAt() { + return Optional.ofNullable(this.expiresAt); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfigApiSecurityConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String expiresAt; + public Builder() {} + public Builder(AddonsConfigAddonsConfigApiSecurityConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.expiresAt = defaults.expiresAt; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder expiresAt(@Nullable String expiresAt) { + this.expiresAt = expiresAt; + return this; + } + public AddonsConfigAddonsConfigApiSecurityConfig build() { + final var o = new AddonsConfigAddonsConfigApiSecurityConfig(); + o.enabled = enabled; + o.expiresAt = expiresAt; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.java new file mode 100644 index 0000000000..b9db24a3f2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigConnectorsPlatformConfig.java @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfigConnectorsPlatformConfig { + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable Boolean enabled; + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable String expiresAt; + + private AddonsConfigAddonsConfigConnectorsPlatformConfig() {} + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional expiresAt() { + return Optional.ofNullable(this.expiresAt); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfigConnectorsPlatformConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable String expiresAt; + public Builder() {} + public Builder(AddonsConfigAddonsConfigConnectorsPlatformConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.expiresAt = defaults.expiresAt; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder expiresAt(@Nullable String expiresAt) { + this.expiresAt = expiresAt; + return this; + } + public AddonsConfigAddonsConfigConnectorsPlatformConfig build() { + final var o = new AddonsConfigAddonsConfigConnectorsPlatformConfig(); + o.enabled = enabled; + o.expiresAt = expiresAt; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigIntegrationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigIntegrationConfig.java new file mode 100644 index 0000000000..14ea98a074 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigIntegrationConfig.java @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfigIntegrationConfig { + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable Boolean enabled; + + private AddonsConfigAddonsConfigIntegrationConfig() {} + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfigIntegrationConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + public Builder() {} + public Builder(AddonsConfigAddonsConfigIntegrationConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + public AddonsConfigAddonsConfigIntegrationConfig build() { + final var o = new AddonsConfigAddonsConfigIntegrationConfig(); + o.enabled = enabled; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigMonetizationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigMonetizationConfig.java new file mode 100644 index 0000000000..537d931de9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/outputs/AddonsConfigAddonsConfigMonetizationConfig.java @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class AddonsConfigAddonsConfigMonetizationConfig { + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + private @Nullable Boolean enabled; + + private AddonsConfigAddonsConfigMonetizationConfig() {} + /** + * @return Flag that specifies whether the Advanced API Ops add-on is enabled. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AddonsConfigAddonsConfigMonetizationConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + public Builder() {} + public Builder(AddonsConfigAddonsConfigMonetizationConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + public AddonsConfigAddonsConfigMonetizationConfig build() { + final var o = new AddonsConfigAddonsConfigMonetizationConfig(); + o.enabled = enabled; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java new file mode 100644 index 0000000000..5cd120504e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.cloudbuildv2.ConnectionIAMBindingArgs; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMBindingState; +import com.pulumi.gcp.cloudbuildv2.outputs.ConnectionIAMBindingCondition; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + * + */ +@ResourceType(type="gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding") +public class ConnectionIAMBinding extends com.pulumi.resources.CustomResource { + @Export(name="condition", type=ConnectionIAMBindingCondition.class, parameters={}) + private Output condition; + + public Output> condition() { + return Codegen.optional(this.condition); + } + /** + * (Computed) The etag of the IAM policy. + * + */ + @Export(name="etag", type=String.class, parameters={}) + private Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Output etag() { + return this.etag; + } + @Export(name="location", type=String.class, parameters={}) + private Output location; + + public Output location() { + return this.location; + } + @Export(name="members", type=List.class, parameters={String.class}) + private Output> members; + + public Output> members() { + return this.members; + } + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Export(name="name", type=String.class, parameters={}) + private Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Export(name="project", type=String.class, parameters={}) + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Export(name="role", type=String.class, parameters={}) + private Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Output role() { + return this.role; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ConnectionIAMBinding(String name) { + this(name, ConnectionIAMBindingArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ConnectionIAMBinding(String name, ConnectionIAMBindingArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ConnectionIAMBinding(String name, ConnectionIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, args == null ? ConnectionIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private ConnectionIAMBinding(String name, Output id, @Nullable ConnectionIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ConnectionIAMBinding get(String name, Output id, @Nullable ConnectionIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ConnectionIAMBinding(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBindingArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBindingArgs.java new file mode 100644 index 0000000000..2117161f06 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBindingArgs.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMBindingConditionArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMBindingArgs extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMBindingArgs Empty = new ConnectionIAMBindingArgs(); + + @Import(name="condition") + private @Nullable Output condition; + + public Optional> condition() { + return Optional.ofNullable(this.condition); + } + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + @Import(name="members", required=true) + private Output> members; + + public Output> members() { + return this.members; + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Import(name="role", required=true) + private Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Output role() { + return this.role; + } + + private ConnectionIAMBindingArgs() {} + + private ConnectionIAMBindingArgs(ConnectionIAMBindingArgs $) { + this.condition = $.condition; + this.location = $.location; + this.members = $.members; + this.name = $.name; + this.project = $.project; + this.role = $.role; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMBindingArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMBindingArgs $; + + public Builder() { + $ = new ConnectionIAMBindingArgs(); + } + + public Builder(ConnectionIAMBindingArgs defaults) { + $ = new ConnectionIAMBindingArgs(Objects.requireNonNull(defaults)); + } + + public Builder condition(@Nullable Output condition) { + $.condition = condition; + return this; + } + + public Builder condition(ConnectionIAMBindingConditionArgs condition) { + return condition(Output.of(condition)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder members(Output> members) { + $.members = members; + return this; + } + + public Builder members(List members) { + return members(Output.of(members)); + } + + public Builder members(String... members) { + return members(List.of(members)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(Output role) { + $.role = role; + return this; + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(String role) { + return role(Output.of(role)); + } + + public ConnectionIAMBindingArgs build() { + $.members = Objects.requireNonNull($.members, "expected parameter 'members' to be non-null"); + $.role = Objects.requireNonNull($.role, "expected parameter 'role' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java new file mode 100644 index 0000000000..1b6722e634 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java @@ -0,0 +1,175 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.cloudbuildv2.ConnectionIAMMemberArgs; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMMemberState; +import com.pulumi.gcp.cloudbuildv2.outputs.ConnectionIAMMemberCondition; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + * + */ +@ResourceType(type="gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember") +public class ConnectionIAMMember extends com.pulumi.resources.CustomResource { + @Export(name="condition", type=ConnectionIAMMemberCondition.class, parameters={}) + private Output condition; + + public Output> condition() { + return Codegen.optional(this.condition); + } + /** + * (Computed) The etag of the IAM policy. + * + */ + @Export(name="etag", type=String.class, parameters={}) + private Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Output etag() { + return this.etag; + } + @Export(name="location", type=String.class, parameters={}) + private Output location; + + public Output location() { + return this.location; + } + @Export(name="member", type=String.class, parameters={}) + private Output member; + + public Output member() { + return this.member; + } + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Export(name="name", type=String.class, parameters={}) + private Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Export(name="project", type=String.class, parameters={}) + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Export(name="role", type=String.class, parameters={}) + private Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Output role() { + return this.role; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ConnectionIAMMember(String name) { + this(name, ConnectionIAMMemberArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ConnectionIAMMember(String name, ConnectionIAMMemberArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ConnectionIAMMember(String name, ConnectionIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, args == null ? ConnectionIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private ConnectionIAMMember(String name, Output id, @Nullable ConnectionIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ConnectionIAMMember get(String name, Output id, @Nullable ConnectionIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ConnectionIAMMember(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMemberArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMemberArgs.java new file mode 100644 index 0000000000..4498f6873c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMemberArgs.java @@ -0,0 +1,223 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMMemberConditionArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMMemberArgs extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMMemberArgs Empty = new ConnectionIAMMemberArgs(); + + @Import(name="condition") + private @Nullable Output condition; + + public Optional> condition() { + return Optional.ofNullable(this.condition); + } + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + @Import(name="member", required=true) + private Output member; + + public Output member() { + return this.member; + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Import(name="role", required=true) + private Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Output role() { + return this.role; + } + + private ConnectionIAMMemberArgs() {} + + private ConnectionIAMMemberArgs(ConnectionIAMMemberArgs $) { + this.condition = $.condition; + this.location = $.location; + this.member = $.member; + this.name = $.name; + this.project = $.project; + this.role = $.role; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMMemberArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMMemberArgs $; + + public Builder() { + $ = new ConnectionIAMMemberArgs(); + } + + public Builder(ConnectionIAMMemberArgs defaults) { + $ = new ConnectionIAMMemberArgs(Objects.requireNonNull(defaults)); + } + + public Builder condition(@Nullable Output condition) { + $.condition = condition; + return this; + } + + public Builder condition(ConnectionIAMMemberConditionArgs condition) { + return condition(Output.of(condition)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder member(Output member) { + $.member = member; + return this; + } + + public Builder member(String member) { + return member(Output.of(member)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(Output role) { + $.role = role; + return this; + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(String role) { + return role(Output.of(role)); + } + + public ConnectionIAMMemberArgs build() { + $.member = Objects.requireNonNull($.member, "expected parameter 'member' to be non-null"); + $.role = Objects.requireNonNull($.role, "expected parameter 'role' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java new file mode 100644 index 0000000000..86d4d2a189 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java @@ -0,0 +1,159 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.cloudbuildv2.ConnectionIAMPolicyArgs; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMPolicyState; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + * + */ +@ResourceType(type="gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy") +public class ConnectionIAMPolicy extends com.pulumi.resources.CustomResource { + /** + * (Computed) The etag of the IAM policy. + * + */ + @Export(name="etag", type=String.class, parameters={}) + private Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Output etag() { + return this.etag; + } + @Export(name="location", type=String.class, parameters={}) + private Output location; + + public Output location() { + return this.location; + } + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Export(name="name", type=String.class, parameters={}) + private Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Output name() { + return this.name; + } + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + @Export(name="policyData", type=String.class, parameters={}) + private Output policyData; + + /** + * @return The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + public Output policyData() { + return this.policyData; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Export(name="project", type=String.class, parameters={}) + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Output project() { + return this.project; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ConnectionIAMPolicy(String name) { + this(name, ConnectionIAMPolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ConnectionIAMPolicy(String name, ConnectionIAMPolicyArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ConnectionIAMPolicy(String name, ConnectionIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, args == null ? ConnectionIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private ConnectionIAMPolicy(String name, Output id, @Nullable ConnectionIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ConnectionIAMPolicy get(String name, Output id, @Nullable ConnectionIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ConnectionIAMPolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicyArgs.java new file mode 100644 index 0000000000..05848bbea1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicyArgs.java @@ -0,0 +1,183 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMPolicyArgs Empty = new ConnectionIAMPolicyArgs(); + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + @Import(name="policyData", required=true) + private Output policyData; + + /** + * @return The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + public Output policyData() { + return this.policyData; + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + private ConnectionIAMPolicyArgs() {} + + private ConnectionIAMPolicyArgs(ConnectionIAMPolicyArgs $) { + this.location = $.location; + this.name = $.name; + this.policyData = $.policyData; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMPolicyArgs $; + + public Builder() { + $ = new ConnectionIAMPolicyArgs(); + } + + public Builder(ConnectionIAMPolicyArgs defaults) { + $ = new ConnectionIAMPolicyArgs(Objects.requireNonNull(defaults)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policyData The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + * @return builder + * + */ + public Builder policyData(Output policyData) { + $.policyData = policyData; + return this; + } + + /** + * @param policyData The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + * @return builder + * + */ + public Builder policyData(String policyData) { + return policyData(Output.of(policyData)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + public ConnectionIAMPolicyArgs build() { + $.policyData = Objects.requireNonNull($.policyData, "expected parameter 'policyData' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingConditionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingConditionArgs.java new file mode 100644 index 0000000000..f839875dec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingConditionArgs.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMBindingConditionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMBindingConditionArgs Empty = new ConnectionIAMBindingConditionArgs(); + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + @Import(name="expression", required=true) + private Output expression; + + public Output expression() { + return this.expression; + } + + @Import(name="title", required=true) + private Output title; + + public Output title() { + return this.title; + } + + private ConnectionIAMBindingConditionArgs() {} + + private ConnectionIAMBindingConditionArgs(ConnectionIAMBindingConditionArgs $) { + this.description = $.description; + this.expression = $.expression; + this.title = $.title; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMBindingConditionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMBindingConditionArgs $; + + public Builder() { + $ = new ConnectionIAMBindingConditionArgs(); + } + + public Builder(ConnectionIAMBindingConditionArgs defaults) { + $ = new ConnectionIAMBindingConditionArgs(Objects.requireNonNull(defaults)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + public Builder expression(Output expression) { + $.expression = expression; + return this; + } + + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public Builder title(Output title) { + $.title = title; + return this; + } + + public Builder title(String title) { + return title(Output.of(title)); + } + + public ConnectionIAMBindingConditionArgs build() { + $.expression = Objects.requireNonNull($.expression, "expected parameter 'expression' to be non-null"); + $.title = Objects.requireNonNull($.title, "expected parameter 'title' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingState.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingState.java new file mode 100644 index 0000000000..ad51aee687 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMBindingState.java @@ -0,0 +1,263 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMBindingConditionArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMBindingState extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMBindingState Empty = new ConnectionIAMBindingState(); + + @Import(name="condition") + private @Nullable Output condition; + + public Optional> condition() { + return Optional.ofNullable(this.condition); + } + + /** + * (Computed) The etag of the IAM policy. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + @Import(name="members") + private @Nullable Output> members; + + public Optional>> members() { + return Optional.ofNullable(this.members); + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Import(name="role") + private @Nullable Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Optional> role() { + return Optional.ofNullable(this.role); + } + + private ConnectionIAMBindingState() {} + + private ConnectionIAMBindingState(ConnectionIAMBindingState $) { + this.condition = $.condition; + this.etag = $.etag; + this.location = $.location; + this.members = $.members; + this.name = $.name; + this.project = $.project; + this.role = $.role; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMBindingState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMBindingState $; + + public Builder() { + $ = new ConnectionIAMBindingState(); + } + + public Builder(ConnectionIAMBindingState defaults) { + $ = new ConnectionIAMBindingState(Objects.requireNonNull(defaults)); + } + + public Builder condition(@Nullable Output condition) { + $.condition = condition; + return this; + } + + public Builder condition(ConnectionIAMBindingConditionArgs condition) { + return condition(Output.of(condition)); + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder members(@Nullable Output> members) { + $.members = members; + return this; + } + + public Builder members(List members) { + return members(Output.of(members)); + } + + public Builder members(String... members) { + return members(List.of(members)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(@Nullable Output role) { + $.role = role; + return this; + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(String role) { + return role(Output.of(role)); + } + + public ConnectionIAMBindingState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberConditionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberConditionArgs.java new file mode 100644 index 0000000000..008b109934 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberConditionArgs.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMMemberConditionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMMemberConditionArgs Empty = new ConnectionIAMMemberConditionArgs(); + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + @Import(name="expression", required=true) + private Output expression; + + public Output expression() { + return this.expression; + } + + @Import(name="title", required=true) + private Output title; + + public Output title() { + return this.title; + } + + private ConnectionIAMMemberConditionArgs() {} + + private ConnectionIAMMemberConditionArgs(ConnectionIAMMemberConditionArgs $) { + this.description = $.description; + this.expression = $.expression; + this.title = $.title; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMMemberConditionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMMemberConditionArgs $; + + public Builder() { + $ = new ConnectionIAMMemberConditionArgs(); + } + + public Builder(ConnectionIAMMemberConditionArgs defaults) { + $ = new ConnectionIAMMemberConditionArgs(Objects.requireNonNull(defaults)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + public Builder expression(Output expression) { + $.expression = expression; + return this; + } + + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + public Builder title(Output title) { + $.title = title; + return this; + } + + public Builder title(String title) { + return title(Output.of(title)); + } + + public ConnectionIAMMemberConditionArgs build() { + $.expression = Objects.requireNonNull($.expression, "expected parameter 'expression' to be non-null"); + $.title = Objects.requireNonNull($.title, "expected parameter 'title' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberState.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberState.java new file mode 100644 index 0000000000..ecf3d8ed1a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMMemberState.java @@ -0,0 +1,258 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionIAMMemberConditionArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMMemberState extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMMemberState Empty = new ConnectionIAMMemberState(); + + @Import(name="condition") + private @Nullable Output condition; + + public Optional> condition() { + return Optional.ofNullable(this.condition); + } + + /** + * (Computed) The etag of the IAM policy. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + @Import(name="member") + private @Nullable Output member; + + public Optional> member() { + return Optional.ofNullable(this.member); + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + @Import(name="role") + private @Nullable Output role; + + /** + * @return The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + */ + public Optional> role() { + return Optional.ofNullable(this.role); + } + + private ConnectionIAMMemberState() {} + + private ConnectionIAMMemberState(ConnectionIAMMemberState $) { + this.condition = $.condition; + this.etag = $.etag; + this.location = $.location; + this.member = $.member; + this.name = $.name; + this.project = $.project; + this.role = $.role; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMMemberState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMMemberState $; + + public Builder() { + $ = new ConnectionIAMMemberState(); + } + + public Builder(ConnectionIAMMemberState defaults) { + $ = new ConnectionIAMMemberState(Objects.requireNonNull(defaults)); + } + + public Builder condition(@Nullable Output condition) { + $.condition = condition; + return this; + } + + public Builder condition(ConnectionIAMMemberConditionArgs condition) { + return condition(Output.of(condition)); + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + public Builder member(@Nullable Output member) { + $.member = member; + return this; + } + + public Builder member(String member) { + return member(Output.of(member)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(@Nullable Output role) { + $.role = role; + return this; + } + + /** + * @param role The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + * + * @return builder + * + */ + public Builder role(String role) { + return role(Output.of(role)); + } + + public ConnectionIAMMemberState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMPolicyState.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMPolicyState.java new file mode 100644 index 0000000000..654035b317 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/inputs/ConnectionIAMPolicyState.java @@ -0,0 +1,219 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ConnectionIAMPolicyState extends com.pulumi.resources.ResourceArgs { + + public static final ConnectionIAMPolicyState Empty = new ConnectionIAMPolicyState(); + + /** + * (Computed) The etag of the IAM policy. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return (Computed) The etag of the IAM policy. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + @Import(name="location") + private @Nullable Output location; + + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Used to find the parent resource to bind the IAM policy to + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Used to find the parent resource to bind the IAM policy to + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + @Import(name="policyData") + private @Nullable Output policyData; + + /** + * @return The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + */ + public Optional> policyData() { + return Optional.ofNullable(this.policyData); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + private ConnectionIAMPolicyState() {} + + private ConnectionIAMPolicyState(ConnectionIAMPolicyState $) { + this.etag = $.etag; + this.location = $.location; + this.name = $.name; + this.policyData = $.policyData; + this.project = $.project; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ConnectionIAMPolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ConnectionIAMPolicyState $; + + public Builder() { + $ = new ConnectionIAMPolicyState(); + } + + public Builder(ConnectionIAMPolicyState defaults) { + $ = new ConnectionIAMPolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag (Computed) The etag of the IAM policy. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Used to find the parent resource to bind the IAM policy to + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param policyData The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + * @return builder + * + */ + public Builder policyData(@Nullable Output policyData) { + $.policyData = policyData; + return this; + } + + /** + * @param policyData The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + * + * @return builder + * + */ + public Builder policyData(String policyData) { + return policyData(Output.of(policyData)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + public ConnectionIAMPolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMBindingCondition.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMBindingCondition.java new file mode 100644 index 0000000000..0efc6cd36d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMBindingCondition.java @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ConnectionIAMBindingCondition { + private @Nullable String description; + private String expression; + private String title; + + private ConnectionIAMBindingCondition() {} + public Optional description() { + return Optional.ofNullable(this.description); + } + public String expression() { + return this.expression; + } + public String title() { + return this.title; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ConnectionIAMBindingCondition defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String expression; + private String title; + public Builder() {} + public Builder(ConnectionIAMBindingCondition defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.expression = defaults.expression; + this.title = defaults.title; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + this.description = description; + return this; + } + @CustomType.Setter + public Builder expression(String expression) { + this.expression = Objects.requireNonNull(expression); + return this; + } + @CustomType.Setter + public Builder title(String title) { + this.title = Objects.requireNonNull(title); + return this; + } + public ConnectionIAMBindingCondition build() { + final var o = new ConnectionIAMBindingCondition(); + o.description = description; + o.expression = expression; + o.title = title; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMMemberCondition.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMMemberCondition.java new file mode 100644 index 0000000000..26e24ab3d1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/outputs/ConnectionIAMMemberCondition.java @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.cloudbuildv2.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ConnectionIAMMemberCondition { + private @Nullable String description; + private String expression; + private String title; + + private ConnectionIAMMemberCondition() {} + public Optional description() { + return Optional.ofNullable(this.description); + } + public String expression() { + return this.expression; + } + public String title() { + return this.title; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ConnectionIAMMemberCondition defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String expression; + private String title; + public Builder() {} + public Builder(ConnectionIAMMemberCondition defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.expression = defaults.expression; + this.title = defaults.title; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + this.description = description; + return this; + } + @CustomType.Setter + public Builder expression(String expression) { + this.expression = Objects.requireNonNull(expression); + return this; + } + @CustomType.Setter + public Builder title(String title) { + this.title = Objects.requireNonNull(title); + return this; + } + public ConnectionIAMMemberCondition build() { + final var o = new ConnectionIAMMemberCondition(); + o.description = description; + o.expression = expression; + o.title = title; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java index f4c6b142f8..341e59937f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java @@ -13,6 +13,7 @@ import com.pulumi.gcp.compute.outputs.ExternalVpnGatewayInterface; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; @@ -205,6 +206,20 @@ public Output> description() { public Output>> interfaces() { return Codegen.optional(this.interfaces); } + /** + * Labels for the external VPN gateway resource. + * + */ + @Export(name="labels", type=Map.class, parameters={String.class, String.class}) + private Output> labels; + + /** + * @return Labels for the external VPN gateway resource. + * + */ + public Output>> labels() { + return Codegen.optional(this.labels); + } /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGatewayArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGatewayArgs.java index 6049a8be2d..39fbc23d85 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGatewayArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGatewayArgs.java @@ -8,6 +8,7 @@ import com.pulumi.gcp.compute.inputs.ExternalVpnGatewayInterfaceArgs; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -49,6 +50,21 @@ public Optional>> interfaces() { return Optional.ofNullable(this.interfaces); } + /** + * Labels for the external VPN gateway resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return Labels for the external VPN gateway resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with @@ -115,6 +131,7 @@ private ExternalVpnGatewayArgs() {} private ExternalVpnGatewayArgs(ExternalVpnGatewayArgs $) { this.description = $.description; this.interfaces = $.interfaces; + this.labels = $.labels; this.name = $.name; this.project = $.project; this.redundancyType = $.redundancyType; @@ -193,6 +210,27 @@ public Builder interfaces(ExternalVpnGatewayInterfaceArgs... interfaces) { return interfaces(List.of(interfaces)); } + /** + * @param labels Labels for the external VPN gateway resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels Labels for the external VPN gateway resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + /** * @param name Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java index a76270e5d5..e33e7de99e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java @@ -12,6 +12,7 @@ import com.pulumi.gcp.compute.inputs.InstanceGroupManagerState; import com.pulumi.gcp.compute.outputs.InstanceGroupManagerAllInstancesConfig; import com.pulumi.gcp.compute.outputs.InstanceGroupManagerAutoHealingPolicies; +import com.pulumi.gcp.compute.outputs.InstanceGroupManagerInstanceLifecyclePolicy; import com.pulumi.gcp.compute.outputs.InstanceGroupManagerNamedPort; import com.pulumi.gcp.compute.outputs.InstanceGroupManagerStatefulDisk; import com.pulumi.gcp.compute.outputs.InstanceGroupManagerStatefulExternalIp; @@ -276,6 +277,20 @@ public Output fingerprint() { public Output instanceGroup() { return this.instanceGroup; } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Export(name="instanceLifecyclePolicy", type=InstanceGroupManagerInstanceLifecyclePolicy.class, parameters={}) + private Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Output instanceLifecyclePolicy() { + return this.instanceLifecyclePolicy; + } /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManagerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManagerArgs.java index fce0b2b1ca..7b495f64da 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManagerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManagerArgs.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerStatefulDiskArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerStatefulExternalIpArgs; @@ -106,6 +107,21 @@ public Optional> description() { return Optional.ofNullable(this.description); } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Import(name="instanceLifecyclePolicy") + private @Nullable Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Optional> instanceLifecyclePolicy() { + return Optional.ofNullable(this.instanceLifecyclePolicy); + } + /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -365,6 +381,7 @@ private InstanceGroupManagerArgs(InstanceGroupManagerArgs $) { this.autoHealingPolicies = $.autoHealingPolicies; this.baseInstanceName = $.baseInstanceName; this.description = $.description; + this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; this.name = $.name; this.namedPorts = $.namedPorts; @@ -503,6 +520,27 @@ public Builder description(String description) { return description(Output.of(description)); } + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(@Nullable Output instanceLifecyclePolicy) { + $.instanceLifecyclePolicy = instanceLifecyclePolicy; + return this; + } + + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(InstanceGroupManagerInstanceLifecyclePolicyArgs instanceLifecyclePolicy) { + return instanceLifecyclePolicy(Output.of(instanceLifecyclePolicy)); + } + /** * @param listManagedInstancesResults Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java index 9462b5d283..c9a7bbabab 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java @@ -396,6 +396,20 @@ public Output region() { public Output> reservationAffinity() { return Codegen.optional(this.reservationAffinity); } + /** + * - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + @Export(name="resourcePolicies", type=String.class, parameters={}) + private Output resourcePolicies; + + /** + * @return - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + public Output> resourcePolicies() { + return Codegen.optional(this.resourcePolicies); + } /** * The scheduling strategy to use. More details about * this configuration option are detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplateArgs.java index 61b0ab0b49..5bfe580687 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplateArgs.java @@ -381,6 +381,21 @@ public Optional> reservationAffi return Optional.ofNullable(this.reservationAffinity); } + /** + * - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + @Import(name="resourcePolicies") + private @Nullable Output resourcePolicies; + + /** + * @return - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + public Optional> resourcePolicies() { + return Optional.ofNullable(this.resourcePolicies); + } + /** * The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -468,6 +483,7 @@ private InstanceTemplateArgs(InstanceTemplateArgs $) { this.project = $.project; this.region = $.region; this.reservationAffinity = $.reservationAffinity; + this.resourcePolicies = $.resourcePolicies; this.scheduling = $.scheduling; this.serviceAccount = $.serviceAccount; this.shieldedInstanceConfig = $.shieldedInstanceConfig; @@ -998,6 +1014,27 @@ public Builder reservationAffinity(InstanceTemplateReservationAffinityArgs reser return reservationAffinity(Output.of(reservationAffinity)); } + /** + * @param resourcePolicies - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + * @return builder + * + */ + public Builder resourcePolicies(@Nullable Output resourcePolicies) { + $.resourcePolicies = resourcePolicies; + return this; + } + + /** + * @param resourcePolicies - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + * @return builder + * + */ + public Builder resourcePolicies(String resourcePolicies) { + return resourcePolicies(Output.of(resourcePolicies)); + } + /** * @param scheduling The scheduling strategy to use. More details about * this configuration option are detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java index c32541a849..ca8b1d7a21 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java @@ -212,16 +212,22 @@ public Output internalIpv6Range() { return this.internalIpv6Range; } /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ @Export(name="mtu", type=Integer.class, parameters={}) private Output mtu; /** - * @return Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @return Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ public Output mtu() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkArgs.java index f6afcdab3b..62a5daf971 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkArgs.java @@ -115,16 +115,22 @@ public Optional> internalIpv6Range() { } /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ @Import(name="mtu") private @Nullable Output mtu; /** - * @return Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @return Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ public Optional> mtu() { @@ -360,8 +366,11 @@ public Builder internalIpv6Range(String internalIpv6Range) { } /** - * @param mtu Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @param mtu Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * * @return builder * @@ -372,8 +381,11 @@ public Builder mtu(@Nullable Output mtu) { } /** - * @param mtu Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @param mtu Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java index 829f098bcc..9e512d65c7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java @@ -12,6 +12,7 @@ import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerState; import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerAllInstancesConfig; import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerAutoHealingPolicies; +import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerInstanceLifecyclePolicy; import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerNamedPort; import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerStatefulDisk; import com.pulumi.gcp.compute.outputs.RegionInstanceGroupManagerStatefulExternalIp; @@ -297,6 +298,20 @@ public Output fingerprint() { public Output instanceGroup() { return this.instanceGroup; } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Export(name="instanceLifecyclePolicy", type=RegionInstanceGroupManagerInstanceLifecyclePolicy.class, parameters={}) + private Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Output instanceLifecyclePolicy() { + return this.instanceLifecyclePolicy; + } /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java index 2076ae8dbd..f973cba740 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManagerArgs.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerStatefulDiskArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerStatefulExternalIpArgs; @@ -138,6 +139,21 @@ public Optional>> distributionPolicyZones() { return Optional.ofNullable(this.distributionPolicyZones); } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Import(name="instanceLifecyclePolicy") + private @Nullable Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Optional> instanceLifecyclePolicy() { + return Optional.ofNullable(this.instanceLifecyclePolicy); + } + /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -397,6 +413,7 @@ private RegionInstanceGroupManagerArgs(RegionInstanceGroupManagerArgs $) { this.description = $.description; this.distributionPolicyTargetShape = $.distributionPolicyTargetShape; this.distributionPolicyZones = $.distributionPolicyZones; + this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; this.name = $.name; this.namedPorts = $.namedPorts; @@ -590,6 +607,27 @@ public Builder distributionPolicyZones(String... distributionPolicyZones) { return distributionPolicyZones(List.of(distributionPolicyZones)); } + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(@Nullable Output instanceLifecyclePolicy) { + $.instanceLifecyclePolicy = instanceLifecyclePolicy; + return this; + } + + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs instanceLifecyclePolicy) { + return instanceLifecyclePolicy(Output.of(instanceLifecyclePolicy)); + } + /** * @param listManagedInstancesResults Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java index a496542173..0a4cbeced7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java @@ -17,6 +17,16 @@ import javax.annotation.Nullable; /** + * Represents a RegionTargetTcpProxy resource, which is used by one or more + * forwarding rules to route incoming TCP requests to a regional TCP proxy load + * balancer. + * + * To get more information about RegionTargetTcpProxy, see: + * + * * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) + * * ## Example Usage * ### Region Target Tcp Proxy Basic * @@ -33,7 +43,6 @@ * import com.pulumi.gcp.compute.RegionBackendServiceArgs; * import com.pulumi.gcp.compute.RegionTargetTcpProxy; * import com.pulumi.gcp.compute.RegionTargetTcpProxyArgs; - * import com.pulumi.resources.CustomResourceOptions; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -54,9 +63,7 @@ * .tcpHealthCheck(RegionHealthCheckTcpHealthCheckArgs.builder() * .port("80") * .build()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var defaultRegionBackendService = new RegionBackendService("defaultRegionBackendService", RegionBackendServiceArgs.builder() * .protocol("TCP") @@ -64,16 +71,12 @@ * .region("europe-west4") * .healthChecks(defaultRegionHealthCheck.id()) * .loadBalancingScheme("INTERNAL_MANAGED") - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * var defaultRegionTargetTcpProxy = new RegionTargetTcpProxy("defaultRegionTargetTcpProxy", RegionTargetTcpProxyArgs.builder() * .region("europe-west4") * .backendService(defaultRegionBackendService.id()) - * .build(), CustomResourceOptions.builder() - * .provider(google_beta) - * .build()); + * .build()); * * } * } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ExternalVpnGatewayState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ExternalVpnGatewayState.java index 6a943d151d..a1ffa41fe6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ExternalVpnGatewayState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ExternalVpnGatewayState.java @@ -8,6 +8,7 @@ import com.pulumi.gcp.compute.inputs.ExternalVpnGatewayInterfaceArgs; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -49,6 +50,21 @@ public Optional>> interfaces() { return Optional.ofNullable(this.interfaces); } + /** + * Labels for the external VPN gateway resource. + * + */ + @Import(name="labels") + private @Nullable Output> labels; + + /** + * @return Labels for the external VPN gateway resource. + * + */ + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with @@ -130,6 +146,7 @@ private ExternalVpnGatewayState() {} private ExternalVpnGatewayState(ExternalVpnGatewayState $) { this.description = $.description; this.interfaces = $.interfaces; + this.labels = $.labels; this.name = $.name; this.project = $.project; this.redundancyType = $.redundancyType; @@ -209,6 +226,27 @@ public Builder interfaces(ExternalVpnGatewayInterfaceArgs... interfaces) { return interfaces(List.of(interfaces)); } + /** + * @param labels Labels for the external VPN gateway resource. + * + * @return builder + * + */ + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + /** + * @param labels Labels for the external VPN gateway resource. + * + * @return builder + * + */ + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + /** * @param name Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.java new file mode 100644 index 0000000000..3b06155a6e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerInstanceLifecyclePolicyArgs.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class InstanceGroupManagerInstanceLifecyclePolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final InstanceGroupManagerInstanceLifecyclePolicyArgs Empty = new InstanceGroupManagerInstanceLifecyclePolicyArgs(); + + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + */ + @Import(name="forceUpdateOnRepair") + private @Nullable Output forceUpdateOnRepair; + + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + */ + public Optional> forceUpdateOnRepair() { + return Optional.ofNullable(this.forceUpdateOnRepair); + } + + private InstanceGroupManagerInstanceLifecyclePolicyArgs() {} + + private InstanceGroupManagerInstanceLifecyclePolicyArgs(InstanceGroupManagerInstanceLifecyclePolicyArgs $) { + this.forceUpdateOnRepair = $.forceUpdateOnRepair; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceGroupManagerInstanceLifecyclePolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceGroupManagerInstanceLifecyclePolicyArgs $; + + public Builder() { + $ = new InstanceGroupManagerInstanceLifecyclePolicyArgs(); + } + + public Builder(InstanceGroupManagerInstanceLifecyclePolicyArgs defaults) { + $ = new InstanceGroupManagerInstanceLifecyclePolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param forceUpdateOnRepair ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + * @return builder + * + */ + public Builder forceUpdateOnRepair(@Nullable Output forceUpdateOnRepair) { + $.forceUpdateOnRepair = forceUpdateOnRepair; + return this; + } + + /** + * @param forceUpdateOnRepair ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + * @return builder + * + */ + public Builder forceUpdateOnRepair(String forceUpdateOnRepair) { + return forceUpdateOnRepair(Output.of(forceUpdateOnRepair)); + } + + public InstanceGroupManagerInstanceLifecyclePolicyArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerState.java index 2fd9b0b3ed..eec32b9412 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceGroupManagerState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerStatefulDiskArgs; import com.pulumi.gcp.compute.inputs.InstanceGroupManagerStatefulExternalIpArgs; @@ -137,6 +138,21 @@ public Optional> instanceGroup() { return Optional.ofNullable(this.instanceGroup); } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Import(name="instanceLifecyclePolicy") + private @Nullable Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Optional> instanceLifecyclePolicy() { + return Optional.ofNullable(this.instanceLifecyclePolicy); + } + /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -435,6 +451,7 @@ private InstanceGroupManagerState(InstanceGroupManagerState $) { this.description = $.description; this.fingerprint = $.fingerprint; this.instanceGroup = $.instanceGroup; + this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; this.name = $.name; this.namedPorts = $.namedPorts; @@ -618,6 +635,27 @@ public Builder instanceGroup(String instanceGroup) { return instanceGroup(Output.of(instanceGroup)); } + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(@Nullable Output instanceLifecyclePolicy) { + $.instanceLifecyclePolicy = instanceLifecyclePolicy; + return this; + } + + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(InstanceGroupManagerInstanceLifecyclePolicyArgs instanceLifecyclePolicy) { + return instanceLifecyclePolicy(Output.of(instanceLifecyclePolicy)); + } + /** * @param listManagedInstancesResults Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceTemplateState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceTemplateState.java index 7d0c74caac..6545369aa3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceTemplateState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceTemplateState.java @@ -396,6 +396,21 @@ public Optional> reservationAffi return Optional.ofNullable(this.reservationAffinity); } + /** + * - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + @Import(name="resourcePolicies") + private @Nullable Output resourcePolicies; + + /** + * @return - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + */ + public Optional> resourcePolicies() { + return Optional.ofNullable(this.resourcePolicies); + } + /** * The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -514,6 +529,7 @@ private InstanceTemplateState(InstanceTemplateState $) { this.project = $.project; this.region = $.region; this.reservationAffinity = $.reservationAffinity; + this.resourcePolicies = $.resourcePolicies; this.scheduling = $.scheduling; this.selfLink = $.selfLink; this.serviceAccount = $.serviceAccount; @@ -1067,6 +1083,27 @@ public Builder reservationAffinity(InstanceTemplateReservationAffinityArgs reser return reservationAffinity(Output.of(reservationAffinity)); } + /** + * @param resourcePolicies - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + * @return builder + * + */ + public Builder resourcePolicies(@Nullable Output resourcePolicies) { + $.resourcePolicies = resourcePolicies; + return this; + } + + /** + * @param resourcePolicies - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + * + * @return builder + * + */ + public Builder resourcePolicies(String resourcePolicies) { + return resourcePolicies(Output.of(resourcePolicies)); + } + /** * @param scheduling The scheduling strategy to use. More details about * this configuration option are detailed below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NetworkState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NetworkState.java index 852d53aee6..e67ad7db9b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NetworkState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/NetworkState.java @@ -132,16 +132,22 @@ public Optional> internalIpv6Range() { } /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ @Import(name="mtu") private @Nullable Output mtu; /** - * @return Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @return Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * */ public Optional> mtu() { @@ -417,8 +423,11 @@ public Builder internalIpv6Range(String internalIpv6Range) { } /** - * @param mtu Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @param mtu Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * * @return builder * @@ -429,8 +438,11 @@ public Builder mtu(@Nullable Output mtu) { } /** - * @param mtu Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * @param mtu Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java new file mode 100644 index 0000000000..77412f34a6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerInstanceLifecyclePolicyArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final RegionInstanceGroupManagerInstanceLifecyclePolicyArgs Empty = new RegionInstanceGroupManagerInstanceLifecyclePolicyArgs(); + + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + */ + @Import(name="forceUpdateOnRepair") + private @Nullable Output forceUpdateOnRepair; + + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + */ + public Optional> forceUpdateOnRepair() { + return Optional.ofNullable(this.forceUpdateOnRepair); + } + + private RegionInstanceGroupManagerInstanceLifecyclePolicyArgs() {} + + private RegionInstanceGroupManagerInstanceLifecyclePolicyArgs(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs $) { + this.forceUpdateOnRepair = $.forceUpdateOnRepair; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RegionInstanceGroupManagerInstanceLifecyclePolicyArgs $; + + public Builder() { + $ = new RegionInstanceGroupManagerInstanceLifecyclePolicyArgs(); + } + + public Builder(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs defaults) { + $ = new RegionInstanceGroupManagerInstanceLifecyclePolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param forceUpdateOnRepair ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + * @return builder + * + */ + public Builder forceUpdateOnRepair(@Nullable Output forceUpdateOnRepair) { + $.forceUpdateOnRepair = forceUpdateOnRepair; + return this; + } + + /** + * @param forceUpdateOnRepair ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + * @return builder + * + */ + public Builder forceUpdateOnRepair(String forceUpdateOnRepair) { + return forceUpdateOnRepair(Output.of(forceUpdateOnRepair)); + } + + public RegionInstanceGroupManagerInstanceLifecyclePolicyArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java index 65aa7901f3..71f6bd976e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RegionInstanceGroupManagerState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAllInstancesConfigArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerAutoHealingPoliciesArgs; +import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerInstanceLifecyclePolicyArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerNamedPortArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerStatefulDiskArgs; import com.pulumi.gcp.compute.inputs.RegionInstanceGroupManagerStatefulExternalIpArgs; @@ -169,6 +170,21 @@ public Optional> instanceGroup() { return Optional.ofNullable(this.instanceGroup); } + /** + * The instance lifecycle policy for this managed instance group. + * + */ + @Import(name="instanceLifecyclePolicy") + private @Nullable Output instanceLifecyclePolicy; + + /** + * @return The instance lifecycle policy for this managed instance group. + * + */ + public Optional> instanceLifecyclePolicy() { + return Optional.ofNullable(this.instanceLifecyclePolicy); + } + /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -460,6 +476,7 @@ private RegionInstanceGroupManagerState(RegionInstanceGroupManagerState $) { this.distributionPolicyZones = $.distributionPolicyZones; this.fingerprint = $.fingerprint; this.instanceGroup = $.instanceGroup; + this.instanceLifecyclePolicy = $.instanceLifecyclePolicy; this.listManagedInstancesResults = $.listManagedInstancesResults; this.name = $.name; this.namedPorts = $.namedPorts; @@ -697,6 +714,27 @@ public Builder instanceGroup(String instanceGroup) { return instanceGroup(Output.of(instanceGroup)); } + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(@Nullable Output instanceLifecyclePolicy) { + $.instanceLifecyclePolicy = instanceLifecyclePolicy; + return this; + } + + /** + * @param instanceLifecyclePolicy The instance lifecycle policy for this managed instance group. + * + * @return builder + * + */ + public Builder instanceLifecyclePolicy(RegionInstanceGroupManagerInstanceLifecyclePolicyArgs instanceLifecyclePolicy) { + return instanceLifecyclePolicy(Output.of(instanceLifecyclePolicy)); + } + /** * @param listManagedInstancesResults Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerInstanceLifecyclePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerInstanceLifecyclePolicy.java new file mode 100644 index 0000000000..f5059b2116 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerInstanceLifecyclePolicy.java @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetInstanceGroupManagerInstanceLifecyclePolicy { + private String forceUpdateOnRepair; + + private GetInstanceGroupManagerInstanceLifecyclePolicy() {} + public String forceUpdateOnRepair() { + return this.forceUpdateOnRepair; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetInstanceGroupManagerInstanceLifecyclePolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String forceUpdateOnRepair; + public Builder() {} + public Builder(GetInstanceGroupManagerInstanceLifecyclePolicy defaults) { + Objects.requireNonNull(defaults); + this.forceUpdateOnRepair = defaults.forceUpdateOnRepair; + } + + @CustomType.Setter + public Builder forceUpdateOnRepair(String forceUpdateOnRepair) { + this.forceUpdateOnRepair = Objects.requireNonNull(forceUpdateOnRepair); + return this; + } + public GetInstanceGroupManagerInstanceLifecyclePolicy build() { + final var o = new GetInstanceGroupManagerInstanceLifecyclePolicy(); + o.forceUpdateOnRepair = forceUpdateOnRepair; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerResult.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerResult.java index 2f67e25f15..dcc2867283 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceGroupManagerResult.java @@ -6,6 +6,7 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerAllInstancesConfig; import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerAutoHealingPolicy; +import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerInstanceLifecyclePolicy; import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerNamedPort; import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerStatefulDisk; import com.pulumi.gcp.compute.outputs.GetInstanceGroupManagerStatefulExternalIp; @@ -34,6 +35,7 @@ public final class GetInstanceGroupManagerResult { */ private String id; private String instanceGroup; + private List instanceLifecyclePolicies; private String listManagedInstancesResults; private @Nullable String name; private List namedPorts; @@ -78,6 +80,9 @@ public String id() { public String instanceGroup() { return this.instanceGroup; } + public List instanceLifecyclePolicies() { + return this.instanceLifecyclePolicies; + } public String listManagedInstancesResults() { return this.listManagedInstancesResults; } @@ -146,6 +151,7 @@ public static final class Builder { private String fingerprint; private String id; private String instanceGroup; + private List instanceLifecyclePolicies; private String listManagedInstancesResults; private @Nullable String name; private List namedPorts; @@ -173,6 +179,7 @@ public Builder(GetInstanceGroupManagerResult defaults) { this.fingerprint = defaults.fingerprint; this.id = defaults.id; this.instanceGroup = defaults.instanceGroup; + this.instanceLifecyclePolicies = defaults.instanceLifecyclePolicies; this.listManagedInstancesResults = defaults.listManagedInstancesResults; this.name = defaults.name; this.namedPorts = defaults.namedPorts; @@ -234,6 +241,14 @@ public Builder instanceGroup(String instanceGroup) { return this; } @CustomType.Setter + public Builder instanceLifecyclePolicies(List instanceLifecyclePolicies) { + this.instanceLifecyclePolicies = Objects.requireNonNull(instanceLifecyclePolicies); + return this; + } + public Builder instanceLifecyclePolicies(GetInstanceGroupManagerInstanceLifecyclePolicy... instanceLifecyclePolicies) { + return instanceLifecyclePolicies(List.of(instanceLifecyclePolicies)); + } + @CustomType.Setter public Builder listManagedInstancesResults(String listManagedInstancesResults) { this.listManagedInstancesResults = Objects.requireNonNull(listManagedInstancesResults); return this; @@ -351,6 +366,7 @@ public GetInstanceGroupManagerResult build() { o.fingerprint = fingerprint; o.id = id; o.instanceGroup = instanceGroup; + o.instanceLifecyclePolicies = instanceLifecyclePolicies; o.listManagedInstancesResults = listManagedInstancesResults; o.name = name; o.namedPorts = namedPorts; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceTemplateResult.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceTemplateResult.java index 0e020bc415..12e99fbd06 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceTemplateResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceTemplateResult.java @@ -146,6 +146,11 @@ public final class GetInstanceTemplateResult { */ private String region; private List reservationAffinities; + /** + * @return (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + * + */ + private List resourcePolicies; /** * @return The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -349,6 +354,13 @@ public String region() { public List reservationAffinities() { return this.reservationAffinities; } + /** + * @return (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + * + */ + public List resourcePolicies() { + return this.resourcePolicies; + } /** * @return The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -427,6 +439,7 @@ public static final class Builder { private @Nullable String project; private String region; private List reservationAffinities; + private List resourcePolicies; private List schedulings; private String selfLink; private List serviceAccounts; @@ -460,6 +473,7 @@ public Builder(GetInstanceTemplateResult defaults) { this.project = defaults.project; this.region = defaults.region; this.reservationAffinities = defaults.reservationAffinities; + this.resourcePolicies = defaults.resourcePolicies; this.schedulings = defaults.schedulings; this.selfLink = defaults.selfLink; this.serviceAccounts = defaults.serviceAccounts; @@ -610,6 +624,14 @@ public Builder reservationAffinities(GetInstanceTemplateReservationAffinity... r return reservationAffinities(List.of(reservationAffinities)); } @CustomType.Setter + public Builder resourcePolicies(List resourcePolicies) { + this.resourcePolicies = Objects.requireNonNull(resourcePolicies); + return this; + } + public Builder resourcePolicies(String... resourcePolicies) { + return resourcePolicies(List.of(resourcePolicies)); + } + @CustomType.Setter public Builder schedulings(List schedulings) { this.schedulings = Objects.requireNonNull(schedulings); return this; @@ -677,6 +699,7 @@ public GetInstanceTemplateResult build() { o.project = project; o.region = region; o.reservationAffinities = reservationAffinities; + o.resourcePolicies = resourcePolicies; o.schedulings = schedulings; o.selfLink = selfLink; o.serviceAccounts = serviceAccounts; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceGroupManagerInstanceLifecyclePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceGroupManagerInstanceLifecyclePolicy.java new file mode 100644 index 0000000000..581b14cad5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceGroupManagerInstanceLifecyclePolicy.java @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class InstanceGroupManagerInstanceLifecyclePolicy { + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + */ + private @Nullable String forceUpdateOnRepair; + + private InstanceGroupManagerInstanceLifecyclePolicy() {} + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + * + */ + public Optional forceUpdateOnRepair() { + return Optional.ofNullable(this.forceUpdateOnRepair); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(InstanceGroupManagerInstanceLifecyclePolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String forceUpdateOnRepair; + public Builder() {} + public Builder(InstanceGroupManagerInstanceLifecyclePolicy defaults) { + Objects.requireNonNull(defaults); + this.forceUpdateOnRepair = defaults.forceUpdateOnRepair; + } + + @CustomType.Setter + public Builder forceUpdateOnRepair(@Nullable String forceUpdateOnRepair) { + this.forceUpdateOnRepair = forceUpdateOnRepair; + return this; + } + public InstanceGroupManagerInstanceLifecyclePolicy build() { + final var o = new InstanceGroupManagerInstanceLifecyclePolicy(); + o.forceUpdateOnRepair = forceUpdateOnRepair; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java new file mode 100644 index 0000000000..e345f58256 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RegionInstanceGroupManagerInstanceLifecyclePolicy.java @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RegionInstanceGroupManagerInstanceLifecyclePolicy { + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + */ + private @Nullable String forceUpdateOnRepair; + + private RegionInstanceGroupManagerInstanceLifecyclePolicy() {} + /** + * @return ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * *** + * + */ + public Optional forceUpdateOnRepair() { + return Optional.ofNullable(this.forceUpdateOnRepair); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RegionInstanceGroupManagerInstanceLifecyclePolicy defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String forceUpdateOnRepair; + public Builder() {} + public Builder(RegionInstanceGroupManagerInstanceLifecyclePolicy defaults) { + Objects.requireNonNull(defaults); + this.forceUpdateOnRepair = defaults.forceUpdateOnRepair; + } + + @CustomType.Setter + public Builder forceUpdateOnRepair(@Nullable String forceUpdateOnRepair) { + this.forceUpdateOnRepair = forceUpdateOnRepair; + return this; + } + public RegionInstanceGroupManagerInstanceLifecyclePolicy build() { + final var o = new RegionInstanceGroupManagerInstanceLifecyclePolicy(); + o.forceUpdateOnRepair = forceUpdateOnRepair; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java index dfc5141d56..a56a2dc37b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java @@ -52,7 +52,6 @@ * * public static void stack(Context ctx) { * var basicInstance = new Instance("basicInstance", InstanceArgs.builder() - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("BASIC") * .build()); @@ -118,7 +117,6 @@ * return String.format("%s/%s", address,prefixLength); * })) * .build()) - * .options(Map.of("prober_test_run", "true")) * .build()); * * } @@ -209,7 +207,6 @@ * public static void stack(Context ctx) { * var enterpriseInstance = new Instance("enterpriseInstance", InstanceArgs.builder() * .enableRbac(true) - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("ENTERPRISE") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java index 9b6772ac39..a90e2e8cb0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java @@ -264,6 +264,247 @@ * } * } * ``` + * ### Datastream Stream Postgresql + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.datastream.ConnectionProfile; + * import com.pulumi.gcp.datastream.ConnectionProfileArgs; + * import com.pulumi.gcp.datastream.inputs.ConnectionProfilePostgresqlProfileArgs; + * import com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs; + * import com.pulumi.gcp.datastream.Stream; + * import com.pulumi.gcp.datastream.StreamArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs; + * import com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs; + * import com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var source = new ConnectionProfile("source", ConnectionProfileArgs.builder() + * .displayName("Postgresql Source") + * .location("us-central1") + * .connectionProfileId("source-profile") + * .postgresqlProfile(ConnectionProfilePostgresqlProfileArgs.builder() + * .hostname("hostname") + * .port(3306) + * .username("user") + * .password("pass") + * .database("postgres") + * .build()) + * .build()); + * + * var destination = new ConnectionProfile("destination", ConnectionProfileArgs.builder() + * .displayName("BigQuery Destination") + * .location("us-central1") + * .connectionProfileId("destination-profile") + * .bigqueryProfile() + * .build()); + * + * var default_ = new Stream("default", StreamArgs.builder() + * .displayName("Postgres to BigQuery") + * .location("us-central1") + * .streamId("my-stream") + * .desiredState("RUNNING") + * .sourceConfig(StreamSourceConfigArgs.builder() + * .sourceConnectionProfile(source.id()) + * .postgresqlSourceConfig(StreamSourceConfigPostgresqlSourceConfigArgs.builder() + * .maxConcurrentBackfillTasks(12) + * .publication("publication") + * .replicationSlot("replication_slot") + * .includeObjects(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.builder() + * .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.builder() + * .schema("schema") + * .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder() + * .table("table") + * .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .excludeObjects(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.builder() + * .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.builder() + * .schema("schema") + * .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder() + * .table("table") + * .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .build()) + * .build()) + * .destinationConfig(StreamDestinationConfigArgs.builder() + * .destinationConnectionProfile(destination.id()) + * .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder() + * .dataFreshness("900s") + * .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder() + * .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder() + * .location("us-central1") + * .build()) + * .build()) + * .build()) + * .build()) + * .backfillAll(StreamBackfillAllArgs.builder() + * .postgresqlExcludedObjects(StreamBackfillAllPostgresqlExcludedObjectsArgs.builder() + * .postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.builder() + * .schema("schema") + * .postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.builder() + * .table("table") + * .postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` + * ### Datastream Stream Oracle + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.datastream.ConnectionProfile; + * import com.pulumi.gcp.datastream.ConnectionProfileArgs; + * import com.pulumi.gcp.datastream.inputs.ConnectionProfileOracleProfileArgs; + * import com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs; + * import com.pulumi.gcp.datastream.Stream; + * import com.pulumi.gcp.datastream.StreamArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs; + * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs; + * import com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs; + * import com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var source = new ConnectionProfile("source", ConnectionProfileArgs.builder() + * .displayName("Oracle Source") + * .location("us-central1") + * .connectionProfileId("source-profile") + * .oracleProfile(ConnectionProfileOracleProfileArgs.builder() + * .hostname("hostname") + * .port(1521) + * .username("user") + * .password("pass") + * .databaseService("ORCL") + * .build()) + * .build()); + * + * var destination = new ConnectionProfile("destination", ConnectionProfileArgs.builder() + * .displayName("BigQuery Destination") + * .location("us-central1") + * .connectionProfileId("destination-profile") + * .bigqueryProfile() + * .build()); + * + * var stream5 = new Stream("stream5", StreamArgs.builder() + * .displayName("Oracle to BigQuery") + * .location("us-central1") + * .streamId("my-stream") + * .desiredState("RUNNING") + * .sourceConfig(StreamSourceConfigArgs.builder() + * .sourceConnectionProfile(source.id()) + * .oracleSourceConfig(StreamSourceConfigOracleSourceConfigArgs.builder() + * .maxConcurrentCdcTasks(8) + * .maxConcurrentBackfillTasks(12) + * .includeObjects(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.builder() + * .oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.builder() + * .schema("schema") + * .oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.builder() + * .table("table") + * .oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .excludeObjects(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.builder() + * .oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.builder() + * .schema("schema") + * .oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.builder() + * .table("table") + * .oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .dropLargeObjects() + * .build()) + * .build()) + * .destinationConfig(StreamDestinationConfigArgs.builder() + * .destinationConnectionProfile(destination.id()) + * .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder() + * .dataFreshness("900s") + * .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder() + * .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder() + * .location("us-central1") + * .build()) + * .build()) + * .build()) + * .build()) + * .backfillAll(StreamBackfillAllArgs.builder() + * .oracleExcludedObjects(StreamBackfillAllOracleExcludedObjectsArgs.builder() + * .oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.builder() + * .schema("schema") + * .oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.builder() + * .table("table") + * .oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.builder() + * .column("column") + * .build()) + * .build()) + * .build()) + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` * ### Datastream Stream Bigquery * ```java * package generated_program; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllArgs.java index 976277bf53..56249ac726 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllArgs.java @@ -6,6 +6,8 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.datastream.inputs.StreamBackfillAllMysqlExcludedObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -32,10 +34,46 @@ public Optional> mysqlExcluded return Optional.ofNullable(this.mysqlExcludedObjects); } + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + @Import(name="oracleExcludedObjects") + private @Nullable Output oracleExcludedObjects; + + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + public Optional> oracleExcludedObjects() { + return Optional.ofNullable(this.oracleExcludedObjects); + } + + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + @Import(name="postgresqlExcludedObjects") + private @Nullable Output postgresqlExcludedObjects; + + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + public Optional> postgresqlExcludedObjects() { + return Optional.ofNullable(this.postgresqlExcludedObjects); + } + private StreamBackfillAllArgs() {} private StreamBackfillAllArgs(StreamBackfillAllArgs $) { this.mysqlExcludedObjects = $.mysqlExcludedObjects; + this.oracleExcludedObjects = $.oracleExcludedObjects; + this.postgresqlExcludedObjects = $.postgresqlExcludedObjects; } public static Builder builder() { @@ -79,6 +117,52 @@ public Builder mysqlExcludedObjects(StreamBackfillAllMysqlExcludedObjectsArgs my return mysqlExcludedObjects(Output.of(mysqlExcludedObjects)); } + /** + * @param oracleExcludedObjects PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleExcludedObjects(@Nullable Output oracleExcludedObjects) { + $.oracleExcludedObjects = oracleExcludedObjects; + return this; + } + + /** + * @param oracleExcludedObjects PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleExcludedObjects(StreamBackfillAllOracleExcludedObjectsArgs oracleExcludedObjects) { + return oracleExcludedObjects(Output.of(oracleExcludedObjects)); + } + + /** + * @param postgresqlExcludedObjects PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlExcludedObjects(@Nullable Output postgresqlExcludedObjects) { + $.postgresqlExcludedObjects = postgresqlExcludedObjects; + return this; + } + + /** + * @param postgresqlExcludedObjects PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlExcludedObjects(StreamBackfillAllPostgresqlExcludedObjectsArgs postgresqlExcludedObjects) { + return postgresqlExcludedObjects(Output.of(postgresqlExcludedObjects)); + } + public StreamBackfillAllArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsArgs.java new file mode 100644 index 0000000000..acd8da5d8e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamBackfillAllOracleExcludedObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllOracleExcludedObjectsArgs Empty = new StreamBackfillAllOracleExcludedObjectsArgs(); + + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + @Import(name="oracleSchemas", required=true) + private Output> oracleSchemas; + + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public Output> oracleSchemas() { + return this.oracleSchemas; + } + + private StreamBackfillAllOracleExcludedObjectsArgs() {} + + private StreamBackfillAllOracleExcludedObjectsArgs(StreamBackfillAllOracleExcludedObjectsArgs $) { + this.oracleSchemas = $.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllOracleExcludedObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllOracleExcludedObjectsArgs $; + + public Builder() { + $ = new StreamBackfillAllOracleExcludedObjectsArgs(); + } + + public Builder(StreamBackfillAllOracleExcludedObjectsArgs defaults) { + $ = new StreamBackfillAllOracleExcludedObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(Output> oracleSchemas) { + $.oracleSchemas = oracleSchemas; + return this; + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(List oracleSchemas) { + return oracleSchemas(Output.of(oracleSchemas)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + + public StreamBackfillAllOracleExcludedObjectsArgs build() { + $.oracleSchemas = Objects.requireNonNull($.oracleSchemas, "expected parameter 'oracleSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.java new file mode 100644 index 0000000000..74ad480fd2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs Empty = new StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(); + + /** + * Tables in the database. + * Structure is documented below. + * + */ + @Import(name="oracleTables") + private @Nullable Output> oracleTables; + + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public Optional>> oracleTables() { + return Optional.ofNullable(this.oracleTables); + } + + /** + * Schema name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Schema name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs() {} + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs $) { + this.oracleTables = $.oracleTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs $; + + public Builder() { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(); + } + + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs defaults) { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(@Nullable Output> oracleTables) { + $.oracleTables = oracleTables; + return this; + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(List oracleTables) { + return oracleTables(Output.of(oracleTables)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.java new file mode 100644 index 0000000000..b1a15d57fe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs Empty = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(); + + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="oracleColumns") + private @Nullable Output> oracleColumns; + + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> oracleColumns() { + return Optional.ofNullable(this.oracleColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs() {} + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs $) { + this.oracleColumns = $.oracleColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs $; + + public Builder() { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(); + } + + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs defaults) { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(@Nullable Output> oracleColumns) { + $.oracleColumns = oracleColumns; + return this; + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(List oracleColumns) { + return oracleColumns(Output.of(oracleColumns)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.java new file mode 100644 index 0000000000..cd7663b68d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.java @@ -0,0 +1,385 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs Empty = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column encoding. + * + */ + @Import(name="encoding") + private @Nullable Output encoding; + + /** + * @return Column encoding. + * + */ + public Optional> encoding() { + return Optional.ofNullable(this.encoding); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs() {} + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.encoding = $.encoding; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs $; + + public Builder() { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(); + } + + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + $ = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(@Nullable Output encoding) { + $.encoding = encoding; + return this; + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(String encoding) { + return encoding(Output.of(encoding)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.java new file mode 100644 index 0000000000..acbab06d65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamBackfillAllPostgresqlExcludedObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllPostgresqlExcludedObjectsArgs Empty = new StreamBackfillAllPostgresqlExcludedObjectsArgs(); + + /** + * PostgreSQL schemas on the server + * Structure is documented below. + * + */ + @Import(name="postgresqlSchemas", required=true) + private Output> postgresqlSchemas; + + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public Output> postgresqlSchemas() { + return this.postgresqlSchemas; + } + + private StreamBackfillAllPostgresqlExcludedObjectsArgs() {} + + private StreamBackfillAllPostgresqlExcludedObjectsArgs(StreamBackfillAllPostgresqlExcludedObjectsArgs $) { + this.postgresqlSchemas = $.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllPostgresqlExcludedObjectsArgs $; + + public Builder() { + $ = new StreamBackfillAllPostgresqlExcludedObjectsArgs(); + } + + public Builder(StreamBackfillAllPostgresqlExcludedObjectsArgs defaults) { + $ = new StreamBackfillAllPostgresqlExcludedObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(Output> postgresqlSchemas) { + $.postgresqlSchemas = postgresqlSchemas; + return this; + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(List postgresqlSchemas) { + return postgresqlSchemas(Output.of(postgresqlSchemas)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + + public StreamBackfillAllPostgresqlExcludedObjectsArgs build() { + $.postgresqlSchemas = Objects.requireNonNull($.postgresqlSchemas, "expected parameter 'postgresqlSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.java new file mode 100644 index 0000000000..ad1da2553e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs Empty = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(); + + /** + * Tables in the schema. + * Structure is documented below. + * + */ + @Import(name="postgresqlTables") + private @Nullable Output> postgresqlTables; + + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public Optional>> postgresqlTables() { + return Optional.ofNullable(this.postgresqlTables); + } + + /** + * Database name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Database name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs() {} + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs $) { + this.postgresqlTables = $.postgresqlTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs $; + + public Builder() { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(); + } + + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs defaults) { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(@Nullable Output> postgresqlTables) { + $.postgresqlTables = postgresqlTables; + return this; + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(List postgresqlTables) { + return postgresqlTables(Output.of(postgresqlTables)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.java new file mode 100644 index 0000000000..c4a3b7ada9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs Empty = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(); + + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="postgresqlColumns") + private @Nullable Output> postgresqlColumns; + + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> postgresqlColumns() { + return Optional.ofNullable(this.postgresqlColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs() {} + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs $) { + this.postgresqlColumns = $.postgresqlColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs $; + + public Builder() { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(); + } + + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(@Nullable Output> postgresqlColumns) { + $.postgresqlColumns = postgresqlColumns; + return this; + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(List postgresqlColumns) { + return postgresqlColumns(Output.of(postgresqlColumns)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java new file mode 100644 index 0000000000..358da86a5b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java @@ -0,0 +1,348 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() {} + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $; + + public Builder() { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } + + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + $ = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigArgs.java index cf283b773c..79b67980ce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigArgs.java @@ -6,8 +6,12 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigArgs; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class StreamSourceConfigArgs extends com.pulumi.resources.ResourceArgs { @@ -19,16 +23,50 @@ public final class StreamSourceConfigArgs extends com.pulumi.resources.ResourceA * Structure is documented below. * */ - @Import(name="mysqlSourceConfig", required=true) - private Output mysqlSourceConfig; + @Import(name="mysqlSourceConfig") + private @Nullable Output mysqlSourceConfig; /** * @return MySQL data source configuration. * Structure is documented below. * */ - public Output mysqlSourceConfig() { - return this.mysqlSourceConfig; + public Optional> mysqlSourceConfig() { + return Optional.ofNullable(this.mysqlSourceConfig); + } + + /** + * MySQL data source configuration. + * Structure is documented below. + * + */ + @Import(name="oracleSourceConfig") + private @Nullable Output oracleSourceConfig; + + /** + * @return MySQL data source configuration. + * Structure is documented below. + * + */ + public Optional> oracleSourceConfig() { + return Optional.ofNullable(this.oracleSourceConfig); + } + + /** + * PostgreSQL data source configuration. + * Structure is documented below. + * + */ + @Import(name="postgresqlSourceConfig") + private @Nullable Output postgresqlSourceConfig; + + /** + * @return PostgreSQL data source configuration. + * Structure is documented below. + * + */ + public Optional> postgresqlSourceConfig() { + return Optional.ofNullable(this.postgresqlSourceConfig); } /** @@ -50,6 +88,8 @@ private StreamSourceConfigArgs() {} private StreamSourceConfigArgs(StreamSourceConfigArgs $) { this.mysqlSourceConfig = $.mysqlSourceConfig; + this.oracleSourceConfig = $.oracleSourceConfig; + this.postgresqlSourceConfig = $.postgresqlSourceConfig; this.sourceConnectionProfile = $.sourceConnectionProfile; } @@ -78,7 +118,7 @@ public Builder(StreamSourceConfigArgs defaults) { * @return builder * */ - public Builder mysqlSourceConfig(Output mysqlSourceConfig) { + public Builder mysqlSourceConfig(@Nullable Output mysqlSourceConfig) { $.mysqlSourceConfig = mysqlSourceConfig; return this; } @@ -94,6 +134,52 @@ public Builder mysqlSourceConfig(StreamSourceConfigMysqlSourceConfigArgs mysqlSo return mysqlSourceConfig(Output.of(mysqlSourceConfig)); } + /** + * @param oracleSourceConfig MySQL data source configuration. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSourceConfig(@Nullable Output oracleSourceConfig) { + $.oracleSourceConfig = oracleSourceConfig; + return this; + } + + /** + * @param oracleSourceConfig MySQL data source configuration. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSourceConfig(StreamSourceConfigOracleSourceConfigArgs oracleSourceConfig) { + return oracleSourceConfig(Output.of(oracleSourceConfig)); + } + + /** + * @param postgresqlSourceConfig PostgreSQL data source configuration. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSourceConfig(@Nullable Output postgresqlSourceConfig) { + $.postgresqlSourceConfig = postgresqlSourceConfig; + return this; + } + + /** + * @param postgresqlSourceConfig PostgreSQL data source configuration. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSourceConfig(StreamSourceConfigPostgresqlSourceConfigArgs postgresqlSourceConfig) { + return postgresqlSourceConfig(Output.of(postgresqlSourceConfig)); + } + /** * @param sourceConnectionProfile Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} * @@ -116,7 +202,6 @@ public Builder sourceConnectionProfile(String sourceConnectionProfile) { } public StreamSourceConfigArgs build() { - $.mysqlSourceConfig = Objects.requireNonNull($.mysqlSourceConfig, "expected parameter 'mysqlSourceConfig' to be non-null"); $.sourceConnectionProfile = Objects.requireNonNull($.sourceConnectionProfile, "expected parameter 'sourceConnectionProfile' to be non-null"); return $; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigArgs.java new file mode 100644 index 0000000000..0720d02768 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigArgs.java @@ -0,0 +1,288 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigArgs Empty = new StreamSourceConfigOracleSourceConfigArgs(); + + /** + * Configuration to drop large object values. + * + */ + @Import(name="dropLargeObjects") + private @Nullable Output dropLargeObjects; + + /** + * @return Configuration to drop large object values. + * + */ + public Optional> dropLargeObjects() { + return Optional.ofNullable(this.dropLargeObjects); + } + + /** + * Oracle objects to exclude from the stream. + * Structure is documented below. + * + */ + @Import(name="excludeObjects") + private @Nullable Output excludeObjects; + + /** + * @return Oracle objects to exclude from the stream. + * Structure is documented below. + * + */ + public Optional> excludeObjects() { + return Optional.ofNullable(this.excludeObjects); + } + + /** + * Oracle objects to retrieve from the source. + * Structure is documented below. + * + */ + @Import(name="includeObjects") + private @Nullable Output includeObjects; + + /** + * @return Oracle objects to retrieve from the source. + * Structure is documented below. + * + */ + public Optional> includeObjects() { + return Optional.ofNullable(this.includeObjects); + } + + /** + * Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + @Import(name="maxConcurrentBackfillTasks") + private @Nullable Output maxConcurrentBackfillTasks; + + /** + * @return Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + public Optional> maxConcurrentBackfillTasks() { + return Optional.ofNullable(this.maxConcurrentBackfillTasks); + } + + /** + * Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + @Import(name="maxConcurrentCdcTasks") + private @Nullable Output maxConcurrentCdcTasks; + + /** + * @return Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + public Optional> maxConcurrentCdcTasks() { + return Optional.ofNullable(this.maxConcurrentCdcTasks); + } + + /** + * Configuration to drop large object values. + * + */ + @Import(name="streamLargeObjects") + private @Nullable Output streamLargeObjects; + + /** + * @return Configuration to drop large object values. + * + */ + public Optional> streamLargeObjects() { + return Optional.ofNullable(this.streamLargeObjects); + } + + private StreamSourceConfigOracleSourceConfigArgs() {} + + private StreamSourceConfigOracleSourceConfigArgs(StreamSourceConfigOracleSourceConfigArgs $) { + this.dropLargeObjects = $.dropLargeObjects; + this.excludeObjects = $.excludeObjects; + this.includeObjects = $.includeObjects; + this.maxConcurrentBackfillTasks = $.maxConcurrentBackfillTasks; + this.maxConcurrentCdcTasks = $.maxConcurrentCdcTasks; + this.streamLargeObjects = $.streamLargeObjects; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dropLargeObjects Configuration to drop large object values. + * + * @return builder + * + */ + public Builder dropLargeObjects(@Nullable Output dropLargeObjects) { + $.dropLargeObjects = dropLargeObjects; + return this; + } + + /** + * @param dropLargeObjects Configuration to drop large object values. + * + * @return builder + * + */ + public Builder dropLargeObjects(StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs dropLargeObjects) { + return dropLargeObjects(Output.of(dropLargeObjects)); + } + + /** + * @param excludeObjects Oracle objects to exclude from the stream. + * Structure is documented below. + * + * @return builder + * + */ + public Builder excludeObjects(@Nullable Output excludeObjects) { + $.excludeObjects = excludeObjects; + return this; + } + + /** + * @param excludeObjects Oracle objects to exclude from the stream. + * Structure is documented below. + * + * @return builder + * + */ + public Builder excludeObjects(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs excludeObjects) { + return excludeObjects(Output.of(excludeObjects)); + } + + /** + * @param includeObjects Oracle objects to retrieve from the source. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeObjects(@Nullable Output includeObjects) { + $.includeObjects = includeObjects; + return this; + } + + /** + * @param includeObjects Oracle objects to retrieve from the source. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeObjects(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs includeObjects) { + return includeObjects(Output.of(includeObjects)); + } + + /** + * @param maxConcurrentBackfillTasks Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentBackfillTasks(@Nullable Output maxConcurrentBackfillTasks) { + $.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + return this; + } + + /** + * @param maxConcurrentBackfillTasks Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentBackfillTasks(Integer maxConcurrentBackfillTasks) { + return maxConcurrentBackfillTasks(Output.of(maxConcurrentBackfillTasks)); + } + + /** + * @param maxConcurrentCdcTasks Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentCdcTasks(@Nullable Output maxConcurrentCdcTasks) { + $.maxConcurrentCdcTasks = maxConcurrentCdcTasks; + return this; + } + + /** + * @param maxConcurrentCdcTasks Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentCdcTasks(Integer maxConcurrentCdcTasks) { + return maxConcurrentCdcTasks(Output.of(maxConcurrentCdcTasks)); + } + + /** + * @param streamLargeObjects Configuration to drop large object values. + * + * @return builder + * + */ + public Builder streamLargeObjects(@Nullable Output streamLargeObjects) { + $.streamLargeObjects = streamLargeObjects; + return this; + } + + /** + * @param streamLargeObjects Configuration to drop large object values. + * + * @return builder + * + */ + public Builder streamLargeObjects(StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs streamLargeObjects) { + return streamLargeObjects(Output.of(streamLargeObjects)); + } + + public StreamSourceConfigOracleSourceConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.java new file mode 100644 index 0000000000..672f17ce1f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + + + + +public final class StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs Empty = new StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(); + } + public StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.java new file mode 100644 index 0000000000..3334bdc30e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigExcludeObjectsArgs Empty = new StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(); + + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + @Import(name="oracleSchemas", required=true) + private Output> oracleSchemas; + + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public Output> oracleSchemas() { + return this.oracleSchemas; + } + + private StreamSourceConfigOracleSourceConfigExcludeObjectsArgs() {} + + private StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs $) { + this.oracleSchemas = $.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigExcludeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(Output> oracleSchemas) { + $.oracleSchemas = oracleSchemas; + return this; + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(List oracleSchemas) { + return oracleSchemas(Output.of(oracleSchemas)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsArgs build() { + $.oracleSchemas = Objects.requireNonNull($.oracleSchemas, "expected parameter 'oracleSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.java new file mode 100644 index 0000000000..f49f380332 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs Empty = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(); + + /** + * Tables in the database. + * Structure is documented below. + * + */ + @Import(name="oracleTables") + private @Nullable Output> oracleTables; + + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public Optional>> oracleTables() { + return Optional.ofNullable(this.oracleTables); + } + + /** + * Schema name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Schema name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs() {} + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs $) { + this.oracleTables = $.oracleTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(@Nullable Output> oracleTables) { + $.oracleTables = oracleTables; + return this; + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(List oracleTables) { + return oracleTables(Output.of(oracleTables)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.java new file mode 100644 index 0000000000..4b323df429 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs Empty = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(); + + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="oracleColumns") + private @Nullable Output> oracleColumns; + + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> oracleColumns() { + return Optional.ofNullable(this.oracleColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs() {} + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs $) { + this.oracleColumns = $.oracleColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(@Nullable Output> oracleColumns) { + $.oracleColumns = oracleColumns; + return this; + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(List oracleColumns) { + return oracleColumns(Output.of(oracleColumns)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.java new file mode 100644 index 0000000000..ada50b068f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.java @@ -0,0 +1,385 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs Empty = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column encoding. + * + */ + @Import(name="encoding") + private @Nullable Output encoding; + + /** + * @return Column encoding. + * + */ + public Optional> encoding() { + return Optional.ofNullable(this.encoding); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs() {} + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.encoding = $.encoding; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(@Nullable Output encoding) { + $.encoding = encoding; + return this; + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(String encoding) { + return encoding(Output.of(encoding)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.java new file mode 100644 index 0000000000..b640b2ae95 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigIncludeObjectsArgs Empty = new StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(); + + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + @Import(name="oracleSchemas", required=true) + private Output> oracleSchemas; + + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public Output> oracleSchemas() { + return this.oracleSchemas; + } + + private StreamSourceConfigOracleSourceConfigIncludeObjectsArgs() {} + + private StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs $) { + this.oracleSchemas = $.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigIncludeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(Output> oracleSchemas) { + $.oracleSchemas = oracleSchemas; + return this; + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(List oracleSchemas) { + return oracleSchemas(Output.of(oracleSchemas)); + } + + /** + * @param oracleSchemas Oracle schemas/databases in the database server + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsArgs build() { + $.oracleSchemas = Objects.requireNonNull($.oracleSchemas, "expected parameter 'oracleSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.java new file mode 100644 index 0000000000..c8b793e456 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs Empty = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(); + + /** + * Tables in the database. + * Structure is documented below. + * + */ + @Import(name="oracleTables") + private @Nullable Output> oracleTables; + + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public Optional>> oracleTables() { + return Optional.ofNullable(this.oracleTables); + } + + /** + * Schema name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Schema name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs() {} + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs $) { + this.oracleTables = $.oracleTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(@Nullable Output> oracleTables) { + $.oracleTables = oracleTables; + return this; + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(List oracleTables) { + return oracleTables(Output.of(oracleTables)); + } + + /** + * @param oracleTables Tables in the database. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Schema name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.java new file mode 100644 index 0000000000..a093a8610d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs Empty = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(); + + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="oracleColumns") + private @Nullable Output> oracleColumns; + + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> oracleColumns() { + return Optional.ofNullable(this.oracleColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs() {} + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs $) { + this.oracleColumns = $.oracleColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(@Nullable Output> oracleColumns) { + $.oracleColumns = oracleColumns; + return this; + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(List oracleColumns) { + return oracleColumns(Output.of(oracleColumns)); + } + + /** + * @param oracleColumns Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.java new file mode 100644 index 0000000000..8dd271a2a7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.java @@ -0,0 +1,385 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs Empty = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column encoding. + * + */ + @Import(name="encoding") + private @Nullable Output encoding; + + /** + * @return Column encoding. + * + */ + public Optional> encoding() { + return Optional.ofNullable(this.encoding); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs() {} + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.encoding = $.encoding; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(); + } + + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs defaults) { + $ = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(@Nullable Output encoding) { + $.encoding = encoding; + return this; + } + + /** + * @param encoding Column encoding. + * + * @return builder + * + */ + public Builder encoding(String encoding) { + return encoding(Output.of(encoding)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.java new file mode 100644 index 0000000000..01fe5edf25 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + + + + +public final class StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs Empty = new StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs(); + } + public StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigArgs.java new file mode 100644 index 0000000000..1c26ae529f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigArgs.java @@ -0,0 +1,256 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigArgs Empty = new StreamSourceConfigPostgresqlSourceConfigArgs(); + + /** + * PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + */ + @Import(name="excludeObjects") + private @Nullable Output excludeObjects; + + /** + * @return PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + */ + public Optional> excludeObjects() { + return Optional.ofNullable(this.excludeObjects); + } + + /** + * PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + */ + @Import(name="includeObjects") + private @Nullable Output includeObjects; + + /** + * @return PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + */ + public Optional> includeObjects() { + return Optional.ofNullable(this.includeObjects); + } + + /** + * Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + */ + @Import(name="maxConcurrentBackfillTasks") + private @Nullable Output maxConcurrentBackfillTasks; + + /** + * @return Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + */ + public Optional> maxConcurrentBackfillTasks() { + return Optional.ofNullable(this.maxConcurrentBackfillTasks); + } + + /** + * The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + */ + @Import(name="publication", required=true) + private Output publication; + + /** + * @return The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + */ + public Output publication() { + return this.publication; + } + + /** + * The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + */ + @Import(name="replicationSlot", required=true) + private Output replicationSlot; + + /** + * @return The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + */ + public Output replicationSlot() { + return this.replicationSlot; + } + + private StreamSourceConfigPostgresqlSourceConfigArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigArgs(StreamSourceConfigPostgresqlSourceConfigArgs $) { + this.excludeObjects = $.excludeObjects; + this.includeObjects = $.includeObjects; + this.maxConcurrentBackfillTasks = $.maxConcurrentBackfillTasks; + this.publication = $.publication; + this.replicationSlot = $.replicationSlot; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param excludeObjects PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + * @return builder + * + */ + public Builder excludeObjects(@Nullable Output excludeObjects) { + $.excludeObjects = excludeObjects; + return this; + } + + /** + * @param excludeObjects PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + * @return builder + * + */ + public Builder excludeObjects(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs excludeObjects) { + return excludeObjects(Output.of(excludeObjects)); + } + + /** + * @param includeObjects PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeObjects(@Nullable Output includeObjects) { + $.includeObjects = includeObjects; + return this; + } + + /** + * @param includeObjects PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeObjects(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs includeObjects) { + return includeObjects(Output.of(includeObjects)); + } + + /** + * @param maxConcurrentBackfillTasks Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentBackfillTasks(@Nullable Output maxConcurrentBackfillTasks) { + $.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + return this; + } + + /** + * @param maxConcurrentBackfillTasks Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + * @return builder + * + */ + public Builder maxConcurrentBackfillTasks(Integer maxConcurrentBackfillTasks) { + return maxConcurrentBackfillTasks(Output.of(maxConcurrentBackfillTasks)); + } + + /** + * @param publication The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + * @return builder + * + */ + public Builder publication(Output publication) { + $.publication = publication; + return this; + } + + /** + * @param publication The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + * @return builder + * + */ + public Builder publication(String publication) { + return publication(Output.of(publication)); + } + + /** + * @param replicationSlot The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + * @return builder + * + */ + public Builder replicationSlot(Output replicationSlot) { + $.replicationSlot = replicationSlot; + return this; + } + + /** + * @param replicationSlot The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + * @return builder + * + */ + public Builder replicationSlot(String replicationSlot) { + return replicationSlot(Output.of(replicationSlot)); + } + + public StreamSourceConfigPostgresqlSourceConfigArgs build() { + $.publication = Objects.requireNonNull($.publication, "expected parameter 'publication' to be non-null"); + $.replicationSlot = Objects.requireNonNull($.replicationSlot, "expected parameter 'replicationSlot' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.java new file mode 100644 index 0000000000..2061298ff1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs Empty = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(); + + /** + * PostgreSQL schemas on the server + * Structure is documented below. + * + */ + @Import(name="postgresqlSchemas", required=true) + private Output> postgresqlSchemas; + + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public Output> postgresqlSchemas() { + return this.postgresqlSchemas; + } + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs $) { + this.postgresqlSchemas = $.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(Output> postgresqlSchemas) { + $.postgresqlSchemas = postgresqlSchemas; + return this; + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(List postgresqlSchemas) { + return postgresqlSchemas(Output.of(postgresqlSchemas)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs build() { + $.postgresqlSchemas = Objects.requireNonNull($.postgresqlSchemas, "expected parameter 'postgresqlSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.java new file mode 100644 index 0000000000..22f6abbf4e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs Empty = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(); + + /** + * Tables in the schema. + * Structure is documented below. + * + */ + @Import(name="postgresqlTables") + private @Nullable Output> postgresqlTables; + + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public Optional>> postgresqlTables() { + return Optional.ofNullable(this.postgresqlTables); + } + + /** + * Database name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Database name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs $) { + this.postgresqlTables = $.postgresqlTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(@Nullable Output> postgresqlTables) { + $.postgresqlTables = postgresqlTables; + return this; + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(List postgresqlTables) { + return postgresqlTables(Output.of(postgresqlTables)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.java new file mode 100644 index 0000000000..72446404a3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs Empty = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="postgresqlColumns") + private @Nullable Output> postgresqlColumns; + + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> postgresqlColumns() { + return Optional.ofNullable(this.postgresqlColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs $) { + this.postgresqlColumns = $.postgresqlColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(@Nullable Output> postgresqlColumns) { + $.postgresqlColumns = postgresqlColumns; + return this; + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(List postgresqlColumns) { + return postgresqlColumns(Output.of(postgresqlColumns)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java new file mode 100644 index 0000000000..f3ba50c8c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java @@ -0,0 +1,348 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.java new file mode 100644 index 0000000000..d5ad37b519 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.java @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs; +import java.util.List; +import java.util.Objects; + + +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs Empty = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(); + + /** + * PostgreSQL schemas on the server + * Structure is documented below. + * + */ + @Import(name="postgresqlSchemas", required=true) + private Output> postgresqlSchemas; + + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public Output> postgresqlSchemas() { + return this.postgresqlSchemas; + } + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs $) { + this.postgresqlSchemas = $.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(Output> postgresqlSchemas) { + $.postgresqlSchemas = postgresqlSchemas; + return this; + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(List postgresqlSchemas) { + return postgresqlSchemas(Output.of(postgresqlSchemas)); + } + + /** + * @param postgresqlSchemas PostgreSQL schemas on the server + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs build() { + $.postgresqlSchemas = Objects.requireNonNull($.postgresqlSchemas, "expected parameter 'postgresqlSchemas' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.java new file mode 100644 index 0000000000..f1afb3dce8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs Empty = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(); + + /** + * Tables in the schema. + * Structure is documented below. + * + */ + @Import(name="postgresqlTables") + private @Nullable Output> postgresqlTables; + + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public Optional>> postgresqlTables() { + return Optional.ofNullable(this.postgresqlTables); + } + + /** + * Database name. + * + */ + @Import(name="schema", required=true) + private Output schema; + + /** + * @return Database name. + * + */ + public Output schema() { + return this.schema; + } + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs $) { + this.postgresqlTables = $.postgresqlTables; + this.schema = $.schema; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(@Nullable Output> postgresqlTables) { + $.postgresqlTables = postgresqlTables; + return this; + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(List postgresqlTables) { + return postgresqlTables(Output.of(postgresqlTables)); + } + + /** + * @param postgresqlTables Tables in the schema. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(Output schema) { + $.schema = schema; + return this; + } + + /** + * @param schema Database name. + * + * @return builder + * + */ + public Builder schema(String schema) { + return schema(Output.of(schema)); + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs build() { + $.schema = Objects.requireNonNull($.schema, "expected parameter 'schema' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.java new file mode 100644 index 0000000000..401e0f2780 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.java @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs Empty = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + @Import(name="postgresqlColumns") + private @Nullable Output> postgresqlColumns; + + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public Optional>> postgresqlColumns() { + return Optional.ofNullable(this.postgresqlColumns); + } + + /** + * Table name. + * + */ + @Import(name="table", required=true) + private Output table; + + /** + * @return Table name. + * + */ + public Output table() { + return this.table; + } + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs $) { + this.postgresqlColumns = $.postgresqlColumns; + this.table = $.table; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(@Nullable Output> postgresqlColumns) { + $.postgresqlColumns = postgresqlColumns; + return this; + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(List postgresqlColumns) { + return postgresqlColumns(Output.of(postgresqlColumns)); + } + + /** + * @param postgresqlColumns PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + * @return builder + * + */ + public Builder postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(Output table) { + $.table = table; + return this; + } + + /** + * @param table Table name. + * + * @return builder + * + */ + public Builder table(String table) { + return table(Output.of(table)); + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs build() { + $.table = Objects.requireNonNull($.table, "expected parameter 'table' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java new file mode 100644 index 0000000000..2e23841b51 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.java @@ -0,0 +1,348 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs Empty = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + + /** + * Column name. + * + */ + @Import(name="column") + private @Nullable Output column; + + /** + * @return Column name. + * + */ + public Optional> column() { + return Optional.ofNullable(this.column); + } + + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + @Import(name="dataType") + private @Nullable Output dataType; + + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional> dataType() { + return Optional.ofNullable(this.dataType); + } + + /** + * Column length. + * + */ + @Import(name="length") + private @Nullable Output length; + + /** + * @return Column length. + * + */ + public Optional> length() { + return Optional.ofNullable(this.length); + } + + /** + * Whether or not the column can accept a null value. + * + */ + @Import(name="nullable") + private @Nullable Output nullable; + + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional> nullable() { + return Optional.ofNullable(this.nullable); + } + + /** + * The ordinal position of the column in the table. + * + */ + @Import(name="ordinalPosition") + private @Nullable Output ordinalPosition; + + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional> ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + + /** + * Column precision. + * + */ + @Import(name="precision") + private @Nullable Output precision; + + /** + * @return Column precision. + * + */ + public Optional> precision() { + return Optional.ofNullable(this.precision); + } + + /** + * Whether or not the column represents a primary key. + * + */ + @Import(name="primaryKey") + private @Nullable Output primaryKey; + + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional> primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + + /** + * Column scale. + * + */ + @Import(name="scale") + private @Nullable Output scale; + + /** + * @return Column scale. + * + */ + public Optional> scale() { + return Optional.ofNullable(this.scale); + } + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs() {} + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $) { + this.column = $.column; + this.dataType = $.dataType; + this.length = $.length; + this.nullable = $.nullable; + this.ordinalPosition = $.ordinalPosition; + this.precision = $.precision; + this.primaryKey = $.primaryKey; + this.scale = $.scale; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs $; + + public Builder() { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(); + } + + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs defaults) { + $ = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(@Nullable Output column) { + $.column = column; + return this; + } + + /** + * @param column Column name. + * + * @return builder + * + */ + public Builder column(String column) { + return column(Output.of(column)); + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(@Nullable Output dataType) { + $.dataType = dataType; + return this; + } + + /** + * @param dataType The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + * @return builder + * + */ + public Builder dataType(String dataType) { + return dataType(Output.of(dataType)); + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(@Nullable Output length) { + $.length = length; + return this; + } + + /** + * @param length Column length. + * + * @return builder + * + */ + public Builder length(Integer length) { + return length(Output.of(length)); + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(@Nullable Output nullable) { + $.nullable = nullable; + return this; + } + + /** + * @param nullable Whether or not the column can accept a null value. + * + * @return builder + * + */ + public Builder nullable(Boolean nullable) { + return nullable(Output.of(nullable)); + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(@Nullable Output ordinalPosition) { + $.ordinalPosition = ordinalPosition; + return this; + } + + /** + * @param ordinalPosition The ordinal position of the column in the table. + * + * @return builder + * + */ + public Builder ordinalPosition(Integer ordinalPosition) { + return ordinalPosition(Output.of(ordinalPosition)); + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(@Nullable Output precision) { + $.precision = precision; + return this; + } + + /** + * @param precision Column precision. + * + * @return builder + * + */ + public Builder precision(Integer precision) { + return precision(Output.of(precision)); + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(@Nullable Output primaryKey) { + $.primaryKey = primaryKey; + return this; + } + + /** + * @param primaryKey Whether or not the column represents a primary key. + * + * @return builder + * + */ + public Builder primaryKey(Boolean primaryKey) { + return primaryKey(Output.of(primaryKey)); + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(@Nullable Output scale) { + $.scale = scale; + return this; + } + + /** + * @param scale Column scale. + * + * @return builder + * + */ + public Builder scale(Integer scale) { + return scale(Output.of(scale)); + } + + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAll.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAll.java index 44e6cf5c3a..9a6db2c561 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAll.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAll.java @@ -5,6 +5,8 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.gcp.datastream.outputs.StreamBackfillAllMysqlExcludedObjects; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllOracleExcludedObjects; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllPostgresqlExcludedObjects; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -17,6 +19,18 @@ public final class StreamBackfillAll { * */ private @Nullable StreamBackfillAllMysqlExcludedObjects mysqlExcludedObjects; + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + private @Nullable StreamBackfillAllOracleExcludedObjects oracleExcludedObjects; + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + private @Nullable StreamBackfillAllPostgresqlExcludedObjects postgresqlExcludedObjects; private StreamBackfillAll() {} /** @@ -27,6 +41,22 @@ private StreamBackfillAll() {} public Optional mysqlExcludedObjects() { return Optional.ofNullable(this.mysqlExcludedObjects); } + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + public Optional oracleExcludedObjects() { + return Optional.ofNullable(this.oracleExcludedObjects); + } + /** + * @return PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + * + */ + public Optional postgresqlExcludedObjects() { + return Optional.ofNullable(this.postgresqlExcludedObjects); + } public static Builder builder() { return new Builder(); @@ -38,10 +68,14 @@ public static Builder builder(StreamBackfillAll defaults) { @CustomType.Builder public static final class Builder { private @Nullable StreamBackfillAllMysqlExcludedObjects mysqlExcludedObjects; + private @Nullable StreamBackfillAllOracleExcludedObjects oracleExcludedObjects; + private @Nullable StreamBackfillAllPostgresqlExcludedObjects postgresqlExcludedObjects; public Builder() {} public Builder(StreamBackfillAll defaults) { Objects.requireNonNull(defaults); this.mysqlExcludedObjects = defaults.mysqlExcludedObjects; + this.oracleExcludedObjects = defaults.oracleExcludedObjects; + this.postgresqlExcludedObjects = defaults.postgresqlExcludedObjects; } @CustomType.Setter @@ -49,9 +83,21 @@ public Builder mysqlExcludedObjects(@Nullable StreamBackfillAllMysqlExcludedObje this.mysqlExcludedObjects = mysqlExcludedObjects; return this; } + @CustomType.Setter + public Builder oracleExcludedObjects(@Nullable StreamBackfillAllOracleExcludedObjects oracleExcludedObjects) { + this.oracleExcludedObjects = oracleExcludedObjects; + return this; + } + @CustomType.Setter + public Builder postgresqlExcludedObjects(@Nullable StreamBackfillAllPostgresqlExcludedObjects postgresqlExcludedObjects) { + this.postgresqlExcludedObjects = postgresqlExcludedObjects; + return this; + } public StreamBackfillAll build() { final var o = new StreamBackfillAll(); o.mysqlExcludedObjects = mysqlExcludedObjects; + o.oracleExcludedObjects = oracleExcludedObjects; + o.postgresqlExcludedObjects = postgresqlExcludedObjects; return o; } } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjects.java new file mode 100644 index 0000000000..ed3f4e07c1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllOracleExcludedObjectsOracleSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamBackfillAllOracleExcludedObjects { + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + private List oracleSchemas; + + private StreamBackfillAllOracleExcludedObjects() {} + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public List oracleSchemas() { + return this.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllOracleExcludedObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List oracleSchemas; + public Builder() {} + public Builder(StreamBackfillAllOracleExcludedObjects defaults) { + Objects.requireNonNull(defaults); + this.oracleSchemas = defaults.oracleSchemas; + } + + @CustomType.Setter + public Builder oracleSchemas(List oracleSchemas) { + this.oracleSchemas = Objects.requireNonNull(oracleSchemas); + return this; + } + public Builder oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchema... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + public StreamBackfillAllOracleExcludedObjects build() { + final var o = new StreamBackfillAllOracleExcludedObjects(); + o.oracleSchemas = oracleSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.java new file mode 100644 index 0000000000..dd5a3ef5a5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllOracleExcludedObjectsOracleSchema { + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + private @Nullable List oracleTables; + /** + * @return Schema name. + * + */ + private String schema; + + private StreamBackfillAllOracleExcludedObjectsOracleSchema() {} + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public List oracleTables() { + return this.oracleTables == null ? List.of() : this.oracleTables; + } + /** + * @return Schema name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleTables; + private String schema; + public Builder() {} + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchema defaults) { + Objects.requireNonNull(defaults); + this.oracleTables = defaults.oracleTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder oracleTables(@Nullable List oracleTables) { + this.oracleTables = oracleTables; + return this; + } + public Builder oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamBackfillAllOracleExcludedObjectsOracleSchema build() { + final var o = new StreamBackfillAllOracleExcludedObjectsOracleSchema(); + o.oracleTables = oracleTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.java new file mode 100644 index 0000000000..2f843b8026 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable { + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List oracleColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable() {} + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List oracleColumns() { + return this.oracleColumns == null ? List.of() : this.oracleColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleColumns; + private String table; + public Builder() {} + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable defaults) { + Objects.requireNonNull(defaults); + this.oracleColumns = defaults.oracleColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder oracleColumns(@Nullable List oracleColumns) { + this.oracleColumns = oracleColumns; + return this; + } + public Builder oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable build() { + final var o = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable(); + o.oracleColumns = oracleColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.java new file mode 100644 index 0000000000..5c8f3a3f0c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.java @@ -0,0 +1,220 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + private @Nullable String dataType; + /** + * @return Column encoding. + * + */ + private @Nullable String encoding; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column encoding. + * + */ + public Optional encoding() { + return Optional.ofNullable(this.encoding); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable String encoding; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.encoding = defaults.encoding; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder encoding(@Nullable String encoding) { + this.encoding = encoding; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn build() { + final var o = new StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn(); + o.column = column; + o.dataType = dataType; + o.encoding = encoding; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjects.java new file mode 100644 index 0000000000..264450c760 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamBackfillAllPostgresqlExcludedObjects { + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + private List postgresqlSchemas; + + private StreamBackfillAllPostgresqlExcludedObjects() {} + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public List postgresqlSchemas() { + return this.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List postgresqlSchemas; + public Builder() {} + public Builder(StreamBackfillAllPostgresqlExcludedObjects defaults) { + Objects.requireNonNull(defaults); + this.postgresqlSchemas = defaults.postgresqlSchemas; + } + + @CustomType.Setter + public Builder postgresqlSchemas(List postgresqlSchemas) { + this.postgresqlSchemas = Objects.requireNonNull(postgresqlSchemas); + return this; + } + public Builder postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + public StreamBackfillAllPostgresqlExcludedObjects build() { + final var o = new StreamBackfillAllPostgresqlExcludedObjects(); + o.postgresqlSchemas = postgresqlSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.java new file mode 100644 index 0000000000..0ae676a094 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + private @Nullable List postgresqlTables; + /** + * @return Database name. + * + */ + private String schema; + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema() {} + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public List postgresqlTables() { + return this.postgresqlTables == null ? List.of() : this.postgresqlTables; + } + /** + * @return Database name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlTables; + private String schema; + public Builder() {} + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema defaults) { + Objects.requireNonNull(defaults); + this.postgresqlTables = defaults.postgresqlTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder postgresqlTables(@Nullable List postgresqlTables) { + this.postgresqlTables = postgresqlTables; + return this; + } + public Builder postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema build() { + final var o = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema(); + o.postgresqlTables = postgresqlTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.java new file mode 100644 index 0000000000..f7da7316a2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable { + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List postgresqlColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable() {} + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List postgresqlColumns() { + return this.postgresqlColumns == null ? List.of() : this.postgresqlColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlColumns; + private String table; + public Builder() {} + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable defaults) { + Objects.requireNonNull(defaults); + this.postgresqlColumns = defaults.postgresqlColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder postgresqlColumns(@Nullable List postgresqlColumns) { + this.postgresqlColumns = postgresqlColumns; + return this; + } + public Builder postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable build() { + final var o = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable(); + o.postgresqlColumns = postgresqlColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java new file mode 100644 index 0000000000..0e41dd7770 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java @@ -0,0 +1,200 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + private @Nullable String dataType; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn build() { + final var o = new StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(); + o.column = column; + o.dataType = dataType; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfig.java index 869c425358..34032e3cd4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfig.java @@ -5,8 +5,12 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.gcp.datastream.outputs.StreamSourceConfigMysqlSourceConfig; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfig; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfig; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class StreamSourceConfig { @@ -15,7 +19,19 @@ public final class StreamSourceConfig { * Structure is documented below. * */ - private StreamSourceConfigMysqlSourceConfig mysqlSourceConfig; + private @Nullable StreamSourceConfigMysqlSourceConfig mysqlSourceConfig; + /** + * @return MySQL data source configuration. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigOracleSourceConfig oracleSourceConfig; + /** + * @return PostgreSQL data source configuration. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigPostgresqlSourceConfig postgresqlSourceConfig; /** * @return Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} * @@ -28,8 +44,24 @@ private StreamSourceConfig() {} * Structure is documented below. * */ - public StreamSourceConfigMysqlSourceConfig mysqlSourceConfig() { - return this.mysqlSourceConfig; + public Optional mysqlSourceConfig() { + return Optional.ofNullable(this.mysqlSourceConfig); + } + /** + * @return MySQL data source configuration. + * Structure is documented below. + * + */ + public Optional oracleSourceConfig() { + return Optional.ofNullable(this.oracleSourceConfig); + } + /** + * @return PostgreSQL data source configuration. + * Structure is documented below. + * + */ + public Optional postgresqlSourceConfig() { + return Optional.ofNullable(this.postgresqlSourceConfig); } /** * @return Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} @@ -48,18 +80,32 @@ public static Builder builder(StreamSourceConfig defaults) { } @CustomType.Builder public static final class Builder { - private StreamSourceConfigMysqlSourceConfig mysqlSourceConfig; + private @Nullable StreamSourceConfigMysqlSourceConfig mysqlSourceConfig; + private @Nullable StreamSourceConfigOracleSourceConfig oracleSourceConfig; + private @Nullable StreamSourceConfigPostgresqlSourceConfig postgresqlSourceConfig; private String sourceConnectionProfile; public Builder() {} public Builder(StreamSourceConfig defaults) { Objects.requireNonNull(defaults); this.mysqlSourceConfig = defaults.mysqlSourceConfig; + this.oracleSourceConfig = defaults.oracleSourceConfig; + this.postgresqlSourceConfig = defaults.postgresqlSourceConfig; this.sourceConnectionProfile = defaults.sourceConnectionProfile; } @CustomType.Setter - public Builder mysqlSourceConfig(StreamSourceConfigMysqlSourceConfig mysqlSourceConfig) { - this.mysqlSourceConfig = Objects.requireNonNull(mysqlSourceConfig); + public Builder mysqlSourceConfig(@Nullable StreamSourceConfigMysqlSourceConfig mysqlSourceConfig) { + this.mysqlSourceConfig = mysqlSourceConfig; + return this; + } + @CustomType.Setter + public Builder oracleSourceConfig(@Nullable StreamSourceConfigOracleSourceConfig oracleSourceConfig) { + this.oracleSourceConfig = oracleSourceConfig; + return this; + } + @CustomType.Setter + public Builder postgresqlSourceConfig(@Nullable StreamSourceConfigPostgresqlSourceConfig postgresqlSourceConfig) { + this.postgresqlSourceConfig = postgresqlSourceConfig; return this; } @CustomType.Setter @@ -70,6 +116,8 @@ public Builder sourceConnectionProfile(String sourceConnectionProfile) { public StreamSourceConfig build() { final var o = new StreamSourceConfig(); o.mysqlSourceConfig = mysqlSourceConfig; + o.oracleSourceConfig = oracleSourceConfig; + o.postgresqlSourceConfig = postgresqlSourceConfig; o.sourceConnectionProfile = sourceConnectionProfile; return o; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfig.java new file mode 100644 index 0000000000..2d55e46ec2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfig.java @@ -0,0 +1,168 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigDropLargeObjects; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigExcludeObjects; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigIncludeObjects; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigStreamLargeObjects; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfig { + /** + * @return Configuration to drop large object values. + * + */ + private @Nullable StreamSourceConfigOracleSourceConfigDropLargeObjects dropLargeObjects; + /** + * @return Oracle objects to exclude from the stream. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigOracleSourceConfigExcludeObjects excludeObjects; + /** + * @return Oracle objects to retrieve from the source. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigOracleSourceConfigIncludeObjects includeObjects; + /** + * @return Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + private @Nullable Integer maxConcurrentBackfillTasks; + /** + * @return Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + private @Nullable Integer maxConcurrentCdcTasks; + /** + * @return Configuration to drop large object values. + * + */ + private @Nullable StreamSourceConfigOracleSourceConfigStreamLargeObjects streamLargeObjects; + + private StreamSourceConfigOracleSourceConfig() {} + /** + * @return Configuration to drop large object values. + * + */ + public Optional dropLargeObjects() { + return Optional.ofNullable(this.dropLargeObjects); + } + /** + * @return Oracle objects to exclude from the stream. + * Structure is documented below. + * + */ + public Optional excludeObjects() { + return Optional.ofNullable(this.excludeObjects); + } + /** + * @return Oracle objects to retrieve from the source. + * Structure is documented below. + * + */ + public Optional includeObjects() { + return Optional.ofNullable(this.includeObjects); + } + /** + * @return Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + public Optional maxConcurrentBackfillTasks() { + return Optional.ofNullable(this.maxConcurrentBackfillTasks); + } + /** + * @return Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + * + */ + public Optional maxConcurrentCdcTasks() { + return Optional.ofNullable(this.maxConcurrentCdcTasks); + } + /** + * @return Configuration to drop large object values. + * + */ + public Optional streamLargeObjects() { + return Optional.ofNullable(this.streamLargeObjects); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamSourceConfigOracleSourceConfigDropLargeObjects dropLargeObjects; + private @Nullable StreamSourceConfigOracleSourceConfigExcludeObjects excludeObjects; + private @Nullable StreamSourceConfigOracleSourceConfigIncludeObjects includeObjects; + private @Nullable Integer maxConcurrentBackfillTasks; + private @Nullable Integer maxConcurrentCdcTasks; + private @Nullable StreamSourceConfigOracleSourceConfigStreamLargeObjects streamLargeObjects; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfig defaults) { + Objects.requireNonNull(defaults); + this.dropLargeObjects = defaults.dropLargeObjects; + this.excludeObjects = defaults.excludeObjects; + this.includeObjects = defaults.includeObjects; + this.maxConcurrentBackfillTasks = defaults.maxConcurrentBackfillTasks; + this.maxConcurrentCdcTasks = defaults.maxConcurrentCdcTasks; + this.streamLargeObjects = defaults.streamLargeObjects; + } + + @CustomType.Setter + public Builder dropLargeObjects(@Nullable StreamSourceConfigOracleSourceConfigDropLargeObjects dropLargeObjects) { + this.dropLargeObjects = dropLargeObjects; + return this; + } + @CustomType.Setter + public Builder excludeObjects(@Nullable StreamSourceConfigOracleSourceConfigExcludeObjects excludeObjects) { + this.excludeObjects = excludeObjects; + return this; + } + @CustomType.Setter + public Builder includeObjects(@Nullable StreamSourceConfigOracleSourceConfigIncludeObjects includeObjects) { + this.includeObjects = includeObjects; + return this; + } + @CustomType.Setter + public Builder maxConcurrentBackfillTasks(@Nullable Integer maxConcurrentBackfillTasks) { + this.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + return this; + } + @CustomType.Setter + public Builder maxConcurrentCdcTasks(@Nullable Integer maxConcurrentCdcTasks) { + this.maxConcurrentCdcTasks = maxConcurrentCdcTasks; + return this; + } + @CustomType.Setter + public Builder streamLargeObjects(@Nullable StreamSourceConfigOracleSourceConfigStreamLargeObjects streamLargeObjects) { + this.streamLargeObjects = streamLargeObjects; + return this; + } + public StreamSourceConfigOracleSourceConfig build() { + final var o = new StreamSourceConfigOracleSourceConfig(); + o.dropLargeObjects = dropLargeObjects; + o.excludeObjects = excludeObjects; + o.includeObjects = includeObjects; + o.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + o.maxConcurrentCdcTasks = maxConcurrentCdcTasks; + o.streamLargeObjects = streamLargeObjects; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.java new file mode 100644 index 0000000000..38a435d182 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigDropLargeObjects.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigDropLargeObjects { + private StreamSourceConfigOracleSourceConfigDropLargeObjects() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigDropLargeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigDropLargeObjects defaults) { + Objects.requireNonNull(defaults); + } + + public StreamSourceConfigOracleSourceConfigDropLargeObjects build() { + final var o = new StreamSourceConfigOracleSourceConfigDropLargeObjects(); + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.java new file mode 100644 index 0000000000..8ae837cda6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigExcludeObjects { + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + private List oracleSchemas; + + private StreamSourceConfigOracleSourceConfigExcludeObjects() {} + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public List oracleSchemas() { + return this.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List oracleSchemas; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjects defaults) { + Objects.requireNonNull(defaults); + this.oracleSchemas = defaults.oracleSchemas; + } + + @CustomType.Setter + public Builder oracleSchemas(List oracleSchemas) { + this.oracleSchemas = Objects.requireNonNull(oracleSchemas); + return this; + } + public Builder oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + public StreamSourceConfigOracleSourceConfigExcludeObjects build() { + final var o = new StreamSourceConfigOracleSourceConfigExcludeObjects(); + o.oracleSchemas = oracleSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.java new file mode 100644 index 0000000000..32fa065ea3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + private @Nullable List oracleTables; + /** + * @return Schema name. + * + */ + private String schema; + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema() {} + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public List oracleTables() { + return this.oracleTables == null ? List.of() : this.oracleTables; + } + /** + * @return Schema name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleTables; + private String schema; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema defaults) { + Objects.requireNonNull(defaults); + this.oracleTables = defaults.oracleTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder oracleTables(@Nullable List oracleTables) { + this.oracleTables = oracleTables; + return this; + } + public Builder oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema build() { + final var o = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema(); + o.oracleTables = oracleTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.java new file mode 100644 index 0000000000..88d205ed3d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable { + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List oracleColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable() {} + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List oracleColumns() { + return this.oracleColumns == null ? List.of() : this.oracleColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleColumns; + private String table; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable defaults) { + Objects.requireNonNull(defaults); + this.oracleColumns = defaults.oracleColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder oracleColumns(@Nullable List oracleColumns) { + this.oracleColumns = oracleColumns; + return this; + } + public Builder oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable build() { + final var o = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable(); + o.oracleColumns = oracleColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.java new file mode 100644 index 0000000000..271052ed1e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.java @@ -0,0 +1,220 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + private @Nullable String dataType; + /** + * @return Column encoding. + * + */ + private @Nullable String encoding; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column encoding. + * + */ + public Optional encoding() { + return Optional.ofNullable(this.encoding); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable String encoding; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.encoding = defaults.encoding; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder encoding(@Nullable String encoding) { + this.encoding = encoding; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn build() { + final var o = new StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn(); + o.column = column; + o.dataType = dataType; + o.encoding = encoding; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.java new file mode 100644 index 0000000000..84bc2ac5ac --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigIncludeObjects { + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + private List oracleSchemas; + + private StreamSourceConfigOracleSourceConfigIncludeObjects() {} + /** + * @return Oracle schemas/databases in the database server + * Structure is documented below. + * + */ + public List oracleSchemas() { + return this.oracleSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List oracleSchemas; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjects defaults) { + Objects.requireNonNull(defaults); + this.oracleSchemas = defaults.oracleSchemas; + } + + @CustomType.Setter + public Builder oracleSchemas(List oracleSchemas) { + this.oracleSchemas = Objects.requireNonNull(oracleSchemas); + return this; + } + public Builder oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema... oracleSchemas) { + return oracleSchemas(List.of(oracleSchemas)); + } + public StreamSourceConfigOracleSourceConfigIncludeObjects build() { + final var o = new StreamSourceConfigOracleSourceConfigIncludeObjects(); + o.oracleSchemas = oracleSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.java new file mode 100644 index 0000000000..492f53349e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + private @Nullable List oracleTables; + /** + * @return Schema name. + * + */ + private String schema; + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema() {} + /** + * @return Tables in the database. + * Structure is documented below. + * + */ + public List oracleTables() { + return this.oracleTables == null ? List.of() : this.oracleTables; + } + /** + * @return Schema name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleTables; + private String schema; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema defaults) { + Objects.requireNonNull(defaults); + this.oracleTables = defaults.oracleTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder oracleTables(@Nullable List oracleTables) { + this.oracleTables = oracleTables; + return this; + } + public Builder oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable... oracleTables) { + return oracleTables(List.of(oracleTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema build() { + final var o = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema(); + o.oracleTables = oracleTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.java new file mode 100644 index 0000000000..1aea174d6b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable { + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List oracleColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable() {} + /** + * @return Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List oracleColumns() { + return this.oracleColumns == null ? List.of() : this.oracleColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List oracleColumns; + private String table; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable defaults) { + Objects.requireNonNull(defaults); + this.oracleColumns = defaults.oracleColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder oracleColumns(@Nullable List oracleColumns) { + this.oracleColumns = oracleColumns; + return this; + } + public Builder oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn... oracleColumns) { + return oracleColumns(List.of(oracleColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable build() { + final var o = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable(); + o.oracleColumns = oracleColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.java new file mode 100644 index 0000000000..914358aea4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.java @@ -0,0 +1,220 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + private @Nullable String dataType; + /** + * @return Column encoding. + * + */ + private @Nullable String encoding; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column encoding. + * + */ + public Optional encoding() { + return Optional.ofNullable(this.encoding); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable String encoding; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.encoding = defaults.encoding; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder encoding(@Nullable String encoding) { + this.encoding = encoding; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn build() { + final var o = new StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn(); + o.column = column; + o.dataType = dataType; + o.encoding = encoding; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.java new file mode 100644 index 0000000000..77ae8f0d21 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigOracleSourceConfigStreamLargeObjects.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigOracleSourceConfigStreamLargeObjects { + private StreamSourceConfigOracleSourceConfigStreamLargeObjects() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigOracleSourceConfigStreamLargeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(StreamSourceConfigOracleSourceConfigStreamLargeObjects defaults) { + Objects.requireNonNull(defaults); + } + + public StreamSourceConfigOracleSourceConfigStreamLargeObjects build() { + final var o = new StreamSourceConfigOracleSourceConfigStreamLargeObjects(); + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfig.java new file mode 100644 index 0000000000..c0026300ed --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfig.java @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjects; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjects; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfig { + /** + * @return PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigPostgresqlSourceConfigExcludeObjects excludeObjects; + /** + * @return PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + */ + private @Nullable StreamSourceConfigPostgresqlSourceConfigIncludeObjects includeObjects; + /** + * @return Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + */ + private @Nullable Integer maxConcurrentBackfillTasks; + /** + * @return The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + */ + private String publication; + /** + * @return The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + */ + private String replicationSlot; + + private StreamSourceConfigPostgresqlSourceConfig() {} + /** + * @return PostgreSQL objects to exclude from the stream. + * Structure is documented below. + * + */ + public Optional excludeObjects() { + return Optional.ofNullable(this.excludeObjects); + } + /** + * @return PostgreSQL objects to retrieve from the source. + * Structure is documented below. + * + */ + public Optional includeObjects() { + return Optional.ofNullable(this.includeObjects); + } + /** + * @return Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + * + */ + public Optional maxConcurrentBackfillTasks() { + return Optional.ofNullable(this.maxConcurrentBackfillTasks); + } + /** + * @return The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + * + */ + public String publication() { + return this.publication; + } + /** + * @return The name of the logical replication slot that's configured with + * the pgoutput plugin. + * + */ + public String replicationSlot() { + return this.replicationSlot; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable StreamSourceConfigPostgresqlSourceConfigExcludeObjects excludeObjects; + private @Nullable StreamSourceConfigPostgresqlSourceConfigIncludeObjects includeObjects; + private @Nullable Integer maxConcurrentBackfillTasks; + private String publication; + private String replicationSlot; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfig defaults) { + Objects.requireNonNull(defaults); + this.excludeObjects = defaults.excludeObjects; + this.includeObjects = defaults.includeObjects; + this.maxConcurrentBackfillTasks = defaults.maxConcurrentBackfillTasks; + this.publication = defaults.publication; + this.replicationSlot = defaults.replicationSlot; + } + + @CustomType.Setter + public Builder excludeObjects(@Nullable StreamSourceConfigPostgresqlSourceConfigExcludeObjects excludeObjects) { + this.excludeObjects = excludeObjects; + return this; + } + @CustomType.Setter + public Builder includeObjects(@Nullable StreamSourceConfigPostgresqlSourceConfigIncludeObjects includeObjects) { + this.includeObjects = includeObjects; + return this; + } + @CustomType.Setter + public Builder maxConcurrentBackfillTasks(@Nullable Integer maxConcurrentBackfillTasks) { + this.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + return this; + } + @CustomType.Setter + public Builder publication(String publication) { + this.publication = Objects.requireNonNull(publication); + return this; + } + @CustomType.Setter + public Builder replicationSlot(String replicationSlot) { + this.replicationSlot = Objects.requireNonNull(replicationSlot); + return this; + } + public StreamSourceConfigPostgresqlSourceConfig build() { + final var o = new StreamSourceConfigPostgresqlSourceConfig(); + o.excludeObjects = excludeObjects; + o.includeObjects = includeObjects; + o.maxConcurrentBackfillTasks = maxConcurrentBackfillTasks; + o.publication = publication; + o.replicationSlot = replicationSlot; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.java new file mode 100644 index 0000000000..436969d026 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjects { + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + private List postgresqlSchemas; + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjects() {} + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public List postgresqlSchemas() { + return this.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List postgresqlSchemas; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjects defaults) { + Objects.requireNonNull(defaults); + this.postgresqlSchemas = defaults.postgresqlSchemas; + } + + @CustomType.Setter + public Builder postgresqlSchemas(List postgresqlSchemas) { + this.postgresqlSchemas = Objects.requireNonNull(postgresqlSchemas); + return this; + } + public Builder postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + public StreamSourceConfigPostgresqlSourceConfigExcludeObjects build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigExcludeObjects(); + o.postgresqlSchemas = postgresqlSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.java new file mode 100644 index 0000000000..c525bb8f26 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + private @Nullable List postgresqlTables; + /** + * @return Database name. + * + */ + private String schema; + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema() {} + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public List postgresqlTables() { + return this.postgresqlTables == null ? List.of() : this.postgresqlTables; + } + /** + * @return Database name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlTables; + private String schema; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema defaults) { + Objects.requireNonNull(defaults); + this.postgresqlTables = defaults.postgresqlTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder postgresqlTables(@Nullable List postgresqlTables) { + this.postgresqlTables = postgresqlTables; + return this; + } + public Builder postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema(); + o.postgresqlTables = postgresqlTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.java new file mode 100644 index 0000000000..399492c229 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List postgresqlColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable() {} + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List postgresqlColumns() { + return this.postgresqlColumns == null ? List.of() : this.postgresqlColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlColumns; + private String table; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable defaults) { + Objects.requireNonNull(defaults); + this.postgresqlColumns = defaults.postgresqlColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder postgresqlColumns(@Nullable List postgresqlColumns) { + this.postgresqlColumns = postgresqlColumns; + return this; + } + public Builder postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable(); + o.postgresqlColumns = postgresqlColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java new file mode 100644 index 0000000000..5ffa1bf0d0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java @@ -0,0 +1,200 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + private @Nullable String dataType; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(); + o.column = column; + o.dataType = dataType; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.java new file mode 100644 index 0000000000..4aad18f87e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjects.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjects { + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + private List postgresqlSchemas; + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjects() {} + /** + * @return PostgreSQL schemas on the server + * Structure is documented below. + * + */ + public List postgresqlSchemas() { + return this.postgresqlSchemas; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjects defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List postgresqlSchemas; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjects defaults) { + Objects.requireNonNull(defaults); + this.postgresqlSchemas = defaults.postgresqlSchemas; + } + + @CustomType.Setter + public Builder postgresqlSchemas(List postgresqlSchemas) { + this.postgresqlSchemas = Objects.requireNonNull(postgresqlSchemas); + return this; + } + public Builder postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema... postgresqlSchemas) { + return postgresqlSchemas(List.of(postgresqlSchemas)); + } + public StreamSourceConfigPostgresqlSourceConfigIncludeObjects build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigIncludeObjects(); + o.postgresqlSchemas = postgresqlSchemas; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.java new file mode 100644 index 0000000000..53decd9e37 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + private @Nullable List postgresqlTables; + /** + * @return Database name. + * + */ + private String schema; + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema() {} + /** + * @return Tables in the schema. + * Structure is documented below. + * + */ + public List postgresqlTables() { + return this.postgresqlTables == null ? List.of() : this.postgresqlTables; + } + /** + * @return Database name. + * + */ + public String schema() { + return this.schema; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlTables; + private String schema; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema defaults) { + Objects.requireNonNull(defaults); + this.postgresqlTables = defaults.postgresqlTables; + this.schema = defaults.schema; + } + + @CustomType.Setter + public Builder postgresqlTables(@Nullable List postgresqlTables) { + this.postgresqlTables = postgresqlTables; + return this; + } + public Builder postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable... postgresqlTables) { + return postgresqlTables(List.of(postgresqlTables)); + } + @CustomType.Setter + public Builder schema(String schema) { + this.schema = Objects.requireNonNull(schema); + return this; + } + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema(); + o.postgresqlTables = postgresqlTables; + o.schema = schema; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.java new file mode 100644 index 0000000000..46448ff60d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + private @Nullable List postgresqlColumns; + /** + * @return Table name. + * + */ + private String table; + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable() {} + /** + * @return PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + * + */ + public List postgresqlColumns() { + return this.postgresqlColumns == null ? List.of() : this.postgresqlColumns; + } + /** + * @return Table name. + * + */ + public String table() { + return this.table; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List postgresqlColumns; + private String table; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable defaults) { + Objects.requireNonNull(defaults); + this.postgresqlColumns = defaults.postgresqlColumns; + this.table = defaults.table; + } + + @CustomType.Setter + public Builder postgresqlColumns(@Nullable List postgresqlColumns) { + this.postgresqlColumns = postgresqlColumns; + return this; + } + public Builder postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn... postgresqlColumns) { + return postgresqlColumns(List.of(postgresqlColumns)); + } + @CustomType.Setter + public Builder table(String table) { + this.table = Objects.requireNonNull(table); + return this; + } + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable(); + o.postgresqlColumns = postgresqlColumns; + o.table = table; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java new file mode 100644 index 0000000000..27b07fe75d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.java @@ -0,0 +1,200 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * @return Column name. + * + */ + private @Nullable String column; + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + private @Nullable String dataType; + /** + * @return Column length. + * + */ + private @Nullable Integer length; + /** + * @return Whether or not the column can accept a null value. + * + */ + private @Nullable Boolean nullable; + /** + * @return The ordinal position of the column in the table. + * + */ + private @Nullable Integer ordinalPosition; + /** + * @return Column precision. + * + */ + private @Nullable Integer precision; + /** + * @return Whether or not the column represents a primary key. + * + */ + private @Nullable Boolean primaryKey; + /** + * @return Column scale. + * + */ + private @Nullable Integer scale; + + private StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn() {} + /** + * @return Column name. + * + */ + public Optional column() { + return Optional.ofNullable(this.column); + } + /** + * @return The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + * + */ + public Optional dataType() { + return Optional.ofNullable(this.dataType); + } + /** + * @return Column length. + * + */ + public Optional length() { + return Optional.ofNullable(this.length); + } + /** + * @return Whether or not the column can accept a null value. + * + */ + public Optional nullable() { + return Optional.ofNullable(this.nullable); + } + /** + * @return The ordinal position of the column in the table. + * + */ + public Optional ordinalPosition() { + return Optional.ofNullable(this.ordinalPosition); + } + /** + * @return Column precision. + * + */ + public Optional precision() { + return Optional.ofNullable(this.precision); + } + /** + * @return Whether or not the column represents a primary key. + * + */ + public Optional primaryKey() { + return Optional.ofNullable(this.primaryKey); + } + /** + * @return Column scale. + * + */ + public Optional scale() { + return Optional.ofNullable(this.scale); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String column; + private @Nullable String dataType; + private @Nullable Integer length; + private @Nullable Boolean nullable; + private @Nullable Integer ordinalPosition; + private @Nullable Integer precision; + private @Nullable Boolean primaryKey; + private @Nullable Integer scale; + public Builder() {} + public Builder(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn defaults) { + Objects.requireNonNull(defaults); + this.column = defaults.column; + this.dataType = defaults.dataType; + this.length = defaults.length; + this.nullable = defaults.nullable; + this.ordinalPosition = defaults.ordinalPosition; + this.precision = defaults.precision; + this.primaryKey = defaults.primaryKey; + this.scale = defaults.scale; + } + + @CustomType.Setter + public Builder column(@Nullable String column) { + this.column = column; + return this; + } + @CustomType.Setter + public Builder dataType(@Nullable String dataType) { + this.dataType = dataType; + return this; + } + @CustomType.Setter + public Builder length(@Nullable Integer length) { + this.length = length; + return this; + } + @CustomType.Setter + public Builder nullable(@Nullable Boolean nullable) { + this.nullable = nullable; + return this; + } + @CustomType.Setter + public Builder ordinalPosition(@Nullable Integer ordinalPosition) { + this.ordinalPosition = ordinalPosition; + return this; + } + @CustomType.Setter + public Builder precision(@Nullable Integer precision) { + this.precision = precision; + return this; + } + @CustomType.Setter + public Builder primaryKey(@Nullable Boolean primaryKey) { + this.primaryKey = primaryKey; + return this; + } + @CustomType.Setter + public Builder scale(@Nullable Integer scale) { + this.scale = scale; + return this; + } + public StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn build() { + final var o = new StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(); + o.column = column; + o.dataType = dataType; + o.length = length; + o.nullable = nullable; + o.ordinalPosition = ordinalPosition; + o.precision = precision; + o.primaryKey = primaryKey; + o.scale = scale; + return o; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java index 01cdb5ce73..12649fb8bf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java @@ -30,8 +30,8 @@ * import com.pulumi.gcp.kms.KmsFunctions; * import com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs; * import com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs; - * import com.pulumi.gcp.kms.CryptoKeyIAMBinding; - * import com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs; + * import com.pulumi.gcp.kms.CryptoKeyIAMMember; + * import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs; * import com.pulumi.gcp.eventarc.Channel; * import com.pulumi.gcp.eventarc.ChannelArgs; * import com.pulumi.resources.CustomResourceOptions; @@ -62,10 +62,10 @@ * .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -> getKMSKeyRingResult.id())) * .build()); * - * var key1Binding = new CryptoKeyIAMBinding("key1Binding", CryptoKeyIAMBindingArgs.builder() + * var key1Member = new CryptoKeyIAMMember("key1Member", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(data.google_kms_crypto_key().key1().id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .members(String.format("serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.applyValue(getProjectResult -> getProjectResult.number()))) + * .member(String.format("serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.applyValue(getProjectResult -> getProjectResult.number()))) * .build()); * * var primary = new Channel("primary", ChannelArgs.builder() @@ -74,7 +74,7 @@ * .cryptoKeyName(data.google_kms_crypto_key().key1().id()) * .thirdPartyProvider(String.format("projects/%s/locations/us-west1/providers/datadog", testProject.applyValue(getProjectResult -> getProjectResult.projectId()))) * .build(), CustomResourceOptions.builder() - * .dependsOn(key1Binding) + * .dependsOn(key1Member) * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java index 345da198fe..0501e291b5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java @@ -30,8 +30,8 @@ * import com.pulumi.gcp.kms.KmsFunctions; * import com.pulumi.gcp.kms.inputs.GetKMSKeyRingArgs; * import com.pulumi.gcp.kms.inputs.GetKMSCryptoKeyArgs; - * import com.pulumi.gcp.kms.CryptoKeyIAMBinding; - * import com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs; + * import com.pulumi.gcp.kms.CryptoKeyIAMMember; + * import com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs; * import com.pulumi.gcp.eventarc.GoogleChannelConfig; * import com.pulumi.gcp.eventarc.GoogleChannelConfigArgs; * import com.pulumi.resources.CustomResourceOptions; @@ -62,10 +62,10 @@ * .keyRing(testKeyRing.applyValue(getKMSKeyRingResult -> getKMSKeyRingResult.id())) * .build()); * - * var key1Binding = new CryptoKeyIAMBinding("key1Binding", CryptoKeyIAMBindingArgs.builder() + * var key1Member = new CryptoKeyIAMMember("key1Member", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(data.google_kms_crypto_key().key1().id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .members(String.format("serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.applyValue(getProjectResult -> getProjectResult.number()))) + * .member(String.format("serviceAccount:service-%s@gcp-sa-eventarc.iam.gserviceaccount.com", testProject.applyValue(getProjectResult -> getProjectResult.number()))) * .build()); * * var primary = new GoogleChannelConfig("primary", GoogleChannelConfigArgs.builder() @@ -73,7 +73,7 @@ * .project(testProject.applyValue(getProjectResult -> getProjectResult.projectId())) * .cryptoKeyName(data.google_kms_crypto_key().key1().id()) * .build(), CustomResourceOptions.builder() - * .dependsOn(key1Binding) + * .dependsOn(key1Member) * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java index a21d5f10f8..1442c723cb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java @@ -96,7 +96,7 @@ public Output appId() { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ @Export(name="deletionPolicy", type=String.class, parameters={}) @@ -105,7 +105,7 @@ public Output appId() { /** * @return (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ public Output> deletionPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidAppArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidAppArgs.java index 30007ed0d1..93405fb622 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidAppArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidAppArgs.java @@ -19,7 +19,7 @@ public final class AndroidAppArgs extends com.pulumi.resources.ResourceArgs { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ @Import(name="deletionPolicy") @@ -28,7 +28,7 @@ public final class AndroidAppArgs extends com.pulumi.resources.ResourceArgs { /** * @return (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ public Optional> deletionPolicy() { @@ -146,7 +146,7 @@ public Builder(AndroidAppArgs defaults) { /** * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * * @return builder * @@ -159,7 +159,7 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { /** * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java index 2be60f141a..f67b030878 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java @@ -155,18 +155,18 @@ public Output> bundleId() { return Codegen.optional(this.bundleId); } /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ @Export(name="deletionPolicy", type=String.class, parameters={}) private Output deletionPolicy; /** - * @return (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @return (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ public Output> deletionPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleAppArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleAppArgs.java index 10ec3f5aab..feea1092a2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleAppArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleAppArgs.java @@ -46,18 +46,18 @@ public Optional> bundleId() { } /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ @Import(name="deletionPolicy") private @Nullable Output deletionPolicy; /** - * @return (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @return (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ public Optional> deletionPolicy() { @@ -183,9 +183,9 @@ public Builder bundleId(String bundleId) { } /** - * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * * @return builder * @@ -196,9 +196,9 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { } /** - * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AndroidAppState.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AndroidAppState.java index 009b71b87b..96941f0129 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AndroidAppState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AndroidAppState.java @@ -36,7 +36,7 @@ public Optional> appId() { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ @Import(name="deletionPolicy") @@ -45,7 +45,7 @@ public Optional> appId() { /** * @return (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * */ public Optional> deletionPolicy() { @@ -223,7 +223,7 @@ public Builder appId(String appId) { /** * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * * @return builder * @@ -236,7 +236,7 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { /** * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AppleAppState.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AppleAppState.java index 86f8f1c2dc..312cc7afc7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AppleAppState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/AppleAppState.java @@ -63,18 +63,18 @@ public Optional> bundleId() { } /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ @Import(name="deletionPolicy") private @Nullable Output deletionPolicy; /** - * @return (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @return (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * */ public Optional> deletionPolicy() { @@ -242,9 +242,9 @@ public Builder bundleId(String bundleId) { } /** - * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * * @return builder * @@ -255,9 +255,9 @@ public Builder deletionPolicy(@Nullable Output deletionPolicy) { } /** - * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * @param deletionPolicy (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java new file mode 100644 index 0000000000..9a2d910aed --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java @@ -0,0 +1,247 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.firestore; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.firestore.DatabaseArgs; +import com.pulumi.gcp.firestore.inputs.DatabaseState; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ## Import + * + * Database can be imported using any of these accepted formats + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default {{name}} + * ``` + * + */ +@ResourceType(type="gcp:firestore/database:Database") +public class Database extends com.pulumi.resources.CustomResource { + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + @Export(name="appEngineIntegrationMode", type=String.class, parameters={}) + private Output appEngineIntegrationMode; + + /** + * @return The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + public Output appEngineIntegrationMode() { + return this.appEngineIntegrationMode; + } + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + @Export(name="concurrencyMode", type=String.class, parameters={}) + private Output concurrencyMode; + + /** + * @return The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + public Output concurrencyMode() { + return this.concurrencyMode; + } + /** + * The timestamp at which this database was created. + * + */ + @Export(name="createTime", type=String.class, parameters={}) + private Output createTime; + + /** + * @return The timestamp at which this database was created. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + */ + @Export(name="etag", type=String.class, parameters={}) + private Output etag; + + /** + * @return This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + */ + public Output etag() { + return this.etag; + } + /** + * Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + */ + @Export(name="keyPrefix", type=String.class, parameters={}) + private Output keyPrefix; + + /** + * @return Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + */ + public Output keyPrefix() { + return this.keyPrefix; + } + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + @Export(name="locationId", type=String.class, parameters={}) + private Output locationId; + + /** + * @return The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + public Output locationId() { + return this.locationId; + } + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + @Export(name="name", type=String.class, parameters={}) + private Output name; + + /** + * @return Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", type=String.class, parameters={}) + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + @Export(name="type", type=String.class, parameters={}) + private Output type; + + /** + * @return The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + public Output type() { + return this.type; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Database(String name) { + this(name, DatabaseArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Database(String name, DatabaseArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Database(String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:firestore/database:Database", name, args == null ? DatabaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Database(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:firestore/database:Database", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Database get(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Database(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/DatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/DatabaseArgs.java new file mode 100644 index 0000000000..c9e3c9b5b7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/DatabaseArgs.java @@ -0,0 +1,318 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.firestore; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DatabaseArgs extends com.pulumi.resources.ResourceArgs { + + public static final DatabaseArgs Empty = new DatabaseArgs(); + + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="appEngineIntegrationMode") + private @Nullable Output appEngineIntegrationMode; + + /** + * @return The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + public Optional> appEngineIntegrationMode() { + return Optional.ofNullable(this.appEngineIntegrationMode); + } + + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + @Import(name="concurrencyMode") + private @Nullable Output concurrencyMode; + + /** + * @return The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + public Optional> concurrencyMode() { + return Optional.ofNullable(this.concurrencyMode); + } + + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + @Import(name="locationId", required=true) + private Output locationId; + + /** + * @return The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + public Output locationId() { + return this.locationId; + } + + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + public Output type() { + return this.type; + } + + private DatabaseArgs() {} + + private DatabaseArgs(DatabaseArgs $) { + this.appEngineIntegrationMode = $.appEngineIntegrationMode; + this.concurrencyMode = $.concurrencyMode; + this.locationId = $.locationId; + this.name = $.name; + this.project = $.project; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DatabaseArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DatabaseArgs $; + + public Builder() { + $ = new DatabaseArgs(); + } + + public Builder(DatabaseArgs defaults) { + $ = new DatabaseArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param appEngineIntegrationMode The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder appEngineIntegrationMode(@Nullable Output appEngineIntegrationMode) { + $.appEngineIntegrationMode = appEngineIntegrationMode; + return this; + } + + /** + * @param appEngineIntegrationMode The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder appEngineIntegrationMode(String appEngineIntegrationMode) { + return appEngineIntegrationMode(Output.of(appEngineIntegrationMode)); + } + + /** + * @param concurrencyMode The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + * @return builder + * + */ + public Builder concurrencyMode(@Nullable Output concurrencyMode) { + $.concurrencyMode = concurrencyMode; + return this; + } + + /** + * @param concurrencyMode The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + * @return builder + * + */ + public Builder concurrencyMode(String concurrencyMode) { + return concurrencyMode(Output.of(concurrencyMode)); + } + + /** + * @param locationId The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + * @return builder + * + */ + public Builder locationId(Output locationId) { + $.locationId = locationId; + return this; + } + + /** + * @param locationId The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + * @return builder + * + */ + public Builder locationId(String locationId) { + return locationId(Output.of(locationId)); + } + + /** + * @param name Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param type The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public DatabaseArgs build() { + $.locationId = Objects.requireNonNull($.locationId, "expected parameter 'locationId' to be non-null"); + $.type = Objects.requireNonNull($.type, "expected parameter 'type' to be non-null"); + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/inputs/DatabaseState.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/inputs/DatabaseState.java new file mode 100644 index 0000000000..a6a6ccbe2a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/inputs/DatabaseState.java @@ -0,0 +1,447 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.firestore.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DatabaseState extends com.pulumi.resources.ResourceArgs { + + public static final DatabaseState Empty = new DatabaseState(); + + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + @Import(name="appEngineIntegrationMode") + private @Nullable Output appEngineIntegrationMode; + + /** + * @return The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + */ + public Optional> appEngineIntegrationMode() { + return Optional.ofNullable(this.appEngineIntegrationMode); + } + + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + @Import(name="concurrencyMode") + private @Nullable Output concurrencyMode; + + /** + * @return The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + */ + public Optional> concurrencyMode() { + return Optional.ofNullable(this.concurrencyMode); + } + + /** + * The timestamp at which this database was created. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return The timestamp at which this database was created. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + */ + @Import(name="etag") + private @Nullable Output etag; + + /** + * @return This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + */ + public Optional> etag() { + return Optional.ofNullable(this.etag); + } + + /** + * Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + */ + @Import(name="keyPrefix") + private @Nullable Output keyPrefix; + + /** + * @return Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + */ + public Optional> keyPrefix() { + return Optional.ofNullable(this.keyPrefix); + } + + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + @Import(name="locationId") + private @Nullable Output locationId; + + /** + * @return The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + */ + public Optional> locationId() { + return Optional.ofNullable(this.locationId); + } + + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + private DatabaseState() {} + + private DatabaseState(DatabaseState $) { + this.appEngineIntegrationMode = $.appEngineIntegrationMode; + this.concurrencyMode = $.concurrencyMode; + this.createTime = $.createTime; + this.etag = $.etag; + this.keyPrefix = $.keyPrefix; + this.locationId = $.locationId; + this.name = $.name; + this.project = $.project; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DatabaseState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DatabaseState $; + + public Builder() { + $ = new DatabaseState(); + } + + public Builder(DatabaseState defaults) { + $ = new DatabaseState(Objects.requireNonNull(defaults)); + } + + /** + * @param appEngineIntegrationMode The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder appEngineIntegrationMode(@Nullable Output appEngineIntegrationMode) { + $.appEngineIntegrationMode = appEngineIntegrationMode; + return this; + } + + /** + * @param appEngineIntegrationMode The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + * + * @return builder + * + */ + public Builder appEngineIntegrationMode(String appEngineIntegrationMode) { + return appEngineIntegrationMode(Output.of(appEngineIntegrationMode)); + } + + /** + * @param concurrencyMode The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + * @return builder + * + */ + public Builder concurrencyMode(@Nullable Output concurrencyMode) { + $.concurrencyMode = concurrencyMode; + return this; + } + + /** + * @param concurrencyMode The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + * + * @return builder + * + */ + public Builder concurrencyMode(String concurrencyMode) { + return concurrencyMode(Output.of(concurrencyMode)); + } + + /** + * @param createTime The timestamp at which this database was created. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime The timestamp at which this database was created. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param etag This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + * @return builder + * + */ + public Builder etag(@Nullable Output etag) { + $.etag = etag; + return this; + } + + /** + * @param etag This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + * + * @return builder + * + */ + public Builder etag(String etag) { + return etag(Output.of(etag)); + } + + /** + * @param keyPrefix Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + * @return builder + * + */ + public Builder keyPrefix(@Nullable Output keyPrefix) { + $.keyPrefix = keyPrefix; + return this; + } + + /** + * @param keyPrefix Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + * + * @return builder + * + */ + public Builder keyPrefix(String keyPrefix) { + return keyPrefix(Output.of(keyPrefix)); + } + + /** + * @param locationId The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + * @return builder + * + */ + public Builder locationId(@Nullable Output locationId) { + $.locationId = locationId; + return this; + } + + /** + * @param locationId The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + * + * @return builder + * + */ + public Builder locationId(String locationId) { + return locationId(Output.of(locationId)); + } + + /** + * @param name Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param type The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public DatabaseState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java index e0641cae2f..691a207806 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java @@ -49,7 +49,6 @@ * * public static void stack(Context ctx) { * var basicInstance = new Instance("basicInstance", InstanceArgs.builder() - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("BASIC") * .build()); @@ -115,7 +114,6 @@ * return String.format("%s/%s", address,prefixLength); * })) * .build()) - * .options(Map.of("prober_test_run", "true")) * .build()); * * } @@ -206,7 +204,6 @@ * public static void stack(Context ctx) { * var enterpriseInstance = new Instance("enterpriseInstance", InstanceArgs.builder() * .enableRbac(true) - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("ENTERPRISE") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java index 6c6deab06d..d75508c4ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java @@ -48,7 +48,6 @@ * * public static void stack(Context ctx) { * var basicInstance = new Instance("basicInstance", InstanceArgs.builder() - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("BASIC") * .build()); @@ -114,7 +113,6 @@ * return String.format("%s/%s", address,prefixLength); * })) * .build()) - * .options(Map.of("prober_test_run", "true")) * .build()); * * } @@ -205,7 +203,6 @@ * public static void stack(Context ctx) { * var enterpriseInstance = new Instance("enterpriseInstance", InstanceArgs.builder() * .enableRbac(true) - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("ENTERPRISE") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java index 2a023b7a56..3e89d3c13f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java @@ -46,7 +46,6 @@ * * public static void stack(Context ctx) { * var basicInstance = new Instance("basicInstance", InstanceArgs.builder() - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("BASIC") * .build()); @@ -112,7 +111,6 @@ * return String.format("%s/%s", address,prefixLength); * })) * .build()) - * .options(Map.of("prober_test_run", "true")) * .build()); * * } @@ -203,7 +201,6 @@ * public static void stack(Context ctx) { * var enterpriseInstance = new Instance("enterpriseInstance", InstanceArgs.builder() * .enableRbac(true) - * .options(Map.of("prober_test_run", "true")) * .region("us-central1") * .type("ENTERPRISE") * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java index 48832154fb..a04c65c1ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java @@ -125,6 +125,7 @@ * .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder() * .ipv4Enabled(false) * .privateNetwork(privateNetwork.id()) + * .enablePrivatePathForGoogleCloudServices(true) * .build()) * .build()) * .build(), CustomResourceOptions.builder() diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceSettingsIpConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceSettingsIpConfigurationArgs.java index b8642d9570..2044960258 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceSettingsIpConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/inputs/DatabaseInstanceSettingsIpConfigurationArgs.java @@ -40,6 +40,21 @@ public Optional enablePrivatePathForGoogleCloudServices; + + /** + * @return Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + * + */ + public Optional> enablePrivatePathForGoogleCloudServices() { + return Optional.ofNullable(this.enablePrivatePathForGoogleCloudServices); + } + /** * Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4_enabled` must be enabled or a @@ -102,6 +117,7 @@ private DatabaseInstanceSettingsIpConfigurationArgs() {} private DatabaseInstanceSettingsIpConfigurationArgs(DatabaseInstanceSettingsIpConfigurationArgs $) { this.allocatedIpRange = $.allocatedIpRange; this.authorizedNetworks = $.authorizedNetworks; + this.enablePrivatePathForGoogleCloudServices = $.enablePrivatePathForGoogleCloudServices; this.ipv4Enabled = $.ipv4Enabled; this.privateNetwork = $.privateNetwork; this.requireSsl = $.requireSsl; @@ -159,6 +175,27 @@ public Builder authorizedNetworks(DatabaseInstanceSettingsIpConfigurationAuthori return authorizedNetworks(List.of(authorizedNetworks)); } + /** + * @param enablePrivatePathForGoogleCloudServices Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + * + * @return builder + * + */ + public Builder enablePrivatePathForGoogleCloudServices(@Nullable Output enablePrivatePathForGoogleCloudServices) { + $.enablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; + return this; + } + + /** + * @param enablePrivatePathForGoogleCloudServices Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + * + * @return builder + * + */ + public Builder enablePrivatePathForGoogleCloudServices(Boolean enablePrivatePathForGoogleCloudServices) { + return enablePrivatePathForGoogleCloudServices(Output.of(enablePrivatePathForGoogleCloudServices)); + } + /** * @param ipv4Enabled Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4_enabled` must be enabled or a diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceSettingsIpConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceSettingsIpConfiguration.java index 0a003e1416..fe3ea19e4a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceSettingsIpConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/DatabaseInstanceSettingsIpConfiguration.java @@ -20,6 +20,11 @@ public final class DatabaseInstanceSettingsIpConfiguration { */ private @Nullable String allocatedIpRange; private @Nullable List authorizedNetworks; + /** + * @return Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + * + */ + private @Nullable Boolean enablePrivatePathForGoogleCloudServices; /** * @return Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4_enabled` must be enabled or a @@ -53,6 +58,13 @@ public Optional allocatedIpRange() { public List authorizedNetworks() { return this.authorizedNetworks == null ? List.of() : this.authorizedNetworks; } + /** + * @return Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + * + */ + public Optional enablePrivatePathForGoogleCloudServices() { + return Optional.ofNullable(this.enablePrivatePathForGoogleCloudServices); + } /** * @return Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4_enabled` must be enabled or a @@ -92,6 +104,7 @@ public static Builder builder(DatabaseInstanceSettingsIpConfiguration defaults) public static final class Builder { private @Nullable String allocatedIpRange; private @Nullable List authorizedNetworks; + private @Nullable Boolean enablePrivatePathForGoogleCloudServices; private @Nullable Boolean ipv4Enabled; private @Nullable String privateNetwork; private @Nullable Boolean requireSsl; @@ -100,6 +113,7 @@ public Builder(DatabaseInstanceSettingsIpConfiguration defaults) { Objects.requireNonNull(defaults); this.allocatedIpRange = defaults.allocatedIpRange; this.authorizedNetworks = defaults.authorizedNetworks; + this.enablePrivatePathForGoogleCloudServices = defaults.enablePrivatePathForGoogleCloudServices; this.ipv4Enabled = defaults.ipv4Enabled; this.privateNetwork = defaults.privateNetwork; this.requireSsl = defaults.requireSsl; @@ -119,6 +133,11 @@ public Builder authorizedNetworks(DatabaseInstanceSettingsIpConfigurationAuthori return authorizedNetworks(List.of(authorizedNetworks)); } @CustomType.Setter + public Builder enablePrivatePathForGoogleCloudServices(@Nullable Boolean enablePrivatePathForGoogleCloudServices) { + this.enablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; + return this; + } + @CustomType.Setter public Builder ipv4Enabled(@Nullable Boolean ipv4Enabled) { this.ipv4Enabled = ipv4Enabled; return this; @@ -137,6 +156,7 @@ public DatabaseInstanceSettingsIpConfiguration build() { final var o = new DatabaseInstanceSettingsIpConfiguration(); o.allocatedIpRange = allocatedIpRange; o.authorizedNetworks = authorizedNetworks; + o.enablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; o.ipv4Enabled = ipv4Enabled; o.privateNetwork = privateNetwork; o.requireSsl = requireSsl; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceSettingIpConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceSettingIpConfiguration.java index 484c18794b..0ebcc4cf98 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceSettingIpConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstanceSettingIpConfiguration.java @@ -14,6 +14,7 @@ public final class GetDatabaseInstanceSettingIpConfiguration { private String allocatedIpRange; private List authorizedNetworks; + private Boolean enablePrivatePathForGoogleCloudServices; private Boolean ipv4Enabled; private String privateNetwork; private Boolean requireSsl; @@ -25,6 +26,9 @@ public String allocatedIpRange() { public List authorizedNetworks() { return this.authorizedNetworks; } + public Boolean enablePrivatePathForGoogleCloudServices() { + return this.enablePrivatePathForGoogleCloudServices; + } public Boolean ipv4Enabled() { return this.ipv4Enabled; } @@ -46,6 +50,7 @@ public static Builder builder(GetDatabaseInstanceSettingIpConfiguration defaults public static final class Builder { private String allocatedIpRange; private List authorizedNetworks; + private Boolean enablePrivatePathForGoogleCloudServices; private Boolean ipv4Enabled; private String privateNetwork; private Boolean requireSsl; @@ -54,6 +59,7 @@ public Builder(GetDatabaseInstanceSettingIpConfiguration defaults) { Objects.requireNonNull(defaults); this.allocatedIpRange = defaults.allocatedIpRange; this.authorizedNetworks = defaults.authorizedNetworks; + this.enablePrivatePathForGoogleCloudServices = defaults.enablePrivatePathForGoogleCloudServices; this.ipv4Enabled = defaults.ipv4Enabled; this.privateNetwork = defaults.privateNetwork; this.requireSsl = defaults.requireSsl; @@ -73,6 +79,11 @@ public Builder authorizedNetworks(GetDatabaseInstanceSettingIpConfigurationAutho return authorizedNetworks(List.of(authorizedNetworks)); } @CustomType.Setter + public Builder enablePrivatePathForGoogleCloudServices(Boolean enablePrivatePathForGoogleCloudServices) { + this.enablePrivatePathForGoogleCloudServices = Objects.requireNonNull(enablePrivatePathForGoogleCloudServices); + return this; + } + @CustomType.Setter public Builder ipv4Enabled(Boolean ipv4Enabled) { this.ipv4Enabled = Objects.requireNonNull(ipv4Enabled); return this; @@ -91,6 +102,7 @@ public GetDatabaseInstanceSettingIpConfiguration build() { final var o = new GetDatabaseInstanceSettingIpConfiguration(); o.allocatedIpRange = allocatedIpRange; o.authorizedNetworks = authorizedNetworks; + o.enablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; o.ipv4Enabled = ipv4Enabled; o.privateNetwork = privateNetwork; o.requireSsl = requireSsl; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceSettingIpConfiguration.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceSettingIpConfiguration.java index ff5c312b3d..fced05133f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceSettingIpConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/outputs/GetDatabaseInstancesInstanceSettingIpConfiguration.java @@ -14,6 +14,7 @@ public final class GetDatabaseInstancesInstanceSettingIpConfiguration { private String allocatedIpRange; private List authorizedNetworks; + private Boolean enablePrivatePathForGoogleCloudServices; private Boolean ipv4Enabled; private String privateNetwork; private Boolean requireSsl; @@ -25,6 +26,9 @@ public String allocatedIpRange() { public List authorizedNetworks() { return this.authorizedNetworks; } + public Boolean enablePrivatePathForGoogleCloudServices() { + return this.enablePrivatePathForGoogleCloudServices; + } public Boolean ipv4Enabled() { return this.ipv4Enabled; } @@ -46,6 +50,7 @@ public static Builder builder(GetDatabaseInstancesInstanceSettingIpConfiguration public static final class Builder { private String allocatedIpRange; private List authorizedNetworks; + private Boolean enablePrivatePathForGoogleCloudServices; private Boolean ipv4Enabled; private String privateNetwork; private Boolean requireSsl; @@ -54,6 +59,7 @@ public Builder(GetDatabaseInstancesInstanceSettingIpConfiguration defaults) { Objects.requireNonNull(defaults); this.allocatedIpRange = defaults.allocatedIpRange; this.authorizedNetworks = defaults.authorizedNetworks; + this.enablePrivatePathForGoogleCloudServices = defaults.enablePrivatePathForGoogleCloudServices; this.ipv4Enabled = defaults.ipv4Enabled; this.privateNetwork = defaults.privateNetwork; this.requireSsl = defaults.requireSsl; @@ -73,6 +79,11 @@ public Builder authorizedNetworks(GetDatabaseInstancesInstanceSettingIpConfigura return authorizedNetworks(List.of(authorizedNetworks)); } @CustomType.Setter + public Builder enablePrivatePathForGoogleCloudServices(Boolean enablePrivatePathForGoogleCloudServices) { + this.enablePrivatePathForGoogleCloudServices = Objects.requireNonNull(enablePrivatePathForGoogleCloudServices); + return this; + } + @CustomType.Setter public Builder ipv4Enabled(Boolean ipv4Enabled) { this.ipv4Enabled = Objects.requireNonNull(ipv4Enabled); return this; @@ -91,6 +102,7 @@ public GetDatabaseInstancesInstanceSettingIpConfiguration build() { final var o = new GetDatabaseInstancesInstanceSettingIpConfiguration(); o.allocatedIpRange = allocatedIpRange; o.authorizedNetworks = authorizedNetworks; + o.enablePrivatePathForGoogleCloudServices = enablePrivatePathForGoogleCloudServices; o.ipv4Enabled = ipv4Enabled; o.privateNetwork = privateNetwork; o.requireSsl = requireSsl; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java index 46057ab9c9..bef34f1543 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java @@ -13,6 +13,7 @@ import com.pulumi.gcp.vertex.outputs.AiFeatureStoreEncryptionSpec; import com.pulumi.gcp.vertex.outputs.AiFeatureStoreOnlineServingConfig; import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Optional; @@ -67,6 +68,49 @@ * } * } * ``` + * ### Vertex Ai Featurestore With Beta Fields + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.gcp.vertex.AiFeatureStore; + * import com.pulumi.gcp.vertex.AiFeatureStoreArgs; + * import com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs; + * import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs; + * import com.pulumi.resources.CustomResourceOptions; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var featurestore = new AiFeatureStore("featurestore", AiFeatureStoreArgs.builder() + * .labels(Map.of("foo", "bar")) + * .region("us-central1") + * .onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs.builder() + * .fixedNodeCount(2) + * .build()) + * .encryptionSpec(AiFeatureStoreEncryptionSpecArgs.builder() + * .kmsKeyName("kms-name") + * .build()) + * .onlineStorageTtlDays(30) + * .forceDestroy(true) + * .build(), CustomResourceOptions.builder() + * .provider(google_beta) + * .build()); + * + * } + * } + * ``` * ### Vertex Ai Featurestore Scaling * ```java * package generated_program; @@ -236,6 +280,26 @@ public Output name() { public Output> onlineServingConfig() { return Codegen.optional(this.onlineServingConfig); } + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + @Export(name="onlineStorageTtlDays", type=Integer.class, parameters={}) + private Output onlineStorageTtlDays; + + /** + * @return TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + public Output> onlineStorageTtlDays() { + return Codegen.optional(this.onlineStorageTtlDays); + } /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreArgs.java index 48e81189d8..5d249a42b1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreArgs.java @@ -8,6 +8,7 @@ import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs; import com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs; import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -98,6 +99,27 @@ public Optional> onlineServingConf return Optional.ofNullable(this.onlineServingConfig); } + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + @Import(name="onlineStorageTtlDays") + private @Nullable Output onlineStorageTtlDays; + + /** + * @return TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + public Optional> onlineStorageTtlDays() { + return Optional.ofNullable(this.onlineStorageTtlDays); + } + /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -138,6 +160,7 @@ private AiFeatureStoreArgs(AiFeatureStoreArgs $) { this.labels = $.labels; this.name = $.name; this.onlineServingConfig = $.onlineServingConfig; + this.onlineStorageTtlDays = $.onlineStorageTtlDays; this.project = $.project; this.region = $.region; } @@ -269,6 +292,33 @@ public Builder onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs onlineS return onlineServingConfig(Output.of(onlineServingConfig)); } + /** + * @param onlineStorageTtlDays TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + * @return builder + * + */ + public Builder onlineStorageTtlDays(@Nullable Output onlineStorageTtlDays) { + $.onlineStorageTtlDays = onlineStorageTtlDays; + return this; + } + + /** + * @param onlineStorageTtlDays TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + * @return builder + * + */ + public Builder onlineStorageTtlDays(Integer onlineStorageTtlDays) { + return onlineStorageTtlDays(Output.of(onlineStorageTtlDays)); + } + /** * @param project The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java index 7297dd9da5..d1f62e47d4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java @@ -11,6 +11,7 @@ import com.pulumi.gcp.vertex.AiFeatureStoreEntityTypeArgs; import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeState; import com.pulumi.gcp.vertex.outputs.AiFeatureStoreEntityTypeMonitoringConfig; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Optional; @@ -70,6 +71,7 @@ * * var entity = new AiFeatureStoreEntityType("entity", AiFeatureStoreEntityTypeArgs.builder() * .labels(Map.of("foo", "bar")) + * .description("test description") * .featurestore(featurestore.id()) * .monitoringConfig(AiFeatureStoreEntityTypeMonitoringConfigArgs.builder() * .snapshotAnalysis(AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs.builder() @@ -152,6 +154,7 @@ * .value(0.3) * .build()) * .build()) + * .offlineStorageTtlDays(30) * .build(), CustomResourceOptions.builder() * .provider(google_beta) * .build()); @@ -185,6 +188,20 @@ public class AiFeatureStoreEntityType extends com.pulumi.resources.CustomResourc public Output createTime() { return this.createTime; } + /** + * Optional. Description of the EntityType. + * + */ + @Export(name="description", type=String.class, parameters={}) + private Output description; + + /** + * @return Optional. Description of the EntityType. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } /** * Used to perform consistent read-modify-write updates. * @@ -259,6 +276,24 @@ public Output> monitoringConf public Output name() { return this.name; } + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + @Export(name="offlineStorageTtlDays", type=Integer.class, parameters={}) + private Output offlineStorageTtlDays; + + /** + * @return Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + public Output> offlineStorageTtlDays() { + return Codegen.optional(this.offlineStorageTtlDays); + } /** * The region of the EntityType. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeArgs.java index 06b5529ba6..de1550184a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeArgs.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -17,6 +18,21 @@ public final class AiFeatureStoreEntityTypeArgs extends com.pulumi.resources.Res public static final AiFeatureStoreEntityTypeArgs Empty = new AiFeatureStoreEntityTypeArgs(); + /** + * Optional. Description of the EntityType. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Optional. Description of the EntityType. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + /** * The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. * @@ -81,13 +97,34 @@ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + @Import(name="offlineStorageTtlDays") + private @Nullable Output offlineStorageTtlDays; + + /** + * @return Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + public Optional> offlineStorageTtlDays() { + return Optional.ofNullable(this.offlineStorageTtlDays); + } + private AiFeatureStoreEntityTypeArgs() {} private AiFeatureStoreEntityTypeArgs(AiFeatureStoreEntityTypeArgs $) { + this.description = $.description; this.featurestore = $.featurestore; this.labels = $.labels; this.monitoringConfig = $.monitoringConfig; this.name = $.name; + this.offlineStorageTtlDays = $.offlineStorageTtlDays; } public static Builder builder() { @@ -108,6 +145,27 @@ public Builder(AiFeatureStoreEntityTypeArgs defaults) { $ = new AiFeatureStoreEntityTypeArgs(Objects.requireNonNull(defaults)); } + /** + * @param description Optional. Description of the EntityType. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Optional. Description of the EntityType. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + /** * @param featurestore The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. * @@ -196,6 +254,31 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param offlineStorageTtlDays Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + * @return builder + * + */ + public Builder offlineStorageTtlDays(@Nullable Output offlineStorageTtlDays) { + $.offlineStorageTtlDays = offlineStorageTtlDays; + return this; + } + + /** + * @param offlineStorageTtlDays Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + * @return builder + * + */ + public Builder offlineStorageTtlDays(Integer offlineStorageTtlDays) { + return offlineStorageTtlDays(Output.of(offlineStorageTtlDays)); + } + public AiFeatureStoreEntityTypeArgs build() { $.featurestore = Objects.requireNonNull($.featurestore, "expected parameter 'featurestore' to be non-null"); return $; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreEntityTypeState.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreEntityTypeState.java index ad1ef23ebd..a7fb916983 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreEntityTypeState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreEntityTypeState.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEntityTypeMonitoringConfigArgs; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -32,6 +33,21 @@ public Optional> createTime() { return Optional.ofNullable(this.createTime); } + /** + * Optional. Description of the EntityType. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Optional. Description of the EntityType. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + /** * Used to perform consistent read-modify-write updates. * @@ -111,6 +127,25 @@ public Optional> name() { return Optional.ofNullable(this.name); } + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + @Import(name="offlineStorageTtlDays") + private @Nullable Output offlineStorageTtlDays; + + /** + * @return Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + */ + public Optional> offlineStorageTtlDays() { + return Optional.ofNullable(this.offlineStorageTtlDays); + } + /** * The region of the EntityType. * @@ -145,11 +180,13 @@ private AiFeatureStoreEntityTypeState() {} private AiFeatureStoreEntityTypeState(AiFeatureStoreEntityTypeState $) { this.createTime = $.createTime; + this.description = $.description; this.etag = $.etag; this.featurestore = $.featurestore; this.labels = $.labels; this.monitoringConfig = $.monitoringConfig; this.name = $.name; + this.offlineStorageTtlDays = $.offlineStorageTtlDays; this.region = $.region; this.updateTime = $.updateTime; } @@ -193,6 +230,27 @@ public Builder createTime(String createTime) { return createTime(Output.of(createTime)); } + /** + * @param description Optional. Description of the EntityType. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Optional. Description of the EntityType. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + /** * @param etag Used to perform consistent read-modify-write updates. * @@ -302,6 +360,31 @@ public Builder name(String name) { return name(Output.of(name)); } + /** + * @param offlineStorageTtlDays Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + * @return builder + * + */ + public Builder offlineStorageTtlDays(@Nullable Output offlineStorageTtlDays) { + $.offlineStorageTtlDays = offlineStorageTtlDays; + return this; + } + + /** + * @param offlineStorageTtlDays Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + * + * @return builder + * + */ + public Builder offlineStorageTtlDays(Integer offlineStorageTtlDays) { + return offlineStorageTtlDays(Output.of(offlineStorageTtlDays)); + } + /** * @param region The region of the EntityType. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreState.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreState.java index 88cf88564f..6d48ff48d7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/inputs/AiFeatureStoreState.java @@ -8,6 +8,7 @@ import com.pulumi.gcp.vertex.inputs.AiFeatureStoreEncryptionSpecArgs; import com.pulumi.gcp.vertex.inputs.AiFeatureStoreOnlineServingConfigArgs; import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.Map; import java.util.Objects; @@ -128,6 +129,27 @@ public Optional> onlineServingConf return Optional.ofNullable(this.onlineServingConfig); } + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + @Import(name="onlineStorageTtlDays") + private @Nullable Output onlineStorageTtlDays; + + /** + * @return TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + */ + public Optional> onlineStorageTtlDays() { + return Optional.ofNullable(this.onlineStorageTtlDays); + } + /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -185,6 +207,7 @@ private AiFeatureStoreState(AiFeatureStoreState $) { this.labels = $.labels; this.name = $.name; this.onlineServingConfig = $.onlineServingConfig; + this.onlineStorageTtlDays = $.onlineStorageTtlDays; this.project = $.project; this.region = $.region; this.updateTime = $.updateTime; @@ -359,6 +382,33 @@ public Builder onlineServingConfig(AiFeatureStoreOnlineServingConfigArgs onlineS return onlineServingConfig(Output.of(onlineServingConfig)); } + /** + * @param onlineStorageTtlDays TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + * @return builder + * + */ + public Builder onlineStorageTtlDays(@Nullable Output onlineStorageTtlDays) { + $.onlineStorageTtlDays = onlineStorageTtlDays; + return this; + } + + /** + * @param onlineStorageTtlDays TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + * + * @return builder + * + */ + public Builder onlineStorageTtlDays(Integer onlineStorageTtlDays) { + return onlineStorageTtlDays(Output.of(onlineStorageTtlDays)); + } + /** * @param project The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. diff --git a/sdk/nodejs/alloydb/backup.ts b/sdk/nodejs/alloydb/backup.ts index 69937f6304..0aca2df89b 100644 --- a/sdk/nodejs/alloydb/backup.ts +++ b/sdk/nodejs/alloydb/backup.ts @@ -5,6 +5,14 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** + * An AlloyDB Backup. + * + * To get more information about Backup, see: + * + * * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) + * * How-to Guides + * * [AlloyDB](https://cloud.google.com/alloydb/docs/) + * * ## Example Usage * ### Alloydb Backup Full * @@ -19,30 +27,23 @@ import * as utilities from "../utilities"; * clusterId: "alloydb-cluster", * location: "us-central1", * network: defaultNetwork.then(defaultNetwork => defaultNetwork.id), - * }, { - * provider: google_beta, * }); * const privateIpAlloc = new gcp.compute.GlobalAddress("privateIpAlloc", { * addressType: "INTERNAL", * purpose: "VPC_PEERING", * prefixLength: 16, * network: defaultNetwork.then(defaultNetwork => defaultNetwork.id), - * }, { - * provider: google_beta, * }); * const vpcConnection = new gcp.servicenetworking.Connection("vpcConnection", { * network: defaultNetwork.then(defaultNetwork => defaultNetwork.id), * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [privateIpAlloc.name], - * }, { - * provider: google_beta, * }); * const defaultInstance = new gcp.alloydb.Instance("defaultInstance", { * cluster: defaultCluster.name, * instanceId: "alloydb-instance", * instanceType: "PRIMARY", * }, { - * provider: google_beta, * dependsOn: [vpcConnection], * }); * const defaultBackup = new gcp.alloydb.Backup("defaultBackup", { @@ -54,7 +55,6 @@ import * as utilities from "../utilities"; * label: "key", * }, * }, { - * provider: google_beta, * dependsOn: [defaultInstance], * }); * ``` diff --git a/sdk/nodejs/alloydb/cluster.ts b/sdk/nodejs/alloydb/cluster.ts index 6f68e3e23a..d37513172f 100644 --- a/sdk/nodejs/alloydb/cluster.ts +++ b/sdk/nodejs/alloydb/cluster.ts @@ -15,60 +15,11 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const project = gcp.organizations.getProject({}); - * const defaultNetwork = new gcp.compute.Network("defaultNetwork", {}, { - * provider: google_beta, - * }); + * const defaultNetwork = new gcp.compute.Network("defaultNetwork", {}); * const defaultCluster = new gcp.alloydb.Cluster("defaultCluster", { * clusterId: "alloydb-cluster", * location: "us-central1", * network: pulumi.all([project, defaultNetwork.name]).apply(([project, name]) => `projects/${project.number}/global/networks/${name}`), - * }, { - * provider: google_beta, - * }); - * ``` - * ### Alloydb Cluster Full - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as gcp from "@pulumi/gcp"; - * - * const project = gcp.organizations.getProject({}); - * const _default = new gcp.compute.Network("default", {}, { - * provider: google_beta, - * }); - * const full = new gcp.alloydb.Cluster("full", { - * clusterId: "alloydb-cluster-full", - * location: "us-central1", - * network: pulumi.all([project, _default.name]).apply(([project, name]) => `projects/${project.number}/global/networks/${name}`), - * initialUser: { - * user: "alloydb-cluster-full", - * password: "alloydb-cluster-full", - * }, - * automatedBackupPolicy: { - * location: "us-central1", - * backupWindow: "1800s", - * enabled: true, - * weeklySchedule: { - * daysOfWeeks: ["MONDAY"], - * startTimes: [{ - * hours: 23, - * minutes: 0, - * seconds: 0, - * nanos: 0, - * }], - * }, - * quantityBasedRetention: { - * count: 1, - * }, - * labels: { - * test: "alloydb-cluster-full", - * }, - * }, - * labels: { - * test: "alloydb-cluster-full", - * }, - * }, { - * provider: google_beta, * }); * ``` * diff --git a/sdk/nodejs/alloydb/instance.ts b/sdk/nodejs/alloydb/instance.ts index 6cd4202a58..6c5479506e 100644 --- a/sdk/nodejs/alloydb/instance.ts +++ b/sdk/nodejs/alloydb/instance.ts @@ -7,6 +7,14 @@ import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** + * A managed alloydb cluster instance. + * + * To get more information about Instance, see: + * + * * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) + * * How-to Guides + * * [AlloyDB](https://cloud.google.com/alloydb/docs/) + * * ## Example Usage * ### Alloydb Instance Basic * @@ -15,9 +23,7 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const project = gcp.organizations.getProject({}); - * const defaultNetwork = new gcp.compute.Network("defaultNetwork", {}, { - * provider: google_beta, - * }); + * const defaultNetwork = new gcp.compute.Network("defaultNetwork", {}); * const defaultCluster = new gcp.alloydb.Cluster("defaultCluster", { * clusterId: "alloydb-cluster", * location: "us-central1", @@ -25,23 +31,17 @@ import * as utilities from "../utilities"; * initialUser: { * password: "alloydb-cluster", * }, - * }, { - * provider: google_beta, * }); * const privateIpAlloc = new gcp.compute.GlobalAddress("privateIpAlloc", { * addressType: "INTERNAL", * purpose: "VPC_PEERING", * prefixLength: 16, * network: defaultNetwork.id, - * }, { - * provider: google_beta, * }); * const vpcConnection = new gcp.servicenetworking.Connection("vpcConnection", { * network: defaultNetwork.id, * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [privateIpAlloc.name], - * }, { - * provider: google_beta, * }); * const defaultInstance = new gcp.alloydb.Instance("defaultInstance", { * cluster: defaultCluster.name, @@ -51,7 +51,6 @@ import * as utilities from "../utilities"; * cpuCount: 2, * }, * }, { - * provider: google_beta, * dependsOn: [vpcConnection], * }); * ``` diff --git a/sdk/nodejs/apigee/addonsConfig.ts b/sdk/nodejs/apigee/addonsConfig.ts new file mode 100644 index 0000000000..7549740993 --- /dev/null +++ b/sdk/nodejs/apigee/addonsConfig.ts @@ -0,0 +1,210 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. + * + * To get more information about AddonsConfig, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) + * * How-to Guides + * * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) + * + * ## Example Usage + * ### Apigee Addons Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const testOrganization = new gcp.apigee.AddonsConfig("testOrganization", { + * addonsConfig: { + * apiSecurityConfig: { + * enabled: true, + * }, + * monetizationConfig: { + * enabled: true, + * }, + * }, + * org: "test_organization", + * }); + * ``` + * ### Apigee Addons Full + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const current = gcp.organizations.getClientConfig({}); + * const apigee = new gcp.projects.Service("apigee", { + * project: current.then(current => current.project), + * service: "apigee.googleapis.com", + * }); + * const compute = new gcp.projects.Service("compute", { + * project: current.then(current => current.project), + * service: "compute.googleapis.com", + * }); + * const servicenetworking = new gcp.projects.Service("servicenetworking", { + * project: current.then(current => current.project), + * service: "servicenetworking.googleapis.com", + * }); + * const apigeeNetwork = new gcp.compute.Network("apigeeNetwork", {project: current.then(current => current.project)}, { + * dependsOn: [compute], + * }); + * const apigeeRange = new gcp.compute.GlobalAddress("apigeeRange", { + * purpose: "VPC_PEERING", + * addressType: "INTERNAL", + * prefixLength: 16, + * network: apigeeNetwork.id, + * project: current.then(current => current.project), + * }); + * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigeeVpcConnection", { + * network: apigeeNetwork.id, + * service: "servicenetworking.googleapis.com", + * reservedPeeringRanges: [apigeeRange.name], + * }); + * const org = new gcp.apigee.Organization("org", { + * analyticsRegion: "us-central1", + * projectId: current.then(current => current.project), + * authorizedNetwork: apigeeNetwork.id, + * billingType: "EVALUATION", + * }, { + * dependsOn: [ + * apigeeVpcConnection, + * apigee, + * ], + * }); + * const testOrganization = new gcp.apigee.AddonsConfig("testOrganization", { + * org: org.name, + * addonsConfig: { + * integrationConfig: { + * enabled: true, + * }, + * apiSecurityConfig: { + * enabled: true, + * }, + * connectorsPlatformConfig: { + * enabled: true, + * }, + * monetizationConfig: { + * enabled: true, + * }, + * advancedApiOpsConfig: { + * enabled: true, + * }, + * }, + * }); + * ``` + * + * ## Import + * + * AddonsConfig can be imported using any of these accepted formats + * + * ```sh + * $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} + * ``` + */ +export class AddonsConfig extends pulumi.CustomResource { + /** + * Get an existing AddonsConfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AddonsConfigState, opts?: pulumi.CustomResourceOptions): AddonsConfig { + return new AddonsConfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:apigee/addonsConfig:AddonsConfig'; + + /** + * Returns true if the given object is an instance of AddonsConfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AddonsConfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AddonsConfig.__pulumiType; + } + + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + */ + public readonly addonsConfig!: pulumi.Output; + /** + * Name of the Apigee organization. + */ + public readonly org!: pulumi.Output; + + /** + * Create a AddonsConfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AddonsConfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AddonsConfigArgs | AddonsConfigState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AddonsConfigState | undefined; + resourceInputs["addonsConfig"] = state ? state.addonsConfig : undefined; + resourceInputs["org"] = state ? state.org : undefined; + } else { + const args = argsOrState as AddonsConfigArgs | undefined; + if ((!args || args.org === undefined) && !opts.urn) { + throw new Error("Missing required property 'org'"); + } + resourceInputs["addonsConfig"] = args ? args.addonsConfig : undefined; + resourceInputs["org"] = args ? args.org : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AddonsConfig.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AddonsConfig resources. + */ +export interface AddonsConfigState { + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + */ + addonsConfig?: pulumi.Input; + /** + * Name of the Apigee organization. + */ + org?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AddonsConfig resource. + */ +export interface AddonsConfigArgs { + /** + * Addon configurations of the Apigee organization. + * Structure is documented below. + */ + addonsConfig?: pulumi.Input; + /** + * Name of the Apigee organization. + */ + org: pulumi.Input; +} diff --git a/sdk/nodejs/apigee/index.ts b/sdk/nodejs/apigee/index.ts index 9b48a4b898..2bcadc88b7 100644 --- a/sdk/nodejs/apigee/index.ts +++ b/sdk/nodejs/apigee/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { AddonsConfigArgs, AddonsConfigState } from "./addonsConfig"; +export type AddonsConfig = import("./addonsConfig").AddonsConfig; +export const AddonsConfig: typeof import("./addonsConfig").AddonsConfig = null as any; +utilities.lazyLoad(exports, ["AddonsConfig"], () => require("./addonsConfig")); + export { EndpointAttachmentArgs, EndpointAttachmentState } from "./endpointAttachment"; export type EndpointAttachment = import("./endpointAttachment").EndpointAttachment; export const EndpointAttachment: typeof import("./endpointAttachment").EndpointAttachment = null as any; @@ -70,6 +75,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "gcp:apigee/addonsConfig:AddonsConfig": + return new AddonsConfig(name, undefined, { urn }) case "gcp:apigee/endpointAttachment:EndpointAttachment": return new EndpointAttachment(name, undefined, { urn }) case "gcp:apigee/envGroup:EnvGroup": @@ -99,6 +106,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("gcp", "apigee/addonsConfig", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/endpointAttachment", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/envGroup", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/envGroupAttachment", _module) diff --git a/sdk/nodejs/cloudbuildv2/connectionIAMBinding.ts b/sdk/nodejs/cloudbuildv2/connectionIAMBinding.ts new file mode 100644 index 0000000000..ac8e65f60b --- /dev/null +++ b/sdk/nodejs/cloudbuildv2/connectionIAMBinding.ts @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + */ +export class ConnectionIAMBinding extends pulumi.CustomResource { + /** + * Get an existing ConnectionIAMBinding resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ConnectionIAMBindingState, opts?: pulumi.CustomResourceOptions): ConnectionIAMBinding { + return new ConnectionIAMBinding(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding'; + + /** + * Returns true if the given object is an instance of ConnectionIAMBinding. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ConnectionIAMBinding { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ConnectionIAMBinding.__pulumiType; + } + + public readonly condition!: pulumi.Output; + /** + * (Computed) The etag of the IAM policy. + */ + public /*out*/ readonly etag!: pulumi.Output; + public readonly location!: pulumi.Output; + public readonly members!: pulumi.Output; + /** + * Used to find the parent resource to bind the IAM policy to + */ + public readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + public readonly role!: pulumi.Output; + + /** + * Create a ConnectionIAMBinding resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ConnectionIAMBindingArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ConnectionIAMBindingArgs | ConnectionIAMBindingState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ConnectionIAMBindingState | undefined; + resourceInputs["condition"] = state ? state.condition : undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["members"] = state ? state.members : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["role"] = state ? state.role : undefined; + } else { + const args = argsOrState as ConnectionIAMBindingArgs | undefined; + if ((!args || args.members === undefined) && !opts.urn) { + throw new Error("Missing required property 'members'"); + } + if ((!args || args.role === undefined) && !opts.urn) { + throw new Error("Missing required property 'role'"); + } + resourceInputs["condition"] = args ? args.condition : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["members"] = args ? args.members : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["role"] = args ? args.role : undefined; + resourceInputs["etag"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ConnectionIAMBinding.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ConnectionIAMBinding resources. + */ +export interface ConnectionIAMBindingState { + condition?: pulumi.Input; + /** + * (Computed) The etag of the IAM policy. + */ + etag?: pulumi.Input; + location?: pulumi.Input; + members?: pulumi.Input[]>; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + role?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ConnectionIAMBinding resource. + */ +export interface ConnectionIAMBindingArgs { + condition?: pulumi.Input; + location?: pulumi.Input; + members: pulumi.Input[]>; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + role: pulumi.Input; +} diff --git a/sdk/nodejs/cloudbuildv2/connectionIAMMember.ts b/sdk/nodejs/cloudbuildv2/connectionIAMMember.ts new file mode 100644 index 0000000000..e71df687ec --- /dev/null +++ b/sdk/nodejs/cloudbuildv2/connectionIAMMember.ts @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + */ +export class ConnectionIAMMember extends pulumi.CustomResource { + /** + * Get an existing ConnectionIAMMember resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ConnectionIAMMemberState, opts?: pulumi.CustomResourceOptions): ConnectionIAMMember { + return new ConnectionIAMMember(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember'; + + /** + * Returns true if the given object is an instance of ConnectionIAMMember. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ConnectionIAMMember { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ConnectionIAMMember.__pulumiType; + } + + public readonly condition!: pulumi.Output; + /** + * (Computed) The etag of the IAM policy. + */ + public /*out*/ readonly etag!: pulumi.Output; + public readonly location!: pulumi.Output; + public readonly member!: pulumi.Output; + /** + * Used to find the parent resource to bind the IAM policy to + */ + public readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + public readonly role!: pulumi.Output; + + /** + * Create a ConnectionIAMMember resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ConnectionIAMMemberArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ConnectionIAMMemberArgs | ConnectionIAMMemberState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ConnectionIAMMemberState | undefined; + resourceInputs["condition"] = state ? state.condition : undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["member"] = state ? state.member : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["role"] = state ? state.role : undefined; + } else { + const args = argsOrState as ConnectionIAMMemberArgs | undefined; + if ((!args || args.member === undefined) && !opts.urn) { + throw new Error("Missing required property 'member'"); + } + if ((!args || args.role === undefined) && !opts.urn) { + throw new Error("Missing required property 'role'"); + } + resourceInputs["condition"] = args ? args.condition : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["member"] = args ? args.member : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["role"] = args ? args.role : undefined; + resourceInputs["etag"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ConnectionIAMMember.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ConnectionIAMMember resources. + */ +export interface ConnectionIAMMemberState { + condition?: pulumi.Input; + /** + * (Computed) The etag of the IAM policy. + */ + etag?: pulumi.Input; + location?: pulumi.Input; + member?: pulumi.Input; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + role?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ConnectionIAMMember resource. + */ +export interface ConnectionIAMMemberArgs { + condition?: pulumi.Input; + location?: pulumi.Input; + member: pulumi.Input; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; + /** + * The role that should be applied. Only one + * `gcp.cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + * `[projects|organizations]/{parent-name}/roles/{role-name}`. + */ + role: pulumi.Input; +} diff --git a/sdk/nodejs/cloudbuildv2/connectionIAMPolicy.ts b/sdk/nodejs/cloudbuildv2/connectionIAMPolicy.ts new file mode 100644 index 0000000000..25414abaca --- /dev/null +++ b/sdk/nodejs/cloudbuildv2/connectionIAMPolicy.ts @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + * ``` + * + * IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + * ``` + * + * IAM policy imports use the identifier of the resource in question, e.g. + * + * ```sh + * $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + * ``` + * + * -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + * + * full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + */ +export class ConnectionIAMPolicy extends pulumi.CustomResource { + /** + * Get an existing ConnectionIAMPolicy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ConnectionIAMPolicyState, opts?: pulumi.CustomResourceOptions): ConnectionIAMPolicy { + return new ConnectionIAMPolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy'; + + /** + * Returns true if the given object is an instance of ConnectionIAMPolicy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ConnectionIAMPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ConnectionIAMPolicy.__pulumiType; + } + + /** + * (Computed) The etag of the IAM policy. + */ + public /*out*/ readonly etag!: pulumi.Output; + public readonly location!: pulumi.Output; + /** + * Used to find the parent resource to bind the IAM policy to + */ + public readonly name!: pulumi.Output; + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + */ + public readonly policyData!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + public readonly project!: pulumi.Output; + + /** + * Create a ConnectionIAMPolicy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ConnectionIAMPolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ConnectionIAMPolicyArgs | ConnectionIAMPolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ConnectionIAMPolicyState | undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["policyData"] = state ? state.policyData : undefined; + resourceInputs["project"] = state ? state.project : undefined; + } else { + const args = argsOrState as ConnectionIAMPolicyArgs | undefined; + if ((!args || args.policyData === undefined) && !opts.urn) { + throw new Error("Missing required property 'policyData'"); + } + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["policyData"] = args ? args.policyData : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["etag"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ConnectionIAMPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ConnectionIAMPolicy resources. + */ +export interface ConnectionIAMPolicyState { + /** + * (Computed) The etag of the IAM policy. + */ + etag?: pulumi.Input; + location?: pulumi.Input; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + */ + policyData?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ConnectionIAMPolicy resource. + */ +export interface ConnectionIAMPolicyArgs { + location?: pulumi.Input; + /** + * Used to find the parent resource to bind the IAM policy to + */ + name?: pulumi.Input; + /** + * The policy data generated by + * a `gcp.organizations.getIAMPolicy` data source. + */ + policyData: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + */ + project?: pulumi.Input; +} diff --git a/sdk/nodejs/cloudbuildv2/index.ts b/sdk/nodejs/cloudbuildv2/index.ts index beff651451..338667c2e7 100644 --- a/sdk/nodejs/cloudbuildv2/index.ts +++ b/sdk/nodejs/cloudbuildv2/index.ts @@ -10,6 +10,21 @@ export type Connection = import("./connection").Connection; export const Connection: typeof import("./connection").Connection = null as any; utilities.lazyLoad(exports, ["Connection"], () => require("./connection")); +export { ConnectionIAMBindingArgs, ConnectionIAMBindingState } from "./connectionIAMBinding"; +export type ConnectionIAMBinding = import("./connectionIAMBinding").ConnectionIAMBinding; +export const ConnectionIAMBinding: typeof import("./connectionIAMBinding").ConnectionIAMBinding = null as any; +utilities.lazyLoad(exports, ["ConnectionIAMBinding"], () => require("./connectionIAMBinding")); + +export { ConnectionIAMMemberArgs, ConnectionIAMMemberState } from "./connectionIAMMember"; +export type ConnectionIAMMember = import("./connectionIAMMember").ConnectionIAMMember; +export const ConnectionIAMMember: typeof import("./connectionIAMMember").ConnectionIAMMember = null as any; +utilities.lazyLoad(exports, ["ConnectionIAMMember"], () => require("./connectionIAMMember")); + +export { ConnectionIAMPolicyArgs, ConnectionIAMPolicyState } from "./connectionIAMPolicy"; +export type ConnectionIAMPolicy = import("./connectionIAMPolicy").ConnectionIAMPolicy; +export const ConnectionIAMPolicy: typeof import("./connectionIAMPolicy").ConnectionIAMPolicy = null as any; +utilities.lazyLoad(exports, ["ConnectionIAMPolicy"], () => require("./connectionIAMPolicy")); + export { RepositoryArgs, RepositoryState } from "./repository"; export type Repository = import("./repository").Repository; export const Repository: typeof import("./repository").Repository = null as any; @@ -22,6 +37,12 @@ const _module = { switch (type) { case "gcp:cloudbuildv2/connection:Connection": return new Connection(name, undefined, { urn }) + case "gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding": + return new ConnectionIAMBinding(name, undefined, { urn }) + case "gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember": + return new ConnectionIAMMember(name, undefined, { urn }) + case "gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy": + return new ConnectionIAMPolicy(name, undefined, { urn }) case "gcp:cloudbuildv2/repository:Repository": return new Repository(name, undefined, { urn }) default: @@ -30,4 +51,7 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("gcp", "cloudbuildv2/connection", _module) +pulumi.runtime.registerResourceModule("gcp", "cloudbuildv2/connectionIAMBinding", _module) +pulumi.runtime.registerResourceModule("gcp", "cloudbuildv2/connectionIAMMember", _module) +pulumi.runtime.registerResourceModule("gcp", "cloudbuildv2/connectionIAMPolicy", _module) pulumi.runtime.registerResourceModule("gcp", "cloudbuildv2/repository", _module) diff --git a/sdk/nodejs/compute/externalVpnGateway.ts b/sdk/nodejs/compute/externalVpnGateway.ts index 3d7dadc477..21a294f299 100644 --- a/sdk/nodejs/compute/externalVpnGateway.ts +++ b/sdk/nodejs/compute/externalVpnGateway.ts @@ -153,6 +153,10 @@ export class ExternalVpnGateway extends pulumi.CustomResource { * Structure is documented below. */ public readonly interfaces!: pulumi.Output; + /** + * Labels for the external VPN gateway resource. + */ + public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with @@ -193,6 +197,7 @@ export class ExternalVpnGateway extends pulumi.CustomResource { const state = argsOrState as ExternalVpnGatewayState | undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["interfaces"] = state ? state.interfaces : undefined; + resourceInputs["labels"] = state ? state.labels : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["redundancyType"] = state ? state.redundancyType : undefined; @@ -201,6 +206,7 @@ export class ExternalVpnGateway extends pulumi.CustomResource { const args = argsOrState as ExternalVpnGatewayArgs | undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["interfaces"] = args ? args.interfaces : undefined; + resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["project"] = args ? args.project : undefined; resourceInputs["redundancyType"] = args ? args.redundancyType : undefined; @@ -224,6 +230,10 @@ export interface ExternalVpnGatewayState { * Structure is documented below. */ interfaces?: pulumi.Input[]>; + /** + * Labels for the external VPN gateway resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with @@ -263,6 +273,10 @@ export interface ExternalVpnGatewayArgs { * Structure is documented below. */ interfaces?: pulumi.Input[]>; + /** + * Labels for the external VPN gateway resource. + */ + labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with diff --git a/sdk/nodejs/compute/getInstanceGroupManager.ts b/sdk/nodejs/compute/getInstanceGroupManager.ts index 8f4963d708..df936b58ef 100644 --- a/sdk/nodejs/compute/getInstanceGroupManager.ts +++ b/sdk/nodejs/compute/getInstanceGroupManager.ts @@ -74,6 +74,7 @@ export interface GetInstanceGroupManagerResult { */ readonly id: string; readonly instanceGroup: string; + readonly instanceLifecyclePolicies: outputs.compute.GetInstanceGroupManagerInstanceLifecyclePolicy[]; readonly listManagedInstancesResults: string; readonly name?: string; readonly namedPorts: outputs.compute.GetInstanceGroupManagerNamedPort[]; diff --git a/sdk/nodejs/compute/getInstanceTemplate.ts b/sdk/nodejs/compute/getInstanceTemplate.ts index 3afeeef041..adaadf5df9 100644 --- a/sdk/nodejs/compute/getInstanceTemplate.ts +++ b/sdk/nodejs/compute/getInstanceTemplate.ts @@ -170,6 +170,10 @@ export interface GetInstanceTemplateResult { */ readonly region: string; readonly reservationAffinities: outputs.compute.GetInstanceTemplateReservationAffinity[]; + /** + * (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + */ + readonly resourcePolicies: string[]; /** * The scheduling strategy to use. More details about * this configuration option are detailed below. diff --git a/sdk/nodejs/compute/instanceGroupManager.ts b/sdk/nodejs/compute/instanceGroupManager.ts index a0bcf1ac8c..0fbcb584e9 100644 --- a/sdk/nodejs/compute/instanceGroupManager.ts +++ b/sdk/nodejs/compute/instanceGroupManager.ts @@ -166,6 +166,10 @@ export class InstanceGroupManager extends pulumi.CustomResource { * The full URL of the instance group created by the manager. */ public /*out*/ readonly instanceGroup!: pulumi.Output; + /** + * The instance lifecycle policy for this managed instance group. + */ + public readonly instanceLifecyclePolicy!: pulumi.Output; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -272,6 +276,7 @@ export class InstanceGroupManager extends pulumi.CustomResource { resourceInputs["description"] = state ? state.description : undefined; resourceInputs["fingerprint"] = state ? state.fingerprint : undefined; resourceInputs["instanceGroup"] = state ? state.instanceGroup : undefined; + resourceInputs["instanceLifecyclePolicy"] = state ? state.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = state ? state.listManagedInstancesResults : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["namedPorts"] = state ? state.namedPorts : undefined; @@ -301,6 +306,7 @@ export class InstanceGroupManager extends pulumi.CustomResource { resourceInputs["autoHealingPolicies"] = args ? args.autoHealingPolicies : undefined; resourceInputs["baseInstanceName"] = args ? args.baseInstanceName : undefined; resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["instanceLifecyclePolicy"] = args ? args.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = args ? args.listManagedInstancesResults : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["namedPorts"] = args ? args.namedPorts : undefined; @@ -364,6 +370,10 @@ export interface InstanceGroupManagerState { * The full URL of the instance group created by the manager. */ instanceGroup?: pulumi.Input; + /** + * The instance lifecycle policy for this managed instance group. + */ + instanceLifecyclePolicy?: pulumi.Input; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -482,6 +492,10 @@ export interface InstanceGroupManagerArgs { * group manager. */ description?: pulumi.Input; + /** + * The instance lifecycle policy for this managed instance group. + */ + instanceLifecyclePolicy?: pulumi.Input; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/nodejs/compute/instanceTemplate.ts b/sdk/nodejs/compute/instanceTemplate.ts index 355b145bd0..9ced0d7156 100644 --- a/sdk/nodejs/compute/instanceTemplate.ts +++ b/sdk/nodejs/compute/instanceTemplate.ts @@ -163,6 +163,10 @@ export class InstanceTemplate extends pulumi.CustomResource { * Structure is documented below. */ public readonly reservationAffinity!: pulumi.Output; + /** + * - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + */ + public readonly resourcePolicies!: pulumi.Output; /** * The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -224,6 +228,7 @@ export class InstanceTemplate extends pulumi.CustomResource { resourceInputs["project"] = state ? state.project : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["reservationAffinity"] = state ? state.reservationAffinity : undefined; + resourceInputs["resourcePolicies"] = state ? state.resourcePolicies : undefined; resourceInputs["scheduling"] = state ? state.scheduling : undefined; resourceInputs["selfLink"] = state ? state.selfLink : undefined; resourceInputs["serviceAccount"] = state ? state.serviceAccount : undefined; @@ -258,6 +263,7 @@ export class InstanceTemplate extends pulumi.CustomResource { resourceInputs["project"] = args ? args.project : undefined; resourceInputs["region"] = args ? args.region : undefined; resourceInputs["reservationAffinity"] = args ? args.reservationAffinity : undefined; + resourceInputs["resourcePolicies"] = args ? args.resourcePolicies : undefined; resourceInputs["scheduling"] = args ? args.scheduling : undefined; resourceInputs["serviceAccount"] = args ? args.serviceAccount : undefined; resourceInputs["shieldedInstanceConfig"] = args ? args.shieldedInstanceConfig : undefined; @@ -385,6 +391,10 @@ export interface InstanceTemplateState { * Structure is documented below. */ reservationAffinity?: pulumi.Input; + /** + * - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + */ + resourcePolicies?: pulumi.Input; /** * The scheduling strategy to use. More details about * this configuration option are detailed below. @@ -523,6 +533,10 @@ export interface InstanceTemplateArgs { * Structure is documented below. */ reservationAffinity?: pulumi.Input; + /** + * - A list of selfLinks of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + */ + resourcePolicies?: pulumi.Input; /** * The scheduling strategy to use. More details about * this configuration option are detailed below. diff --git a/sdk/nodejs/compute/network.ts b/sdk/nodejs/compute/network.ts index 328e76c6f6..42a0f6d878 100644 --- a/sdk/nodejs/compute/network.ts +++ b/sdk/nodejs/compute/network.ts @@ -116,8 +116,11 @@ export class Network extends pulumi.CustomResource { */ public readonly internalIpv6Range!: pulumi.Output; /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. */ public readonly mtu!: pulumi.Output; /** @@ -233,8 +236,11 @@ export interface NetworkState { */ internalIpv6Range?: pulumi.Input; /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. */ mtu?: pulumi.Input; /** @@ -303,8 +309,11 @@ export interface NetworkArgs { */ internalIpv6Range?: pulumi.Input; /** - * Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - * and the maximum value is 1500 bytes. + * Maximum Transmission Unit in bytes. The default value is 1460 bytes. + * The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + * Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + * with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + * with varying MTUs. */ mtu?: pulumi.Input; /** diff --git a/sdk/nodejs/compute/regionInstanceGroupManager.ts b/sdk/nodejs/compute/regionInstanceGroupManager.ts index 1fd93be1b0..33a314a803 100644 --- a/sdk/nodejs/compute/regionInstanceGroupManager.ts +++ b/sdk/nodejs/compute/regionInstanceGroupManager.ts @@ -168,6 +168,10 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { * The full URL of the instance group created by the manager. */ public /*out*/ readonly instanceGroup!: pulumi.Output; + /** + * The instance lifecycle policy for this managed instance group. + */ + public readonly instanceLifecyclePolicy!: pulumi.Output; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -274,6 +278,7 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { resourceInputs["distributionPolicyZones"] = state ? state.distributionPolicyZones : undefined; resourceInputs["fingerprint"] = state ? state.fingerprint : undefined; resourceInputs["instanceGroup"] = state ? state.instanceGroup : undefined; + resourceInputs["instanceLifecyclePolicy"] = state ? state.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = state ? state.listManagedInstancesResults : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["namedPorts"] = state ? state.namedPorts : undefined; @@ -304,6 +309,7 @@ export class RegionInstanceGroupManager extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["distributionPolicyTargetShape"] = args ? args.distributionPolicyTargetShape : undefined; resourceInputs["distributionPolicyZones"] = args ? args.distributionPolicyZones : undefined; + resourceInputs["instanceLifecyclePolicy"] = args ? args.instanceLifecyclePolicy : undefined; resourceInputs["listManagedInstancesResults"] = args ? args.listManagedInstancesResults : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["namedPorts"] = args ? args.namedPorts : undefined; @@ -375,6 +381,10 @@ export interface RegionInstanceGroupManagerState { * The full URL of the instance group created by the manager. */ instanceGroup?: pulumi.Input; + /** + * The instance lifecycle policy for this managed instance group. + */ + instanceLifecyclePolicy?: pulumi.Input; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. @@ -500,6 +510,10 @@ export interface RegionInstanceGroupManagerArgs { * group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). */ distributionPolicyZones?: pulumi.Input[]>; + /** + * The instance lifecycle policy for this managed instance group. + */ + instanceLifecyclePolicy?: pulumi.Input; /** * Pagination behavior of the `listManagedInstances` API * method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. diff --git a/sdk/nodejs/compute/regionTargetTcpProxy.ts b/sdk/nodejs/compute/regionTargetTcpProxy.ts index 641771b0a0..91077b9735 100644 --- a/sdk/nodejs/compute/regionTargetTcpProxy.ts +++ b/sdk/nodejs/compute/regionTargetTcpProxy.ts @@ -5,6 +5,16 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** + * Represents a RegionTargetTcpProxy resource, which is used by one or more + * forwarding rules to route incoming TCP requests to a regional TCP proxy load + * balancer. + * + * To get more information about RegionTargetTcpProxy, see: + * + * * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) + * * ## Example Usage * * ## Import diff --git a/sdk/nodejs/datafusion/instance.ts b/sdk/nodejs/datafusion/instance.ts index 5997805766..a5e2e773d2 100644 --- a/sdk/nodejs/datafusion/instance.ts +++ b/sdk/nodejs/datafusion/instance.ts @@ -23,9 +23,6 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const basicInstance = new gcp.datafusion.Instance("basicInstance", { - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "BASIC", * }); @@ -61,9 +58,6 @@ import * as utilities from "../utilities"; * network: "default", * ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) => `${address}/${prefixLength}`), * }, - * options: { - * prober_test_run: "true", - * }, * }); * ``` * ### Data Fusion Instance Cmek @@ -98,9 +92,6 @@ import * as utilities from "../utilities"; * * const enterpriseInstance = new gcp.datafusion.Instance("enterpriseInstance", { * enableRbac: true, - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "ENTERPRISE", * }); diff --git a/sdk/nodejs/datastream/stream.ts b/sdk/nodejs/datastream/stream.ts index 3bc216af5d..042fe8298e 100644 --- a/sdk/nodejs/datastream/stream.ts +++ b/sdk/nodejs/datastream/stream.ts @@ -189,6 +189,176 @@ import * as utilities from "../utilities"; * dependsOn: [keyUser], * }); * ``` + * ### Datastream Stream Postgresql + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const source = new gcp.datastream.ConnectionProfile("source", { + * displayName: "Postgresql Source", + * location: "us-central1", + * connectionProfileId: "source-profile", + * postgresqlProfile: { + * hostname: "hostname", + * port: 3306, + * username: "user", + * password: "pass", + * database: "postgres", + * }, + * }); + * const destination = new gcp.datastream.ConnectionProfile("destination", { + * displayName: "BigQuery Destination", + * location: "us-central1", + * connectionProfileId: "destination-profile", + * bigqueryProfile: {}, + * }); + * const _default = new gcp.datastream.Stream("default", { + * displayName: "Postgres to BigQuery", + * location: "us-central1", + * streamId: "my-stream", + * desiredState: "RUNNING", + * sourceConfig: { + * sourceConnectionProfile: source.id, + * postgresqlSourceConfig: { + * maxConcurrentBackfillTasks: 12, + * publication: "publication", + * replicationSlot: "replication_slot", + * includeObjects: { + * postgresqlSchemas: [{ + * schema: "schema", + * postgresqlTables: [{ + * table: "table", + * postgresqlColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * excludeObjects: { + * postgresqlSchemas: [{ + * schema: "schema", + * postgresqlTables: [{ + * table: "table", + * postgresqlColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * }, + * }, + * destinationConfig: { + * destinationConnectionProfile: destination.id, + * bigqueryDestinationConfig: { + * dataFreshness: "900s", + * sourceHierarchyDatasets: { + * datasetTemplate: { + * location: "us-central1", + * }, + * }, + * }, + * }, + * backfillAll: { + * postgresqlExcludedObjects: { + * postgresqlSchemas: [{ + * schema: "schema", + * postgresqlTables: [{ + * table: "table", + * postgresqlColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * }, + * }); + * ``` + * ### Datastream Stream Oracle + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const source = new gcp.datastream.ConnectionProfile("source", { + * displayName: "Oracle Source", + * location: "us-central1", + * connectionProfileId: "source-profile", + * oracleProfile: { + * hostname: "hostname", + * port: 1521, + * username: "user", + * password: "pass", + * databaseService: "ORCL", + * }, + * }); + * const destination = new gcp.datastream.ConnectionProfile("destination", { + * displayName: "BigQuery Destination", + * location: "us-central1", + * connectionProfileId: "destination-profile", + * bigqueryProfile: {}, + * }); + * const stream5 = new gcp.datastream.Stream("stream5", { + * displayName: "Oracle to BigQuery", + * location: "us-central1", + * streamId: "my-stream", + * desiredState: "RUNNING", + * sourceConfig: { + * sourceConnectionProfile: source.id, + * oracleSourceConfig: { + * maxConcurrentCdcTasks: 8, + * maxConcurrentBackfillTasks: 12, + * includeObjects: { + * oracleSchemas: [{ + * schema: "schema", + * oracleTables: [{ + * table: "table", + * oracleColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * excludeObjects: { + * oracleSchemas: [{ + * schema: "schema", + * oracleTables: [{ + * table: "table", + * oracleColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * dropLargeObjects: {}, + * }, + * }, + * destinationConfig: { + * destinationConnectionProfile: destination.id, + * bigqueryDestinationConfig: { + * dataFreshness: "900s", + * sourceHierarchyDatasets: { + * datasetTemplate: { + * location: "us-central1", + * }, + * }, + * }, + * }, + * backfillAll: { + * oracleExcludedObjects: { + * oracleSchemas: [{ + * schema: "schema", + * oracleTables: [{ + * table: "table", + * oracleColumns: [{ + * column: "column", + * }], + * }], + * }], + * }, + * }, + * }); + * ``` * ### Datastream Stream Bigquery * * ```typescript diff --git a/sdk/nodejs/eventarc/channel.ts b/sdk/nodejs/eventarc/channel.ts index 8111326e28..de41f1d4a3 100644 --- a/sdk/nodejs/eventarc/channel.ts +++ b/sdk/nodejs/eventarc/channel.ts @@ -24,10 +24,10 @@ import * as utilities from "../utilities"; * name: "key", * keyRing: testKeyRing.id, * })); - * const key1Binding = new gcp.kms.CryptoKeyIAMBinding("key1Binding", { + * const key1Member = new gcp.kms.CryptoKeyIAMMember("key1Member", { * cryptoKeyId: data.google_kms_crypto_key.key1.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * members: [testProject.then(testProject => `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`)], + * member: testProject.then(testProject => `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`), * }); * const primary = new gcp.eventarc.Channel("primary", { * location: "us-west1", @@ -35,7 +35,7 @@ import * as utilities from "../utilities"; * cryptoKeyName: data.google_kms_crypto_key.key1.id, * thirdPartyProvider: testProject.then(testProject => `projects/${testProject.projectId}/locations/us-west1/providers/datadog`), * }, { - * dependsOn: [key1Binding], + * dependsOn: [key1Member], * }); * ``` * diff --git a/sdk/nodejs/eventarc/googleChannelConfig.ts b/sdk/nodejs/eventarc/googleChannelConfig.ts index d202c8b6ca..205ed39237 100644 --- a/sdk/nodejs/eventarc/googleChannelConfig.ts +++ b/sdk/nodejs/eventarc/googleChannelConfig.ts @@ -24,17 +24,17 @@ import * as utilities from "../utilities"; * name: "key", * keyRing: testKeyRing.id, * })); - * const key1Binding = new gcp.kms.CryptoKeyIAMBinding("key1Binding", { + * const key1Member = new gcp.kms.CryptoKeyIAMMember("key1Member", { * cryptoKeyId: data.google_kms_crypto_key.key1.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * members: [testProject.then(testProject => `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`)], + * member: testProject.then(testProject => `serviceAccount:service-${testProject.number}@gcp-sa-eventarc.iam.gserviceaccount.com`), * }); * const primary = new gcp.eventarc.GoogleChannelConfig("primary", { * location: "us-west1", * project: testProject.then(testProject => testProject.projectId), * cryptoKeyName: data.google_kms_crypto_key.key1.id, * }, { - * dependsOn: [key1Binding], + * dependsOn: [key1Member], * }); * ``` * diff --git a/sdk/nodejs/firebase/androidApp.ts b/sdk/nodejs/firebase/androidApp.ts index 7e017b69f3..08a69c9cae 100644 --- a/sdk/nodejs/firebase/androidApp.ts +++ b/sdk/nodejs/firebase/androidApp.ts @@ -79,7 +79,7 @@ export class AndroidApp extends pulumi.CustomResource { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. */ public readonly deletionPolicy!: pulumi.Output; /** @@ -169,7 +169,7 @@ export interface AndroidAppState { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. */ deletionPolicy?: pulumi.Input; /** @@ -213,7 +213,7 @@ export interface AndroidAppArgs { /** * (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon * 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - * AndroidApp. Default to 'DELETE'. + * AndroidApp. Defaults to 'DELETE'. */ deletionPolicy?: pulumi.Input; /** diff --git a/sdk/nodejs/firebase/appleApp.ts b/sdk/nodejs/firebase/appleApp.ts index f1a13c5210..a69a27c3c2 100644 --- a/sdk/nodejs/firebase/appleApp.ts +++ b/sdk/nodejs/firebase/appleApp.ts @@ -99,9 +99,9 @@ export class AppleApp extends pulumi.CustomResource { */ public readonly bundleId!: pulumi.Output; /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. */ public readonly deletionPolicy!: pulumi.Output; /** @@ -181,9 +181,9 @@ export interface AppleAppState { */ bundleId?: pulumi.Input; /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. */ deletionPolicy?: pulumi.Input; /** @@ -219,9 +219,9 @@ export interface AppleAppArgs { */ bundleId?: pulumi.Input; /** - * (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - * 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - * Default to 'DELETE'. + * (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + * destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + * 'DELETE'. */ deletionPolicy?: pulumi.Input; /** diff --git a/sdk/nodejs/firestore/database.ts b/sdk/nodejs/firestore/database.ts new file mode 100644 index 0000000000..bdbcc12cd6 --- /dev/null +++ b/sdk/nodejs/firestore/database.ts @@ -0,0 +1,252 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ## Import + * + * Database can be imported using any of these accepted formats + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:firestore/database:Database default {{name}} + * ``` + */ +export class Database extends pulumi.CustomResource { + /** + * Get an existing Database resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: DatabaseState, opts?: pulumi.CustomResourceOptions): Database { + return new Database(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:firestore/database:Database'; + + /** + * Returns true if the given object is an instance of Database. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Database { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Database.__pulumiType; + } + + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + */ + public readonly appEngineIntegrationMode!: pulumi.Output; + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + */ + public readonly concurrencyMode!: pulumi.Output; + /** + * The timestamp at which this database was created. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + */ + public /*out*/ readonly etag!: pulumi.Output; + /** + * Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). + */ + public /*out*/ readonly keyPrefix!: pulumi.Output; + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + */ + public readonly locationId!: pulumi.Output; + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + */ + public readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + */ + public readonly type!: pulumi.Output; + + /** + * Create a Database resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: DatabaseArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DatabaseArgs | DatabaseState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DatabaseState | undefined; + resourceInputs["appEngineIntegrationMode"] = state ? state.appEngineIntegrationMode : undefined; + resourceInputs["concurrencyMode"] = state ? state.concurrencyMode : undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["keyPrefix"] = state ? state.keyPrefix : undefined; + resourceInputs["locationId"] = state ? state.locationId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["type"] = state ? state.type : undefined; + } else { + const args = argsOrState as DatabaseArgs | undefined; + if ((!args || args.locationId === undefined) && !opts.urn) { + throw new Error("Missing required property 'locationId'"); + } + if ((!args || args.type === undefined) && !opts.urn) { + throw new Error("Missing required property 'type'"); + } + resourceInputs["appEngineIntegrationMode"] = args ? args.appEngineIntegrationMode : undefined; + resourceInputs["concurrencyMode"] = args ? args.concurrencyMode : undefined; + resourceInputs["locationId"] = args ? args.locationId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["etag"] = undefined /*out*/; + resourceInputs["keyPrefix"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Database.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Database resources. + */ +export interface DatabaseState { + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + */ + appEngineIntegrationMode?: pulumi.Input; + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + */ + concurrencyMode?: pulumi.Input; + /** + * The timestamp at which this database was created. + */ + createTime?: pulumi.Input; + /** + * This checksum is computed by the server based on the value of other fields, + * and may be sent on update and delete requests to ensure the client has an + * up-to-date value before proceeding. + */ + etag?: pulumi.Input; + /** + * Output only. The keyPrefix for this database. + * This keyPrefix is used, in combination with the project id ("~") to construct the application id + * that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + * This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo). + */ + keyPrefix?: pulumi.Input; + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + */ + locationId?: pulumi.Input; + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + */ + type?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Database resource. + */ +export interface DatabaseArgs { + /** + * The App Engine integration mode to use for this database. + * Possible values are `ENABLED` and `DISABLED`. + */ + appEngineIntegrationMode?: pulumi.Input; + /** + * The concurrency control mode to use for this database. + * Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + */ + concurrencyMode?: pulumi.Input; + /** + * The location of the database. Available databases are listed at + * https://cloud.google.com/firestore/docs/locations. + */ + locationId: pulumi.Input; + /** + * Required. The ID to use for the database, which will become the final + * component of the database's resource name. This value should be 4-63 + * characters. Valid characters are /[a-z][0-9]-/ with first character + * a letter and the last a letter or a number. Must not be + * UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + * "(default)" database id is also valid. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * The type of the database. + * See https://cloud.google.com/datastore/docs/firestore-or-datastore + * for information about how to choose. + * Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + */ + type: pulumi.Input; +} diff --git a/sdk/nodejs/firestore/index.ts b/sdk/nodejs/firestore/index.ts index 4b6ab94866..3d1ea435b5 100644 --- a/sdk/nodejs/firestore/index.ts +++ b/sdk/nodejs/firestore/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { DatabaseArgs, DatabaseState } from "./database"; +export type Database = import("./database").Database; +export const Database: typeof import("./database").Database = null as any; +utilities.lazyLoad(exports, ["Database"], () => require("./database")); + export { DocumentArgs, DocumentState } from "./document"; export type Document = import("./document").Document; export const Document: typeof import("./document").Document = null as any; @@ -20,6 +25,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "gcp:firestore/database:Database": + return new Database(name, undefined, { urn }) case "gcp:firestore/document:Document": return new Document(name, undefined, { urn }) case "gcp:firestore/index:Index": @@ -29,5 +36,6 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("gcp", "firestore/database", _module) pulumi.runtime.registerResourceModule("gcp", "firestore/document", _module) pulumi.runtime.registerResourceModule("gcp", "firestore/index", _module) diff --git a/sdk/nodejs/redis/instance.ts b/sdk/nodejs/redis/instance.ts index 76a6ad9ff8..5f7fc90ef5 100644 --- a/sdk/nodejs/redis/instance.ts +++ b/sdk/nodejs/redis/instance.ts @@ -225,7 +225,7 @@ export class Instance extends pulumi.CustomResource { */ public readonly authEnabled!: pulumi.Output; /** - * AUTH String set on the instance. This field will only be populated if authEnabled is true. + * AUTH String set on the instance. This field will only be populated if auth_enabled is true. */ public /*out*/ readonly authString!: pulumi.Output; /** @@ -514,7 +514,7 @@ export interface InstanceState { */ authEnabled?: pulumi.Input; /** - * AUTH String set on the instance. This field will only be populated if authEnabled is true. + * AUTH String set on the instance. This field will only be populated if auth_enabled is true. */ authString?: pulumi.Input; /** diff --git a/sdk/nodejs/securitycenter/instanceIamBinding.ts b/sdk/nodejs/securitycenter/instanceIamBinding.ts index 175924da40..eb6b75e166 100644 --- a/sdk/nodejs/securitycenter/instanceIamBinding.ts +++ b/sdk/nodejs/securitycenter/instanceIamBinding.ts @@ -23,9 +23,6 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const basicInstance = new gcp.datafusion.Instance("basicInstance", { - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "BASIC", * }); @@ -61,9 +58,6 @@ import * as utilities from "../utilities"; * network: "default", * ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) => `${address}/${prefixLength}`), * }, - * options: { - * prober_test_run: "true", - * }, * }); * ``` * ### Data Fusion Instance Cmek @@ -98,9 +92,6 @@ import * as utilities from "../utilities"; * * const enterpriseInstance = new gcp.datafusion.Instance("enterpriseInstance", { * enableRbac: true, - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "ENTERPRISE", * }); diff --git a/sdk/nodejs/securitycenter/instanceIamMember.ts b/sdk/nodejs/securitycenter/instanceIamMember.ts index 00ef1c8eb1..c45ffe8480 100644 --- a/sdk/nodejs/securitycenter/instanceIamMember.ts +++ b/sdk/nodejs/securitycenter/instanceIamMember.ts @@ -23,9 +23,6 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const basicInstance = new gcp.datafusion.Instance("basicInstance", { - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "BASIC", * }); @@ -61,9 +58,6 @@ import * as utilities from "../utilities"; * network: "default", * ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) => `${address}/${prefixLength}`), * }, - * options: { - * prober_test_run: "true", - * }, * }); * ``` * ### Data Fusion Instance Cmek @@ -98,9 +92,6 @@ import * as utilities from "../utilities"; * * const enterpriseInstance = new gcp.datafusion.Instance("enterpriseInstance", { * enableRbac: true, - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "ENTERPRISE", * }); diff --git a/sdk/nodejs/securitycenter/instanceIamPolicy.ts b/sdk/nodejs/securitycenter/instanceIamPolicy.ts index 1a52ee62bf..d25df5e86d 100644 --- a/sdk/nodejs/securitycenter/instanceIamPolicy.ts +++ b/sdk/nodejs/securitycenter/instanceIamPolicy.ts @@ -21,9 +21,6 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const basicInstance = new gcp.datafusion.Instance("basicInstance", { - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "BASIC", * }); @@ -59,9 +56,6 @@ import * as utilities from "../utilities"; * network: "default", * ipAllocation: pulumi.all([privateIpAlloc.address, privateIpAlloc.prefixLength]).apply(([address, prefixLength]) => `${address}/${prefixLength}`), * }, - * options: { - * prober_test_run: "true", - * }, * }); * ``` * ### Data Fusion Instance Cmek @@ -96,9 +90,6 @@ import * as utilities from "../utilities"; * * const enterpriseInstance = new gcp.datafusion.Instance("enterpriseInstance", { * enableRbac: true, - * options: { - * prober_test_run: "true", - * }, * region: "us-central1", * type: "ENTERPRISE", * }); diff --git a/sdk/nodejs/sql/databaseInstance.ts b/sdk/nodejs/sql/databaseInstance.ts index 50c7c20353..0a8e4ce33d 100644 --- a/sdk/nodejs/sql/databaseInstance.ts +++ b/sdk/nodejs/sql/databaseInstance.ts @@ -57,6 +57,7 @@ import * as utilities from "../utilities"; * ipConfiguration: { * ipv4Enabled: false, * privateNetwork: privateNetwork.id, + * enablePrivatePathForGoogleCloudServices: true, * }, * }, * }, { diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 517f88c226..3b469cb01f 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -50,6 +50,7 @@ "apigateway/gatewayIamMember.ts", "apigateway/gatewayIamPolicy.ts", "apigateway/index.ts", + "apigee/addonsConfig.ts", "apigee/endpointAttachment.ts", "apigee/envGroup.ts", "apigee/envGroupAttachment.ts", @@ -172,6 +173,9 @@ "cloudbuild/trigger.ts", "cloudbuild/workerPool.ts", "cloudbuildv2/connection.ts", + "cloudbuildv2/connectionIAMBinding.ts", + "cloudbuildv2/connectionIAMMember.ts", + "cloudbuildv2/connectionIAMPolicy.ts", "cloudbuildv2/index.ts", "cloudbuildv2/repository.ts", "clouddeploy/deliveryPipeline.ts", @@ -542,6 +546,7 @@ "firebaserules/index.ts", "firebaserules/release.ts", "firebaserules/ruleset.ts", + "firestore/database.ts", "firestore/document.ts", "firestore/index.ts", "firestore/index_.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index d7841b9433..7f984c2a20 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -1758,6 +1758,77 @@ export namespace apigateway { } export namespace apigee { + export interface AddonsConfigAddonsConfig { + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + advancedApiOpsConfig?: pulumi.Input; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + apiSecurityConfig?: pulumi.Input; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + connectorsPlatformConfig?: pulumi.Input; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + integrationConfig?: pulumi.Input; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + monetizationConfig?: pulumi.Input; + } + + export interface AddonsConfigAddonsConfigAdvancedApiOpsConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: pulumi.Input; + } + + export interface AddonsConfigAddonsConfigApiSecurityConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: pulumi.Input; + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + expiresAt?: pulumi.Input; + } + + export interface AddonsConfigAddonsConfigConnectorsPlatformConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: pulumi.Input; + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + expiresAt?: pulumi.Input; + } + + export interface AddonsConfigAddonsConfigIntegrationConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: pulumi.Input; + } + + export interface AddonsConfigAddonsConfigMonetizationConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: pulumi.Input; + } + export interface EnvironmentIamBindingCondition { description?: pulumi.Input; expression: pulumi.Input; @@ -7180,6 +7251,18 @@ export namespace cloudbuildv2 { service: pulumi.Input; } + export interface ConnectionIAMBindingCondition { + description?: pulumi.Input; + expression: pulumi.Input; + title: pulumi.Input; + } + + export interface ConnectionIAMMemberCondition { + description?: pulumi.Input; + expression: pulumi.Input; + title: pulumi.Input; + } + export interface ConnectionInstallationState { actionUri?: pulumi.Input; message?: pulumi.Input; @@ -12145,6 +12228,13 @@ export namespace compute { initialDelaySec: pulumi.Input; } + export interface InstanceGroupManagerInstanceLifecyclePolicy { + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + */ + forceUpdateOnRepair?: pulumi.Input; + } + export interface InstanceGroupManagerNamedPort { /** * The name of the port. @@ -14554,6 +14644,14 @@ export namespace compute { initialDelaySec: pulumi.Input; } + export interface RegionInstanceGroupManagerInstanceLifecyclePolicy { + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * - - - + */ + forceUpdateOnRepair?: pulumi.Input; + } + export interface RegionInstanceGroupManagerNamedPort { /** * The name of the port. @@ -27377,6 +27475,16 @@ export namespace datastream { * Structure is documented below. */ mysqlExcludedObjects?: pulumi.Input; + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + */ + oracleExcludedObjects?: pulumi.Input; + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + */ + postgresqlExcludedObjects?: pulumi.Input; } export interface StreamBackfillAllMysqlExcludedObjects { @@ -27443,6 +27551,146 @@ export namespace datastream { primaryKey?: pulumi.Input; } + export interface StreamBackfillAllOracleExcludedObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: pulumi.Input[]>; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: pulumi.Input[]>; + /** + * Schema name. + */ + schema: pulumi.Input; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: pulumi.Input; + /** + * Column encoding. + */ + encoding?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } + + export interface StreamBackfillAllPostgresqlExcludedObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: pulumi.Input[]>; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: pulumi.Input[]>; + /** + * Database name. + */ + schema: pulumi.Input; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } + export interface StreamBackfillNone { } @@ -27564,7 +27812,17 @@ export namespace datastream { * MySQL data source configuration. * Structure is documented below. */ - mysqlSourceConfig: pulumi.Input; + mysqlSourceConfig?: pulumi.Input; + /** + * MySQL data source configuration. + * Structure is documented below. + */ + oracleSourceConfig?: pulumi.Input; + /** + * PostgreSQL data source configuration. + * Structure is documented below. + */ + postgresqlSourceConfig?: pulumi.Input; /** * Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} */ @@ -27716,6 +27974,351 @@ export namespace datastream { */ primaryKey?: pulumi.Input; } + + export interface StreamSourceConfigOracleSourceConfig { + /** + * Configuration to drop large object values. + */ + dropLargeObjects?: pulumi.Input; + /** + * Oracle objects to exclude from the stream. + * Structure is documented below. + */ + excludeObjects?: pulumi.Input; + /** + * Oracle objects to retrieve from the source. + * Structure is documented below. + */ + includeObjects?: pulumi.Input; + /** + * Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentBackfillTasks?: pulumi.Input; + /** + * Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentCdcTasks?: pulumi.Input; + /** + * Configuration to drop large object values. + */ + streamLargeObjects?: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigDropLargeObjects { + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: pulumi.Input[]>; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: pulumi.Input[]>; + /** + * Schema name. + */ + schema: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: pulumi.Input; + /** + * Column encoding. + */ + encoding?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: pulumi.Input[]>; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: pulumi.Input[]>; + /** + * Schema name. + */ + schema: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: pulumi.Input; + /** + * Column encoding. + */ + encoding?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } + + export interface StreamSourceConfigOracleSourceConfigStreamLargeObjects { + } + + export interface StreamSourceConfigPostgresqlSourceConfig { + /** + * PostgreSQL objects to exclude from the stream. + * Structure is documented below. + */ + excludeObjects?: pulumi.Input; + /** + * PostgreSQL objects to retrieve from the source. + * Structure is documented below. + */ + includeObjects?: pulumi.Input; + /** + * Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentBackfillTasks?: pulumi.Input; + /** + * The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + */ + publication: pulumi.Input; + /** + * The name of the logical replication slot that's configured with + * the pgoutput plugin. + */ + replicationSlot: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: pulumi.Input[]>; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: pulumi.Input[]>; + /** + * Database name. + */ + schema: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: pulumi.Input[]>; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: pulumi.Input[]>; + /** + * Database name. + */ + schema: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: pulumi.Input[]>; + /** + * Table name. + */ + table: pulumi.Input; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: pulumi.Input; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: pulumi.Input; + /** + * Column length. + */ + length?: pulumi.Input; + /** + * Whether or not the column can accept a null value. + */ + nullable?: pulumi.Input; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: pulumi.Input; + /** + * Column precision. + */ + precision?: pulumi.Input; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: pulumi.Input; + /** + * Column scale. + */ + scale?: pulumi.Input; + } } export namespace deploymentmanager { @@ -37266,6 +37869,10 @@ export namespace sql { */ allocatedIpRange?: pulumi.Input; authorizedNetworks?: pulumi.Input[]>; + /** + * Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + */ + enablePrivatePathForGoogleCloudServices?: pulumi.Input; /** * Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4Enabled` must be enabled or a diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index c197a21525..ba18792314 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1757,6 +1757,77 @@ export namespace apigateway { } export namespace apigee { + export interface AddonsConfigAddonsConfig { + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + advancedApiOpsConfig?: outputs.apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfig; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + apiSecurityConfig?: outputs.apigee.AddonsConfigAddonsConfigApiSecurityConfig; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + connectorsPlatformConfig?: outputs.apigee.AddonsConfigAddonsConfigConnectorsPlatformConfig; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + integrationConfig?: outputs.apigee.AddonsConfigAddonsConfigIntegrationConfig; + /** + * Configuration for the Monetization add-on. + * Structure is documented below. + */ + monetizationConfig?: outputs.apigee.AddonsConfigAddonsConfigMonetizationConfig; + } + + export interface AddonsConfigAddonsConfigAdvancedApiOpsConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: boolean; + } + + export interface AddonsConfigAddonsConfigApiSecurityConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: boolean; + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + expiresAt: string; + } + + export interface AddonsConfigAddonsConfigConnectorsPlatformConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: boolean; + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + expiresAt: string; + } + + export interface AddonsConfigAddonsConfigIntegrationConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: boolean; + } + + export interface AddonsConfigAddonsConfigMonetizationConfig { + /** + * Flag that specifies whether the Advanced API Ops add-on is enabled. + */ + enabled?: boolean; + } + export interface EnvironmentIamBindingCondition { description?: string; expression: string; @@ -7556,6 +7627,18 @@ export namespace cloudbuildv2 { service: string; } + export interface ConnectionIAMBindingCondition { + description?: string; + expression: string; + title: string; + } + + export interface ConnectionIAMMemberCondition { + description?: string; + expression: string; + title: string; + } + export interface ConnectionInstallationState { actionUri: string; message: string; @@ -12685,6 +12768,10 @@ export namespace compute { initialDelaySec: number; } + export interface GetInstanceGroupManagerInstanceLifecyclePolicy { + forceUpdateOnRepair: string; + } + export interface GetInstanceGroupManagerNamedPort { /** * The name of the instance group. Either `name` or `selfLink` must be provided. @@ -14383,6 +14470,13 @@ export namespace compute { initialDelaySec: number; } + export interface InstanceGroupManagerInstanceLifecyclePolicy { + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + */ + forceUpdateOnRepair?: string; + } + export interface InstanceGroupManagerNamedPort { /** * The name of the port. @@ -16792,6 +16886,14 @@ export namespace compute { initialDelaySec: number; } + export interface RegionInstanceGroupManagerInstanceLifecyclePolicy { + /** + * ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + * - - - + */ + forceUpdateOnRepair?: string; + } + export interface RegionInstanceGroupManagerNamedPort { /** * The name of the port. @@ -30259,6 +30361,16 @@ export namespace datastream { * Structure is documented below. */ mysqlExcludedObjects?: outputs.datastream.StreamBackfillAllMysqlExcludedObjects; + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + */ + oracleExcludedObjects?: outputs.datastream.StreamBackfillAllOracleExcludedObjects; + /** + * PostgreSQL data source objects to avoid backfilling. + * Structure is documented below. + */ + postgresqlExcludedObjects?: outputs.datastream.StreamBackfillAllPostgresqlExcludedObjects; } export interface StreamBackfillAllMysqlExcludedObjects { @@ -30325,6 +30437,146 @@ export namespace datastream { primaryKey?: boolean; } + export interface StreamBackfillAllOracleExcludedObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: outputs.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchema[]; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: outputs.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable[]; + /** + * Schema name. + */ + schema: string; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: outputs.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: string; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: string; + /** + * Column encoding. + */ + encoding: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey: boolean; + /** + * Column scale. + */ + scale: number; + } + + export interface StreamBackfillAllPostgresqlExcludedObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: outputs.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema[]; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: outputs.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable[]; + /** + * Database name. + */ + schema: string; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: outputs.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: string; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable?: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: boolean; + /** + * Column scale. + */ + scale: number; + } + export interface StreamBackfillNone { } @@ -30446,7 +30698,17 @@ export namespace datastream { * MySQL data source configuration. * Structure is documented below. */ - mysqlSourceConfig: outputs.datastream.StreamSourceConfigMysqlSourceConfig; + mysqlSourceConfig?: outputs.datastream.StreamSourceConfigMysqlSourceConfig; + /** + * MySQL data source configuration. + * Structure is documented below. + */ + oracleSourceConfig?: outputs.datastream.StreamSourceConfigOracleSourceConfig; + /** + * PostgreSQL data source configuration. + * Structure is documented below. + */ + postgresqlSourceConfig?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfig; /** * Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} */ @@ -30599,6 +30861,351 @@ export namespace datastream { primaryKey?: boolean; } + export interface StreamSourceConfigOracleSourceConfig { + /** + * Configuration to drop large object values. + */ + dropLargeObjects?: outputs.datastream.StreamSourceConfigOracleSourceConfigDropLargeObjects; + /** + * Oracle objects to exclude from the stream. + * Structure is documented below. + */ + excludeObjects?: outputs.datastream.StreamSourceConfigOracleSourceConfigExcludeObjects; + /** + * Oracle objects to retrieve from the source. + * Structure is documented below. + */ + includeObjects?: outputs.datastream.StreamSourceConfigOracleSourceConfigIncludeObjects; + /** + * Maximum number of concurrent backfill tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentBackfillTasks: number; + /** + * Maximum number of concurrent CDC tasks. The number should be non negative. + * If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentCdcTasks: number; + /** + * Configuration to drop large object values. + */ + streamLargeObjects?: outputs.datastream.StreamSourceConfigOracleSourceConfigStreamLargeObjects; + } + + export interface StreamSourceConfigOracleSourceConfigDropLargeObjects { + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: outputs.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema[]; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: outputs.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable[]; + /** + * Schema name. + */ + schema: string; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: outputs.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: string; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: string; + /** + * Column encoding. + */ + encoding: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey: boolean; + /** + * Column scale. + */ + scale: number; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjects { + /** + * Oracle schemas/databases in the database server + * Structure is documented below. + */ + oracleSchemas: outputs.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema[]; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema { + /** + * Tables in the database. + * Structure is documented below. + */ + oracleTables?: outputs.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable[]; + /** + * Schema name. + */ + schema: string; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable { + /** + * Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + oracleColumns?: outputs.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn { + /** + * Column name. + */ + column?: string; + /** + * The Oracle data type. Full data types list can be found here: + * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + */ + dataType?: string; + /** + * Column encoding. + */ + encoding: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey: boolean; + /** + * Column scale. + */ + scale: number; + } + + export interface StreamSourceConfigOracleSourceConfigStreamLargeObjects { + } + + export interface StreamSourceConfigPostgresqlSourceConfig { + /** + * PostgreSQL objects to exclude from the stream. + * Structure is documented below. + */ + excludeObjects?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjects; + /** + * PostgreSQL objects to retrieve from the source. + * Structure is documented below. + */ + includeObjects?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjects; + /** + * Maximum number of concurrent backfill tasks. The number should be non + * negative. If not set (or set to 0), the system's default value will be used. + */ + maxConcurrentBackfillTasks: number; + /** + * The name of the publication that includes the set of all tables + * that are defined in the stream's include_objects. + */ + publication: string; + /** + * The name of the logical replication slot that's configured with + * the pgoutput plugin. + */ + replicationSlot: string; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema[]; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable[]; + /** + * Database name. + */ + schema: string; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: string; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable?: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: boolean; + /** + * Column scale. + */ + scale: number; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjects { + /** + * PostgreSQL schemas on the server + * Structure is documented below. + */ + postgresqlSchemas: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema[]; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema { + /** + * Tables in the schema. + * Structure is documented below. + */ + postgresqlTables?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable[]; + /** + * Database name. + */ + schema: string; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable { + /** + * PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + * Structure is documented below. + */ + postgresqlColumns?: outputs.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn[]; + /** + * Table name. + */ + table: string; + } + + export interface StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn { + /** + * Column name. + */ + column?: string; + /** + * The PostgreSQL data type. Full data types list can be found here: + * https://www.postgresql.org/docs/current/datatype.html + */ + dataType?: string; + /** + * Column length. + */ + length: number; + /** + * Whether or not the column can accept a null value. + */ + nullable?: boolean; + /** + * The ordinal position of the column in the table. + */ + ordinalPosition?: number; + /** + * Column precision. + */ + precision: number; + /** + * Whether or not the column represents a primary key. + */ + primaryKey?: boolean; + /** + * Column scale. + */ + scale: number; + } + } export namespace deploymentmanager { @@ -40594,6 +41201,10 @@ export namespace sql { */ allocatedIpRange?: string; authorizedNetworks?: outputs.sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork[]; + /** + * Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + */ + enablePrivatePathForGoogleCloudServices?: boolean; /** * Whether this Cloud SQL instance should be assigned * a public IPV4 address. At least `ipv4Enabled` must be enabled or a @@ -40844,6 +41455,7 @@ export namespace sql { export interface GetDatabaseInstanceSettingIpConfiguration { allocatedIpRange: string; authorizedNetworks: outputs.sql.GetDatabaseInstanceSettingIpConfigurationAuthorizedNetwork[]; + enablePrivatePathForGoogleCloudServices: boolean; ipv4Enabled: boolean; privateNetwork: string; requireSsl: boolean; @@ -41034,6 +41646,7 @@ export namespace sql { export interface GetDatabaseInstancesInstanceSettingIpConfiguration { allocatedIpRange: string; authorizedNetworks: outputs.sql.GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetwork[]; + enablePrivatePathForGoogleCloudServices: boolean; ipv4Enabled: boolean; privateNetwork: string; requireSsl: boolean; diff --git a/sdk/nodejs/vertex/aiFeatureStore.ts b/sdk/nodejs/vertex/aiFeatureStore.ts index 7cd7efe7a4..6b90f44c3b 100644 --- a/sdk/nodejs/vertex/aiFeatureStore.ts +++ b/sdk/nodejs/vertex/aiFeatureStore.ts @@ -36,6 +36,29 @@ import * as utilities from "../utilities"; * region: "us-central1", * }); * ``` + * ### Vertex Ai Featurestore With Beta Fields + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const featurestore = new gcp.vertex.AiFeatureStore("featurestore", { + * labels: { + * foo: "bar", + * }, + * region: "us-central1", + * onlineServingConfig: { + * fixedNodeCount: 2, + * }, + * encryptionSpec: { + * kmsKeyName: "kms-name", + * }, + * onlineStorageTtlDays: 30, + * forceDestroy: true, + * }, { + * provider: google_beta, + * }); + * ``` * ### Vertex Ai Featurestore Scaling * * ```typescript @@ -138,6 +161,13 @@ export class AiFeatureStore extends pulumi.CustomResource { * Structure is documented below. */ public readonly onlineServingConfig!: pulumi.Output; + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + */ + public readonly onlineStorageTtlDays!: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -172,6 +202,7 @@ export class AiFeatureStore extends pulumi.CustomResource { resourceInputs["labels"] = state ? state.labels : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["onlineServingConfig"] = state ? state.onlineServingConfig : undefined; + resourceInputs["onlineStorageTtlDays"] = state ? state.onlineStorageTtlDays : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["updateTime"] = state ? state.updateTime : undefined; @@ -182,6 +213,7 @@ export class AiFeatureStore extends pulumi.CustomResource { resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["onlineServingConfig"] = args ? args.onlineServingConfig : undefined; + resourceInputs["onlineStorageTtlDays"] = args ? args.onlineStorageTtlDays : undefined; resourceInputs["project"] = args ? args.project : undefined; resourceInputs["region"] = args ? args.region : undefined; resourceInputs["createTime"] = undefined /*out*/; @@ -227,6 +259,13 @@ export interface AiFeatureStoreState { * Structure is documented below. */ onlineServingConfig?: pulumi.Input; + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + */ + onlineStorageTtlDays?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -268,6 +307,13 @@ export interface AiFeatureStoreArgs { * Structure is documented below. */ onlineServingConfig?: pulumi.Input; + /** + * TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + * periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + * that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + * featurestore. If not set, default to 4000 days + */ + onlineStorageTtlDays?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. diff --git a/sdk/nodejs/vertex/aiFeatureStoreEntityType.ts b/sdk/nodejs/vertex/aiFeatureStoreEntityType.ts index e646ae17bd..809c10b575 100644 --- a/sdk/nodejs/vertex/aiFeatureStoreEntityType.ts +++ b/sdk/nodejs/vertex/aiFeatureStoreEntityType.ts @@ -38,6 +38,7 @@ import * as utilities from "../utilities"; * labels: { * foo: "bar", * }, + * description: "test description", * featurestore: featurestore.id, * monitoringConfig: { * snapshotAnalysis: { @@ -95,6 +96,7 @@ import * as utilities from "../utilities"; * value: 0.3, * }, * }, + * offlineStorageTtlDays: 30, * }, { * provider: google_beta, * }); @@ -140,6 +142,10 @@ export class AiFeatureStoreEntityType extends pulumi.CustomResource { * The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. */ public /*out*/ readonly createTime!: pulumi.Output; + /** + * Optional. Description of the EntityType. + */ + public readonly description!: pulumi.Output; /** * Used to perform consistent read-modify-write updates. */ @@ -162,6 +168,12 @@ export class AiFeatureStoreEntityType extends pulumi.CustomResource { * The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. */ public readonly name!: pulumi.Output; + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + */ + public readonly offlineStorageTtlDays!: pulumi.Output; /** * The region of the EntityType. */ @@ -185,11 +197,13 @@ export class AiFeatureStoreEntityType extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as AiFeatureStoreEntityTypeState | undefined; resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["description"] = state ? state.description : undefined; resourceInputs["etag"] = state ? state.etag : undefined; resourceInputs["featurestore"] = state ? state.featurestore : undefined; resourceInputs["labels"] = state ? state.labels : undefined; resourceInputs["monitoringConfig"] = state ? state.monitoringConfig : undefined; resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["offlineStorageTtlDays"] = state ? state.offlineStorageTtlDays : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["updateTime"] = state ? state.updateTime : undefined; } else { @@ -197,10 +211,12 @@ export class AiFeatureStoreEntityType extends pulumi.CustomResource { if ((!args || args.featurestore === undefined) && !opts.urn) { throw new Error("Missing required property 'featurestore'"); } + resourceInputs["description"] = args ? args.description : undefined; resourceInputs["featurestore"] = args ? args.featurestore : undefined; resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["monitoringConfig"] = args ? args.monitoringConfig : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["offlineStorageTtlDays"] = args ? args.offlineStorageTtlDays : undefined; resourceInputs["createTime"] = undefined /*out*/; resourceInputs["etag"] = undefined /*out*/; resourceInputs["region"] = undefined /*out*/; @@ -219,6 +235,10 @@ export interface AiFeatureStoreEntityTypeState { * The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. */ createTime?: pulumi.Input; + /** + * Optional. Description of the EntityType. + */ + description?: pulumi.Input; /** * Used to perform consistent read-modify-write updates. */ @@ -241,6 +261,12 @@ export interface AiFeatureStoreEntityTypeState { * The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. */ name?: pulumi.Input; + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + */ + offlineStorageTtlDays?: pulumi.Input; /** * The region of the EntityType. */ @@ -255,6 +281,10 @@ export interface AiFeatureStoreEntityTypeState { * The set of arguments for constructing a AiFeatureStoreEntityType resource. */ export interface AiFeatureStoreEntityTypeArgs { + /** + * Optional. Description of the EntityType. + */ + description?: pulumi.Input; /** * The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. */ @@ -273,4 +303,10 @@ export interface AiFeatureStoreEntityTypeArgs { * The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. */ name?: pulumi.Input; + /** + * Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + * storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + * since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + */ + offlineStorageTtlDays?: pulumi.Input; } diff --git a/sdk/python/pulumi_gcp/__init__.py b/sdk/python/pulumi_gcp/__init__.py index 746c81dd7f..a841e45b9f 100644 --- a/sdk/python/pulumi_gcp/__init__.py +++ b/sdk/python/pulumi_gcp/__init__.py @@ -541,6 +541,14 @@ "gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy": "GatewayIamPolicy" } }, + { + "pkg": "gcp", + "mod": "apigee/addonsConfig", + "fqn": "pulumi_gcp.apigee", + "classes": { + "gcp:apigee/addonsConfig:AddonsConfig": "AddonsConfig" + } + }, { "pkg": "gcp", "mod": "apigee/endpointAttachment", @@ -1325,6 +1333,30 @@ "gcp:cloudbuildv2/connection:Connection": "Connection" } }, + { + "pkg": "gcp", + "mod": "cloudbuildv2/connectionIAMBinding", + "fqn": "pulumi_gcp.cloudbuildv2", + "classes": { + "gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding": "ConnectionIAMBinding" + } + }, + { + "pkg": "gcp", + "mod": "cloudbuildv2/connectionIAMMember", + "fqn": "pulumi_gcp.cloudbuildv2", + "classes": { + "gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember": "ConnectionIAMMember" + } + }, + { + "pkg": "gcp", + "mod": "cloudbuildv2/connectionIAMPolicy", + "fqn": "pulumi_gcp.cloudbuildv2", + "classes": { + "gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy": "ConnectionIAMPolicy" + } + }, { "pkg": "gcp", "mod": "cloudbuildv2/repository", @@ -3509,6 +3541,14 @@ "gcp:firebaserules/ruleset:Ruleset": "Ruleset" } }, + { + "pkg": "gcp", + "mod": "firestore/database", + "fqn": "pulumi_gcp.firestore", + "classes": { + "gcp:firestore/database:Database": "Database" + } + }, { "pkg": "gcp", "mod": "firestore/document", diff --git a/sdk/python/pulumi_gcp/alloydb/backup.py b/sdk/python/pulumi_gcp/alloydb/backup.py index f6cb985a61..206fd2c264 100644 --- a/sdk/python/pulumi_gcp/alloydb/backup.py +++ b/sdk/python/pulumi_gcp/alloydb/backup.py @@ -346,6 +346,14 @@ def __init__(__self__, project: Optional[pulumi.Input[str]] = None, __props__=None): """ + An AlloyDB Backup. + + To get more information about Backup, see: + + * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) + * How-to Guides + * [AlloyDB](https://cloud.google.com/alloydb/docs/) + ## Example Usage ### Alloydb Backup Full @@ -357,25 +365,21 @@ def __init__(__self__, default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc", address_type="INTERNAL", purpose="VPC_PEERING", prefix_length=16, - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) vpc_connection = gcp.servicenetworking.Connection("vpcConnection", network=default_network.id, service="servicenetworking.googleapis.com", - reserved_peering_ranges=[private_ip_alloc.name], - opts=pulumi.ResourceOptions(provider=google_beta)) + reserved_peering_ranges=[private_ip_alloc.name]) default_instance = gcp.alloydb.Instance("defaultInstance", cluster=default_cluster.name, instance_id="alloydb-instance", instance_type="PRIMARY", - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[vpc_connection])) + opts=pulumi.ResourceOptions(depends_on=[vpc_connection])) default_backup = gcp.alloydb.Backup("defaultBackup", location="us-central1", backup_id="alloydb-backup", @@ -384,8 +388,7 @@ def __init__(__self__, labels={ "label": "key", }, - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[default_instance])) + opts=pulumi.ResourceOptions(depends_on=[default_instance])) ``` ## Import @@ -421,6 +424,14 @@ def __init__(__self__, args: BackupArgs, opts: Optional[pulumi.ResourceOptions] = None): """ + An AlloyDB Backup. + + To get more information about Backup, see: + + * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.backups/create) + * How-to Guides + * [AlloyDB](https://cloud.google.com/alloydb/docs/) + ## Example Usage ### Alloydb Backup Full @@ -432,25 +443,21 @@ def __init__(__self__, default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc", address_type="INTERNAL", purpose="VPC_PEERING", prefix_length=16, - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) vpc_connection = gcp.servicenetworking.Connection("vpcConnection", network=default_network.id, service="servicenetworking.googleapis.com", - reserved_peering_ranges=[private_ip_alloc.name], - opts=pulumi.ResourceOptions(provider=google_beta)) + reserved_peering_ranges=[private_ip_alloc.name]) default_instance = gcp.alloydb.Instance("defaultInstance", cluster=default_cluster.name, instance_id="alloydb-instance", instance_type="PRIMARY", - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[vpc_connection])) + opts=pulumi.ResourceOptions(depends_on=[vpc_connection])) default_backup = gcp.alloydb.Backup("defaultBackup", location="us-central1", backup_id="alloydb-backup", @@ -459,8 +466,7 @@ def __init__(__self__, labels={ "label": "key", }, - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[default_instance])) + opts=pulumi.ResourceOptions(depends_on=[default_instance])) ``` ## Import diff --git a/sdk/python/pulumi_gcp/alloydb/cluster.py b/sdk/python/pulumi_gcp/alloydb/cluster.py index 5433250a19..1eac0a323c 100644 --- a/sdk/python/pulumi_gcp/alloydb/cluster.py +++ b/sdk/python/pulumi_gcp/alloydb/cluster.py @@ -410,53 +410,11 @@ def __init__(__self__, import pulumi_gcp as gcp project = gcp.organizations.get_project() - default_network = gcp.compute.Network("defaultNetwork", opts=pulumi.ResourceOptions(provider=google_beta)) + default_network = gcp.compute.Network("defaultNetwork") default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", - network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), - opts=pulumi.ResourceOptions(provider=google_beta)) - ``` - ### Alloydb Cluster Full - - ```python - import pulumi - import pulumi_gcp as gcp - - project = gcp.organizations.get_project() - default = gcp.compute.Network("default", opts=pulumi.ResourceOptions(provider=google_beta)) - full = gcp.alloydb.Cluster("full", - cluster_id="alloydb-cluster-full", - location="us-central1", - network=default.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), - initial_user=gcp.alloydb.ClusterInitialUserArgs( - user="alloydb-cluster-full", - password="alloydb-cluster-full", - ), - automated_backup_policy=gcp.alloydb.ClusterAutomatedBackupPolicyArgs( - location="us-central1", - backup_window="1800s", - enabled=True, - weekly_schedule=gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleArgs( - days_of_weeks=["MONDAY"], - start_times=[gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs( - hours=23, - minutes=0, - seconds=0, - nanos=0, - )], - ), - quantity_based_retention=gcp.alloydb.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs( - count=1, - ), - labels={ - "test": "alloydb-cluster-full", - }, - ), - labels={ - "test": "alloydb-cluster-full", - }, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}")) ``` ## Import @@ -510,53 +468,11 @@ def __init__(__self__, import pulumi_gcp as gcp project = gcp.organizations.get_project() - default_network = gcp.compute.Network("defaultNetwork", opts=pulumi.ResourceOptions(provider=google_beta)) + default_network = gcp.compute.Network("defaultNetwork") default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", - network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), - opts=pulumi.ResourceOptions(provider=google_beta)) - ``` - ### Alloydb Cluster Full - - ```python - import pulumi - import pulumi_gcp as gcp - - project = gcp.organizations.get_project() - default = gcp.compute.Network("default", opts=pulumi.ResourceOptions(provider=google_beta)) - full = gcp.alloydb.Cluster("full", - cluster_id="alloydb-cluster-full", - location="us-central1", - network=default.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), - initial_user=gcp.alloydb.ClusterInitialUserArgs( - user="alloydb-cluster-full", - password="alloydb-cluster-full", - ), - automated_backup_policy=gcp.alloydb.ClusterAutomatedBackupPolicyArgs( - location="us-central1", - backup_window="1800s", - enabled=True, - weekly_schedule=gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleArgs( - days_of_weeks=["MONDAY"], - start_times=[gcp.alloydb.ClusterAutomatedBackupPolicyWeeklyScheduleStartTimeArgs( - hours=23, - minutes=0, - seconds=0, - nanos=0, - )], - ), - quantity_based_retention=gcp.alloydb.ClusterAutomatedBackupPolicyQuantityBasedRetentionArgs( - count=1, - ), - labels={ - "test": "alloydb-cluster-full", - }, - ), - labels={ - "test": "alloydb-cluster-full", - }, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}")) ``` ## Import diff --git a/sdk/python/pulumi_gcp/alloydb/instance.py b/sdk/python/pulumi_gcp/alloydb/instance.py index 0b1ab2311b..f8b8a9f5da 100644 --- a/sdk/python/pulumi_gcp/alloydb/instance.py +++ b/sdk/python/pulumi_gcp/alloydb/instance.py @@ -528,6 +528,14 @@ def __init__(__self__, read_pool_config: Optional[pulumi.Input[pulumi.InputType['InstanceReadPoolConfigArgs']]] = None, __props__=None): """ + A managed alloydb cluster instance. + + To get more information about Instance, see: + + * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) + * How-to Guides + * [AlloyDB](https://cloud.google.com/alloydb/docs/) + ## Example Usage ### Alloydb Instance Basic @@ -536,26 +544,23 @@ def __init__(__self__, import pulumi_gcp as gcp project = gcp.organizations.get_project() - default_network = gcp.compute.Network("defaultNetwork", opts=pulumi.ResourceOptions(provider=google_beta)) + default_network = gcp.compute.Network("defaultNetwork") default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), initial_user=gcp.alloydb.ClusterInitialUserArgs( password="alloydb-cluster", - ), - opts=pulumi.ResourceOptions(provider=google_beta)) + )) private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc", address_type="INTERNAL", purpose="VPC_PEERING", prefix_length=16, - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) vpc_connection = gcp.servicenetworking.Connection("vpcConnection", network=default_network.id, service="servicenetworking.googleapis.com", - reserved_peering_ranges=[private_ip_alloc.name], - opts=pulumi.ResourceOptions(provider=google_beta)) + reserved_peering_ranges=[private_ip_alloc.name]) default_instance = gcp.alloydb.Instance("defaultInstance", cluster=default_cluster.name, instance_id="alloydb-instance", @@ -563,8 +568,7 @@ def __init__(__self__, machine_config=gcp.alloydb.InstanceMachineConfigArgs( cpu_count=2, ), - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[vpc_connection])) + opts=pulumi.ResourceOptions(depends_on=[vpc_connection])) ``` ## Import @@ -605,6 +609,14 @@ def __init__(__self__, args: InstanceArgs, opts: Optional[pulumi.ResourceOptions] = None): """ + A managed alloydb cluster instance. + + To get more information about Instance, see: + + * [API documentation](https://cloud.google.com/alloydb/docs/reference/rest/v1/projects.locations.clusters.instances/create) + * How-to Guides + * [AlloyDB](https://cloud.google.com/alloydb/docs/) + ## Example Usage ### Alloydb Instance Basic @@ -613,26 +625,23 @@ def __init__(__self__, import pulumi_gcp as gcp project = gcp.organizations.get_project() - default_network = gcp.compute.Network("defaultNetwork", opts=pulumi.ResourceOptions(provider=google_beta)) + default_network = gcp.compute.Network("defaultNetwork") default_cluster = gcp.alloydb.Cluster("defaultCluster", cluster_id="alloydb-cluster", location="us-central1", network=default_network.name.apply(lambda name: f"projects/{project.number}/global/networks/{name}"), initial_user=gcp.alloydb.ClusterInitialUserArgs( password="alloydb-cluster", - ), - opts=pulumi.ResourceOptions(provider=google_beta)) + )) private_ip_alloc = gcp.compute.GlobalAddress("privateIpAlloc", address_type="INTERNAL", purpose="VPC_PEERING", prefix_length=16, - network=default_network.id, - opts=pulumi.ResourceOptions(provider=google_beta)) + network=default_network.id) vpc_connection = gcp.servicenetworking.Connection("vpcConnection", network=default_network.id, service="servicenetworking.googleapis.com", - reserved_peering_ranges=[private_ip_alloc.name], - opts=pulumi.ResourceOptions(provider=google_beta)) + reserved_peering_ranges=[private_ip_alloc.name]) default_instance = gcp.alloydb.Instance("defaultInstance", cluster=default_cluster.name, instance_id="alloydb-instance", @@ -640,8 +649,7 @@ def __init__(__self__, machine_config=gcp.alloydb.InstanceMachineConfigArgs( cpu_count=2, ), - opts=pulumi.ResourceOptions(provider=google_beta, - depends_on=[vpc_connection])) + opts=pulumi.ResourceOptions(depends_on=[vpc_connection])) ``` ## Import diff --git a/sdk/python/pulumi_gcp/apigee/__init__.py b/sdk/python/pulumi_gcp/apigee/__init__.py index d4fb3e5a93..e13df8fa59 100644 --- a/sdk/python/pulumi_gcp/apigee/__init__.py +++ b/sdk/python/pulumi_gcp/apigee/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .addons_config import * from .endpoint_attachment import * from .env_group import * from .env_group_attachment import * diff --git a/sdk/python/pulumi_gcp/apigee/_inputs.py b/sdk/python/pulumi_gcp/apigee/_inputs.py index d70398de52..5cd62e4af6 100644 --- a/sdk/python/pulumi_gcp/apigee/_inputs.py +++ b/sdk/python/pulumi_gcp/apigee/_inputs.py @@ -10,6 +10,12 @@ from .. import _utilities __all__ = [ + 'AddonsConfigAddonsConfigArgs', + 'AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs', + 'AddonsConfigAddonsConfigApiSecurityConfigArgs', + 'AddonsConfigAddonsConfigConnectorsPlatformConfigArgs', + 'AddonsConfigAddonsConfigIntegrationConfigArgs', + 'AddonsConfigAddonsConfigMonetizationConfigArgs', 'EnvironmentIamBindingConditionArgs', 'EnvironmentIamMemberConditionArgs', 'EnvironmentNodeConfigArgs', @@ -17,6 +23,250 @@ 'OrganizationPropertiesPropertyArgs', ] +@pulumi.input_type +class AddonsConfigAddonsConfigArgs: + def __init__(__self__, *, + advanced_api_ops_config: Optional[pulumi.Input['AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs']] = None, + api_security_config: Optional[pulumi.Input['AddonsConfigAddonsConfigApiSecurityConfigArgs']] = None, + connectors_platform_config: Optional[pulumi.Input['AddonsConfigAddonsConfigConnectorsPlatformConfigArgs']] = None, + integration_config: Optional[pulumi.Input['AddonsConfigAddonsConfigIntegrationConfigArgs']] = None, + monetization_config: Optional[pulumi.Input['AddonsConfigAddonsConfigMonetizationConfigArgs']] = None): + """ + :param pulumi.Input['AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs'] advanced_api_ops_config: Configuration for the Monetization add-on. + Structure is documented below. + :param pulumi.Input['AddonsConfigAddonsConfigApiSecurityConfigArgs'] api_security_config: Configuration for the Monetization add-on. + Structure is documented below. + :param pulumi.Input['AddonsConfigAddonsConfigConnectorsPlatformConfigArgs'] connectors_platform_config: Configuration for the Monetization add-on. + Structure is documented below. + :param pulumi.Input['AddonsConfigAddonsConfigIntegrationConfigArgs'] integration_config: Configuration for the Monetization add-on. + Structure is documented below. + :param pulumi.Input['AddonsConfigAddonsConfigMonetizationConfigArgs'] monetization_config: Configuration for the Monetization add-on. + Structure is documented below. + """ + if advanced_api_ops_config is not None: + pulumi.set(__self__, "advanced_api_ops_config", advanced_api_ops_config) + if api_security_config is not None: + pulumi.set(__self__, "api_security_config", api_security_config) + if connectors_platform_config is not None: + pulumi.set(__self__, "connectors_platform_config", connectors_platform_config) + if integration_config is not None: + pulumi.set(__self__, "integration_config", integration_config) + if monetization_config is not None: + pulumi.set(__self__, "monetization_config", monetization_config) + + @property + @pulumi.getter(name="advancedApiOpsConfig") + def advanced_api_ops_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs']]: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "advanced_api_ops_config") + + @advanced_api_ops_config.setter + def advanced_api_ops_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs']]): + pulumi.set(self, "advanced_api_ops_config", value) + + @property + @pulumi.getter(name="apiSecurityConfig") + def api_security_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigApiSecurityConfigArgs']]: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "api_security_config") + + @api_security_config.setter + def api_security_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigApiSecurityConfigArgs']]): + pulumi.set(self, "api_security_config", value) + + @property + @pulumi.getter(name="connectorsPlatformConfig") + def connectors_platform_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigConnectorsPlatformConfigArgs']]: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "connectors_platform_config") + + @connectors_platform_config.setter + def connectors_platform_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigConnectorsPlatformConfigArgs']]): + pulumi.set(self, "connectors_platform_config", value) + + @property + @pulumi.getter(name="integrationConfig") + def integration_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigIntegrationConfigArgs']]: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "integration_config") + + @integration_config.setter + def integration_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigIntegrationConfigArgs']]): + pulumi.set(self, "integration_config", value) + + @property + @pulumi.getter(name="monetizationConfig") + def monetization_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigMonetizationConfigArgs']]: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "monetization_config") + + @monetization_config.setter + def monetization_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigMonetizationConfigArgs']]): + pulumi.set(self, "monetization_config", value) + + +@pulumi.input_type +class AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + +@pulumi.input_type +class AddonsConfigAddonsConfigApiSecurityConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + expires_at: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + :param pulumi.Input[str] expires_at: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[pulumi.Input[str]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expires_at", value) + + +@pulumi.input_type +class AddonsConfigAddonsConfigConnectorsPlatformConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + expires_at: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + :param pulumi.Input[str] expires_at: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[pulumi.Input[str]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expires_at", value) + + +@pulumi.input_type +class AddonsConfigAddonsConfigIntegrationConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + +@pulumi.input_type +class AddonsConfigAddonsConfigMonetizationConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @pulumi.input_type class EnvironmentIamBindingConditionArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/apigee/addons_config.py b/sdk/python/pulumi_gcp/apigee/addons_config.py new file mode 100644 index 0000000000..46e50212d0 --- /dev/null +++ b/sdk/python/pulumi_gcp/apigee/addons_config.py @@ -0,0 +1,390 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['AddonsConfigArgs', 'AddonsConfig'] + +@pulumi.input_type +class AddonsConfigArgs: + def __init__(__self__, *, + org: pulumi.Input[str], + addons_config: Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']] = None): + """ + The set of arguments for constructing a AddonsConfig resource. + :param pulumi.Input[str] org: Name of the Apigee organization. + :param pulumi.Input['AddonsConfigAddonsConfigArgs'] addons_config: Addon configurations of the Apigee organization. + Structure is documented below. + """ + pulumi.set(__self__, "org", org) + if addons_config is not None: + pulumi.set(__self__, "addons_config", addons_config) + + @property + @pulumi.getter + def org(self) -> pulumi.Input[str]: + """ + Name of the Apigee organization. + """ + return pulumi.get(self, "org") + + @org.setter + def org(self, value: pulumi.Input[str]): + pulumi.set(self, "org", value) + + @property + @pulumi.getter(name="addonsConfig") + def addons_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']]: + """ + Addon configurations of the Apigee organization. + Structure is documented below. + """ + return pulumi.get(self, "addons_config") + + @addons_config.setter + def addons_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']]): + pulumi.set(self, "addons_config", value) + + +@pulumi.input_type +class _AddonsConfigState: + def __init__(__self__, *, + addons_config: Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']] = None, + org: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AddonsConfig resources. + :param pulumi.Input['AddonsConfigAddonsConfigArgs'] addons_config: Addon configurations of the Apigee organization. + Structure is documented below. + :param pulumi.Input[str] org: Name of the Apigee organization. + """ + if addons_config is not None: + pulumi.set(__self__, "addons_config", addons_config) + if org is not None: + pulumi.set(__self__, "org", org) + + @property + @pulumi.getter(name="addonsConfig") + def addons_config(self) -> Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']]: + """ + Addon configurations of the Apigee organization. + Structure is documented below. + """ + return pulumi.get(self, "addons_config") + + @addons_config.setter + def addons_config(self, value: Optional[pulumi.Input['AddonsConfigAddonsConfigArgs']]): + pulumi.set(self, "addons_config", value) + + @property + @pulumi.getter + def org(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Apigee organization. + """ + return pulumi.get(self, "org") + + @org.setter + def org(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "org", value) + + +class AddonsConfig(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + addons_config: Optional[pulumi.Input[pulumi.InputType['AddonsConfigAddonsConfigArgs']]] = None, + org: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. + + To get more information about AddonsConfig, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) + * How-to Guides + * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) + + ## Example Usage + ### Apigee Addons Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + test_organization = gcp.apigee.AddonsConfig("testOrganization", + addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs( + api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs( + enabled=True, + ), + monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs( + enabled=True, + ), + ), + org="test_organization") + ``` + ### Apigee Addons Full + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee = gcp.projects.Service("apigee", + project=current.project, + service="apigee.googleapis.com") + compute = gcp.projects.Service("compute", + project=current.project, + service="compute.googleapis.com") + servicenetworking = gcp.projects.Service("servicenetworking", + project=current.project, + service="servicenetworking.googleapis.com") + apigee_network = gcp.compute.Network("apigeeNetwork", project=current.project, + opts=pulumi.ResourceOptions(depends_on=[compute])) + apigee_range = gcp.compute.GlobalAddress("apigeeRange", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id, + project=current.project) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigeeVpcConnection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + org = gcp.apigee.Organization("org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + billing_type="EVALUATION", + opts=pulumi.ResourceOptions(depends_on=[ + apigee_vpc_connection, + apigee, + ])) + test_organization = gcp.apigee.AddonsConfig("testOrganization", + org=org.name, + addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs( + integration_config=gcp.apigee.AddonsConfigAddonsConfigIntegrationConfigArgs( + enabled=True, + ), + api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs( + enabled=True, + ), + connectors_platform_config=gcp.apigee.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs( + enabled=True, + ), + monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs( + enabled=True, + ), + advanced_api_ops_config=gcp.apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs( + enabled=True, + ), + )) + ``` + + ## Import + + AddonsConfig can be imported using any of these accepted formats + + ```sh + $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['AddonsConfigAddonsConfigArgs']] addons_config: Addon configurations of the Apigee organization. + Structure is documented below. + :param pulumi.Input[str] org: Name of the Apigee organization. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AddonsConfigArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced. + + To get more information about AddonsConfig, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations#setaddons) + * How-to Guides + * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org) + + ## Example Usage + ### Apigee Addons Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + test_organization = gcp.apigee.AddonsConfig("testOrganization", + addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs( + api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs( + enabled=True, + ), + monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs( + enabled=True, + ), + ), + org="test_organization") + ``` + ### Apigee Addons Full + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee = gcp.projects.Service("apigee", + project=current.project, + service="apigee.googleapis.com") + compute = gcp.projects.Service("compute", + project=current.project, + service="compute.googleapis.com") + servicenetworking = gcp.projects.Service("servicenetworking", + project=current.project, + service="servicenetworking.googleapis.com") + apigee_network = gcp.compute.Network("apigeeNetwork", project=current.project, + opts=pulumi.ResourceOptions(depends_on=[compute])) + apigee_range = gcp.compute.GlobalAddress("apigeeRange", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id, + project=current.project) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigeeVpcConnection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + org = gcp.apigee.Organization("org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + billing_type="EVALUATION", + opts=pulumi.ResourceOptions(depends_on=[ + apigee_vpc_connection, + apigee, + ])) + test_organization = gcp.apigee.AddonsConfig("testOrganization", + org=org.name, + addons_config=gcp.apigee.AddonsConfigAddonsConfigArgs( + integration_config=gcp.apigee.AddonsConfigAddonsConfigIntegrationConfigArgs( + enabled=True, + ), + api_security_config=gcp.apigee.AddonsConfigAddonsConfigApiSecurityConfigArgs( + enabled=True, + ), + connectors_platform_config=gcp.apigee.AddonsConfigAddonsConfigConnectorsPlatformConfigArgs( + enabled=True, + ), + monetization_config=gcp.apigee.AddonsConfigAddonsConfigMonetizationConfigArgs( + enabled=True, + ), + advanced_api_ops_config=gcp.apigee.AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs( + enabled=True, + ), + )) + ``` + + ## Import + + AddonsConfig can be imported using any of these accepted formats + + ```sh + $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default organizations/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/addonsConfig:AddonsConfig default {{name}} + ``` + + :param str resource_name: The name of the resource. + :param AddonsConfigArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AddonsConfigArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + addons_config: Optional[pulumi.Input[pulumi.InputType['AddonsConfigAddonsConfigArgs']]] = None, + org: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AddonsConfigArgs.__new__(AddonsConfigArgs) + + __props__.__dict__["addons_config"] = addons_config + if org is None and not opts.urn: + raise TypeError("Missing required property 'org'") + __props__.__dict__["org"] = org + super(AddonsConfig, __self__).__init__( + 'gcp:apigee/addonsConfig:AddonsConfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + addons_config: Optional[pulumi.Input[pulumi.InputType['AddonsConfigAddonsConfigArgs']]] = None, + org: Optional[pulumi.Input[str]] = None) -> 'AddonsConfig': + """ + Get an existing AddonsConfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['AddonsConfigAddonsConfigArgs']] addons_config: Addon configurations of the Apigee organization. + Structure is documented below. + :param pulumi.Input[str] org: Name of the Apigee organization. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AddonsConfigState.__new__(_AddonsConfigState) + + __props__.__dict__["addons_config"] = addons_config + __props__.__dict__["org"] = org + return AddonsConfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="addonsConfig") + def addons_config(self) -> pulumi.Output[Optional['outputs.AddonsConfigAddonsConfig']]: + """ + Addon configurations of the Apigee organization. + Structure is documented below. + """ + return pulumi.get(self, "addons_config") + + @property + @pulumi.getter + def org(self) -> pulumi.Output[str]: + """ + Name of the Apigee organization. + """ + return pulumi.get(self, "org") + diff --git a/sdk/python/pulumi_gcp/apigee/outputs.py b/sdk/python/pulumi_gcp/apigee/outputs.py index 6700b3edee..6573b2b29b 100644 --- a/sdk/python/pulumi_gcp/apigee/outputs.py +++ b/sdk/python/pulumi_gcp/apigee/outputs.py @@ -11,6 +11,12 @@ from . import outputs __all__ = [ + 'AddonsConfigAddonsConfig', + 'AddonsConfigAddonsConfigAdvancedApiOpsConfig', + 'AddonsConfigAddonsConfigApiSecurityConfig', + 'AddonsConfigAddonsConfigConnectorsPlatformConfig', + 'AddonsConfigAddonsConfigIntegrationConfig', + 'AddonsConfigAddonsConfigMonetizationConfig', 'EnvironmentIamBindingCondition', 'EnvironmentIamMemberCondition', 'EnvironmentNodeConfig', @@ -18,6 +24,261 @@ 'OrganizationPropertiesProperty', ] +@pulumi.output_type +class AddonsConfigAddonsConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "advancedApiOpsConfig": + suggest = "advanced_api_ops_config" + elif key == "apiSecurityConfig": + suggest = "api_security_config" + elif key == "connectorsPlatformConfig": + suggest = "connectors_platform_config" + elif key == "integrationConfig": + suggest = "integration_config" + elif key == "monetizationConfig": + suggest = "monetization_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AddonsConfigAddonsConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AddonsConfigAddonsConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AddonsConfigAddonsConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + advanced_api_ops_config: Optional['outputs.AddonsConfigAddonsConfigAdvancedApiOpsConfig'] = None, + api_security_config: Optional['outputs.AddonsConfigAddonsConfigApiSecurityConfig'] = None, + connectors_platform_config: Optional['outputs.AddonsConfigAddonsConfigConnectorsPlatformConfig'] = None, + integration_config: Optional['outputs.AddonsConfigAddonsConfigIntegrationConfig'] = None, + monetization_config: Optional['outputs.AddonsConfigAddonsConfigMonetizationConfig'] = None): + """ + :param 'AddonsConfigAddonsConfigAdvancedApiOpsConfigArgs' advanced_api_ops_config: Configuration for the Monetization add-on. + Structure is documented below. + :param 'AddonsConfigAddonsConfigApiSecurityConfigArgs' api_security_config: Configuration for the Monetization add-on. + Structure is documented below. + :param 'AddonsConfigAddonsConfigConnectorsPlatformConfigArgs' connectors_platform_config: Configuration for the Monetization add-on. + Structure is documented below. + :param 'AddonsConfigAddonsConfigIntegrationConfigArgs' integration_config: Configuration for the Monetization add-on. + Structure is documented below. + :param 'AddonsConfigAddonsConfigMonetizationConfigArgs' monetization_config: Configuration for the Monetization add-on. + Structure is documented below. + """ + if advanced_api_ops_config is not None: + pulumi.set(__self__, "advanced_api_ops_config", advanced_api_ops_config) + if api_security_config is not None: + pulumi.set(__self__, "api_security_config", api_security_config) + if connectors_platform_config is not None: + pulumi.set(__self__, "connectors_platform_config", connectors_platform_config) + if integration_config is not None: + pulumi.set(__self__, "integration_config", integration_config) + if monetization_config is not None: + pulumi.set(__self__, "monetization_config", monetization_config) + + @property + @pulumi.getter(name="advancedApiOpsConfig") + def advanced_api_ops_config(self) -> Optional['outputs.AddonsConfigAddonsConfigAdvancedApiOpsConfig']: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "advanced_api_ops_config") + + @property + @pulumi.getter(name="apiSecurityConfig") + def api_security_config(self) -> Optional['outputs.AddonsConfigAddonsConfigApiSecurityConfig']: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "api_security_config") + + @property + @pulumi.getter(name="connectorsPlatformConfig") + def connectors_platform_config(self) -> Optional['outputs.AddonsConfigAddonsConfigConnectorsPlatformConfig']: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "connectors_platform_config") + + @property + @pulumi.getter(name="integrationConfig") + def integration_config(self) -> Optional['outputs.AddonsConfigAddonsConfigIntegrationConfig']: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "integration_config") + + @property + @pulumi.getter(name="monetizationConfig") + def monetization_config(self) -> Optional['outputs.AddonsConfigAddonsConfigMonetizationConfig']: + """ + Configuration for the Monetization add-on. + Structure is documented below. + """ + return pulumi.get(self, "monetization_config") + + +@pulumi.output_type +class AddonsConfigAddonsConfigAdvancedApiOpsConfig(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None): + """ + :param bool enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class AddonsConfigAddonsConfigApiSecurityConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "expiresAt": + suggest = "expires_at" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AddonsConfigAddonsConfigApiSecurityConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AddonsConfigAddonsConfigApiSecurityConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AddonsConfigAddonsConfigApiSecurityConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + expires_at: Optional[str] = None): + """ + :param bool enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + :param str expires_at: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[str]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "expires_at") + + +@pulumi.output_type +class AddonsConfigAddonsConfigConnectorsPlatformConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "expiresAt": + suggest = "expires_at" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AddonsConfigAddonsConfigConnectorsPlatformConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AddonsConfigAddonsConfigConnectorsPlatformConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AddonsConfigAddonsConfigConnectorsPlatformConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + expires_at: Optional[str] = None): + """ + :param bool enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + :param str expires_at: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[str]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "expires_at") + + +@pulumi.output_type +class AddonsConfigAddonsConfigIntegrationConfig(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None): + """ + :param bool enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class AddonsConfigAddonsConfigMonetizationConfig(dict): + def __init__(__self__, *, + enabled: Optional[bool] = None): + """ + :param bool enabled: Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Flag that specifies whether the Advanced API Ops add-on is enabled. + """ + return pulumi.get(self, "enabled") + + @pulumi.output_type class EnvironmentIamBindingCondition(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/__init__.py b/sdk/python/pulumi_gcp/cloudbuildv2/__init__.py index 3d24ebfd40..6d96de8bae 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/__init__.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/__init__.py @@ -6,6 +6,9 @@ import typing # Export this package's modules as members: from .connection import * +from .connection_iam_binding import * +from .connection_iam_member import * +from .connection_iam_policy import * from .repository import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py b/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py index 0e601978dd..b8a579341e 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/_inputs.py @@ -14,6 +14,8 @@ 'ConnectionGithubConfigAuthorizerCredentialArgs', 'ConnectionGithubEnterpriseConfigArgs', 'ConnectionGithubEnterpriseConfigServiceDirectoryConfigArgs', + 'ConnectionIAMBindingConditionArgs', + 'ConnectionIAMMemberConditionArgs', 'ConnectionInstallationStateArgs', ] @@ -251,6 +253,84 @@ def service(self, value: pulumi.Input[str]): pulumi.set(self, "service", value) +@pulumi.input_type +class ConnectionIAMBindingConditionArgs: + def __init__(__self__, *, + expression: pulumi.Input[str], + title: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "expression", expression) + pulumi.set(__self__, "title", title) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def title(self) -> pulumi.Input[str]: + return pulumi.get(self, "title") + + @title.setter + def title(self, value: pulumi.Input[str]): + pulumi.set(self, "title", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + +@pulumi.input_type +class ConnectionIAMMemberConditionArgs: + def __init__(__self__, *, + expression: pulumi.Input[str], + title: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "expression", expression) + pulumi.set(__self__, "title", title) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def title(self) -> pulumi.Input[str]: + return pulumi.get(self, "title") + + @title.setter + def title(self, value: pulumi.Input[str]): + pulumi.set(self, "title", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @pulumi.input_type class ConnectionInstallationStateArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py new file mode 100644 index 0000000000..5e5138a1cc --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_binding.py @@ -0,0 +1,438 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ConnectionIAMBindingArgs', 'ConnectionIAMBinding'] + +@pulumi.input_type +class ConnectionIAMBindingArgs: + def __init__(__self__, *, + members: pulumi.Input[Sequence[pulumi.Input[str]]], + role: pulumi.Input[str], + condition: Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a ConnectionIAMBinding resource. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + pulumi.set(__self__, "members", members) + pulumi.set(__self__, "role", role) + if condition is not None: + pulumi.set(__self__, "condition", condition) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter + def members(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + return pulumi.get(self, "members") + + @members.setter + def members(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "members", value) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter + def condition(self) -> Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']]: + return pulumi.get(self, "condition") + + @condition.setter + def condition(self, value: Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']]): + pulumi.set(self, "condition", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _ConnectionIAMBindingState: + def __init__(__self__, *, + condition: Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ConnectionIAMBinding resources. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + if condition is not None: + pulumi.set(__self__, "condition", condition) + if etag is not None: + pulumi.set(__self__, "etag", etag) + if location is not None: + pulumi.set(__self__, "location", location) + if members is not None: + pulumi.set(__self__, "members", members) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if role is not None: + pulumi.set(__self__, "role", role) + + @property + @pulumi.getter + def condition(self) -> Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']]: + return pulumi.get(self, "condition") + + @condition.setter + def condition(self, value: Optional[pulumi.Input['ConnectionIAMBindingConditionArgs']]): + pulumi.set(self, "condition", value) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "members") + + @members.setter + def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "members", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[str]]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role", value) + + +class ConnectionIAMBinding(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMBindingConditionArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ConnectionIAMBindingArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param ConnectionIAMBindingArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ConnectionIAMBindingArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMBindingConditionArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ConnectionIAMBindingArgs.__new__(ConnectionIAMBindingArgs) + + __props__.__dict__["condition"] = condition + __props__.__dict__["location"] = location + if members is None and not opts.urn: + raise TypeError("Missing required property 'members'") + __props__.__dict__["members"] = members + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + __props__.__dict__["etag"] = None + super(ConnectionIAMBinding, __self__).__init__( + 'gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMBindingConditionArgs']]] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None) -> 'ConnectionIAMBinding': + """ + Get an existing ConnectionIAMBinding resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ConnectionIAMBindingState.__new__(_ConnectionIAMBindingState) + + __props__.__dict__["condition"] = condition + __props__.__dict__["etag"] = etag + __props__.__dict__["location"] = location + __props__.__dict__["members"] = members + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["role"] = role + return ConnectionIAMBinding(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def condition(self) -> pulumi.Output[Optional['outputs.ConnectionIAMBindingCondition']]: + return pulumi.get(self, "condition") + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def members(self) -> pulumi.Output[Sequence[str]]: + return pulumi.get(self, "members") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter + def role(self) -> pulumi.Output[str]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py new file mode 100644 index 0000000000..4379c8f658 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_member.py @@ -0,0 +1,438 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ConnectionIAMMemberArgs', 'ConnectionIAMMember'] + +@pulumi.input_type +class ConnectionIAMMemberArgs: + def __init__(__self__, *, + member: pulumi.Input[str], + role: pulumi.Input[str], + condition: Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a ConnectionIAMMember resource. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + pulumi.set(__self__, "member", member) + pulumi.set(__self__, "role", role) + if condition is not None: + pulumi.set(__self__, "condition", condition) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter + def member(self) -> pulumi.Input[str]: + return pulumi.get(self, "member") + + @member.setter + def member(self, value: pulumi.Input[str]): + pulumi.set(self, "member", value) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter + def condition(self) -> Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']]: + return pulumi.get(self, "condition") + + @condition.setter + def condition(self, value: Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']]): + pulumi.set(self, "condition", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _ConnectionIAMMemberState: + def __init__(__self__, *, + condition: Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ConnectionIAMMember resources. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + if condition is not None: + pulumi.set(__self__, "condition", condition) + if etag is not None: + pulumi.set(__self__, "etag", etag) + if location is not None: + pulumi.set(__self__, "location", location) + if member is not None: + pulumi.set(__self__, "member", member) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if role is not None: + pulumi.set(__self__, "role", role) + + @property + @pulumi.getter + def condition(self) -> Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']]: + return pulumi.get(self, "condition") + + @condition.setter + def condition(self, value: Optional[pulumi.Input['ConnectionIAMMemberConditionArgs']]): + pulumi.set(self, "condition", value) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def member(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "member") + + @member.setter + def member(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "member", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[str]]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role", value) + + +class ConnectionIAMMember(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMMemberConditionArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ConnectionIAMMemberArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param ConnectionIAMMemberArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ConnectionIAMMemberArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMMemberConditionArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ConnectionIAMMemberArgs.__new__(ConnectionIAMMemberArgs) + + __props__.__dict__["condition"] = condition + __props__.__dict__["location"] = location + if member is None and not opts.urn: + raise TypeError("Missing required property 'member'") + __props__.__dict__["member"] = member + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + __props__.__dict__["etag"] = None + super(ConnectionIAMMember, __self__).__init__( + 'gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + condition: Optional[pulumi.Input[pulumi.InputType['ConnectionIAMMemberConditionArgs']]] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None) -> 'ConnectionIAMMember': + """ + Get an existing ConnectionIAMMember resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + :param pulumi.Input[str] role: The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ConnectionIAMMemberState.__new__(_ConnectionIAMMemberState) + + __props__.__dict__["condition"] = condition + __props__.__dict__["etag"] = etag + __props__.__dict__["location"] = location + __props__.__dict__["member"] = member + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["role"] = role + return ConnectionIAMMember(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def condition(self) -> pulumi.Output[Optional['outputs.ConnectionIAMMemberCondition']]: + return pulumi.get(self, "condition") + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def member(self) -> pulumi.Output[str]: + return pulumi.get(self, "member") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter + def role(self) -> pulumi.Output[str]: + """ + The role that should be applied. Only one + `cloudbuildv2.ConnectionIAMBinding` can be used per role. Note that custom roles must be of the format + `[projects|organizations]/{parent-name}/roles/{role-name}`. + """ + return pulumi.get(self, "role") + diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py new file mode 100644 index 0000000000..0171936330 --- /dev/null +++ b/sdk/python/pulumi_gcp/cloudbuildv2/connection_iam_policy.py @@ -0,0 +1,360 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['ConnectionIAMPolicyArgs', 'ConnectionIAMPolicy'] + +@pulumi.input_type +class ConnectionIAMPolicyArgs: + def __init__(__self__, *, + policy_data: pulumi.Input[str], + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a ConnectionIAMPolicy resource. + :param pulumi.Input[str] policy_data: The policy data generated by + a `organizations.get_iam_policy` data source. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + pulumi.set(__self__, "policy_data", policy_data) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter(name="policyData") + def policy_data(self) -> pulumi.Input[str]: + """ + The policy data generated by + a `organizations.get_iam_policy` data source. + """ + return pulumi.get(self, "policy_data") + + @policy_data.setter + def policy_data(self, value: pulumi.Input[str]): + pulumi.set(self, "policy_data", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _ConnectionIAMPolicyState: + def __init__(__self__, *, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_data: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ConnectionIAMPolicy resources. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] policy_data: The policy data generated by + a `organizations.get_iam_policy` data source. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + if etag is not None: + pulumi.set(__self__, "etag", etag) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if policy_data is not None: + pulumi.set(__self__, "policy_data", policy_data) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="policyData") + def policy_data(self) -> Optional[pulumi.Input[str]]: + """ + The policy data generated by + a `organizations.get_iam_policy` data source. + """ + return pulumi.get(self, "policy_data") + + @policy_data.setter + def policy_data(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "policy_data", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +class ConnectionIAMPolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_data: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] policy_data: The policy data generated by + a `organizations.get_iam_policy` data source. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ConnectionIAMPolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/locations/{{location}}/connections/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Build V2 connection IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer user:jane@example.com" + ``` + + IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor "projects/{{project}}/locations/{{location}}/connections/{{connection}} roles/cloudbuild.connectionViewer" + ``` + + IAM policy imports use the identifier of the resource in question, e.g. + + ```sh + $ pulumi import gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy editor projects/{{project}}/locations/{{location}}/connections/{{connection}} + ``` + + -> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the + + full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. + + :param str resource_name: The name of the resource. + :param ConnectionIAMPolicyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ConnectionIAMPolicyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_data: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ConnectionIAMPolicyArgs.__new__(ConnectionIAMPolicyArgs) + + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + if policy_data is None and not opts.urn: + raise TypeError("Missing required property 'policy_data'") + __props__.__dict__["policy_data"] = policy_data + __props__.__dict__["project"] = project + __props__.__dict__["etag"] = None + super(ConnectionIAMPolicy, __self__).__init__( + 'gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + etag: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_data: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None) -> 'ConnectionIAMPolicy': + """ + Get an existing ConnectionIAMPolicy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy. + :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to + :param pulumi.Input[str] policy_data: The policy data generated by + a `organizations.get_iam_policy` data source. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ConnectionIAMPolicyState.__new__(_ConnectionIAMPolicyState) + + __props__.__dict__["etag"] = etag + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["policy_data"] = policy_data + __props__.__dict__["project"] = project + return ConnectionIAMPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + (Computed) The etag of the IAM policy. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Used to find the parent resource to bind the IAM policy to + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="policyData") + def policy_data(self) -> pulumi.Output[str]: + """ + The policy data generated by + a `organizations.get_iam_policy` data source. + """ + return pulumi.get(self, "policy_data") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used. + """ + return pulumi.get(self, "project") + diff --git a/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py b/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py index 4baa44d3a9..a043af9c01 100644 --- a/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudbuildv2/outputs.py @@ -15,6 +15,8 @@ 'ConnectionGithubConfigAuthorizerCredential', 'ConnectionGithubEnterpriseConfig', 'ConnectionGithubEnterpriseConfigServiceDirectoryConfig', + 'ConnectionIAMBindingCondition', + 'ConnectionIAMMemberCondition', 'ConnectionInstallationState', ] @@ -267,6 +269,60 @@ def service(self) -> str: return pulumi.get(self, "service") +@pulumi.output_type +class ConnectionIAMBindingCondition(dict): + def __init__(__self__, *, + expression: str, + title: str, + description: Optional[str] = None): + pulumi.set(__self__, "expression", expression) + pulumi.set(__self__, "title", title) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def expression(self) -> str: + return pulumi.get(self, "expression") + + @property + @pulumi.getter + def title(self) -> str: + return pulumi.get(self, "title") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + +@pulumi.output_type +class ConnectionIAMMemberCondition(dict): + def __init__(__self__, *, + expression: str, + title: str, + description: Optional[str] = None): + pulumi.set(__self__, "expression", expression) + pulumi.set(__self__, "title", title) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def expression(self) -> str: + return pulumi.get(self, "expression") + + @property + @pulumi.getter + def title(self) -> str: + return pulumi.get(self, "title") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @pulumi.output_type class ConnectionInstallationState(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/compute/_inputs.py b/sdk/python/pulumi_gcp/compute/_inputs.py index 62e805af53..5f48241d6a 100644 --- a/sdk/python/pulumi_gcp/compute/_inputs.py +++ b/sdk/python/pulumi_gcp/compute/_inputs.py @@ -126,6 +126,7 @@ 'InstanceFromTemplateShieldedInstanceConfigArgs', 'InstanceGroupManagerAllInstancesConfigArgs', 'InstanceGroupManagerAutoHealingPoliciesArgs', + 'InstanceGroupManagerInstanceLifecyclePolicyArgs', 'InstanceGroupManagerNamedPortArgs', 'InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulExternalIpArgs', @@ -242,6 +243,7 @@ 'RegionHealthCheckTcpHealthCheckArgs', 'RegionInstanceGroupManagerAllInstancesConfigArgs', 'RegionInstanceGroupManagerAutoHealingPoliciesArgs', + 'RegionInstanceGroupManagerInstanceLifecyclePolicyArgs', 'RegionInstanceGroupManagerNamedPortArgs', 'RegionInstanceGroupManagerStatefulDiskArgs', 'RegionInstanceGroupManagerStatefulExternalIpArgs', @@ -8330,6 +8332,29 @@ def initial_delay_sec(self, value: pulumi.Input[int]): pulumi.set(self, "initial_delay_sec", value) +@pulumi.input_type +class InstanceGroupManagerInstanceLifecyclePolicyArgs: + def __init__(__self__, *, + force_update_on_repair: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] force_update_on_repair: ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + """ + if force_update_on_repair is not None: + pulumi.set(__self__, "force_update_on_repair", force_update_on_repair) + + @property + @pulumi.getter(name="forceUpdateOnRepair") + def force_update_on_repair(self) -> Optional[pulumi.Input[str]]: + """ + ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + """ + return pulumi.get(self, "force_update_on_repair") + + @force_update_on_repair.setter + def force_update_on_repair(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "force_update_on_repair", value) + + @pulumi.input_type class InstanceGroupManagerNamedPortArgs: def __init__(__self__, *, @@ -16276,6 +16301,31 @@ def initial_delay_sec(self, value: pulumi.Input[int]): pulumi.set(self, "initial_delay_sec", value) +@pulumi.input_type +class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs: + def __init__(__self__, *, + force_update_on_repair: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] force_update_on_repair: ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + - - - + """ + if force_update_on_repair is not None: + pulumi.set(__self__, "force_update_on_repair", force_update_on_repair) + + @property + @pulumi.getter(name="forceUpdateOnRepair") + def force_update_on_repair(self) -> Optional[pulumi.Input[str]]: + """ + ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + - - - + """ + return pulumi.get(self, "force_update_on_repair") + + @force_update_on_repair.setter + def force_update_on_repair(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "force_update_on_repair", value) + + @pulumi.input_type class RegionInstanceGroupManagerNamedPortArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py b/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py index 4d2d299812..8eb8f511d3 100644 --- a/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py +++ b/sdk/python/pulumi_gcp/compute/external_vpn_gateway.py @@ -18,6 +18,7 @@ class ExternalVpnGatewayArgs: def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, redundancy_type: Optional[pulumi.Input[str]] = None): @@ -26,6 +27,7 @@ def __init__(__self__, *, :param pulumi.Input[str] description: An optional description of this resource. :param pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]] interfaces: A list of interfaces on this external VPN gateway. Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for the external VPN gateway resource. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and @@ -42,6 +44,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if interfaces is not None: pulumi.set(__self__, "interfaces", interfaces) + if labels is not None: + pulumi.set(__self__, "labels", labels) if name is not None: pulumi.set(__self__, "name", name) if project is not None: @@ -74,6 +78,18 @@ def interfaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpn def interfaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]]]): pulumi.set(self, "interfaces", value) + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Labels for the external VPN gateway resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -124,6 +140,7 @@ class _ExternalVpnGatewayState: def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, redundancy_type: Optional[pulumi.Input[str]] = None, @@ -133,6 +150,7 @@ def __init__(__self__, *, :param pulumi.Input[str] description: An optional description of this resource. :param pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]] interfaces: A list of interfaces on this external VPN gateway. Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for the external VPN gateway resource. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and @@ -150,6 +168,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if interfaces is not None: pulumi.set(__self__, "interfaces", interfaces) + if labels is not None: + pulumi.set(__self__, "labels", labels) if name is not None: pulumi.set(__self__, "name", name) if project is not None: @@ -184,6 +204,18 @@ def interfaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpn def interfaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ExternalVpnGatewayInterfaceArgs']]]]): pulumi.set(self, "interfaces", value) + @property + @pulumi.getter + def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Labels for the external VPN gateway resource. + """ + return pulumi.get(self, "labels") + + @labels.setter + def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "labels", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -248,6 +280,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ExternalVpnGatewayInterfaceArgs']]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, redundancy_type: Optional[pulumi.Input[str]] = None, @@ -355,6 +388,7 @@ def __init__(__self__, :param pulumi.Input[str] description: An optional description of this resource. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ExternalVpnGatewayInterfaceArgs']]]] interfaces: A list of interfaces on this external VPN gateway. Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for the external VPN gateway resource. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and @@ -488,6 +522,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ExternalVpnGatewayInterfaceArgs']]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, redundancy_type: Optional[pulumi.Input[str]] = None, @@ -502,6 +537,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["interfaces"] = interfaces + __props__.__dict__["labels"] = labels __props__.__dict__["name"] = name __props__.__dict__["project"] = project __props__.__dict__["redundancy_type"] = redundancy_type @@ -518,6 +554,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ExternalVpnGatewayInterfaceArgs']]]]] = None, + labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, redundancy_type: Optional[pulumi.Input[str]] = None, @@ -532,6 +569,7 @@ def get(resource_name: str, :param pulumi.Input[str] description: An optional description of this resource. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ExternalVpnGatewayInterfaceArgs']]]] interfaces: A list of interfaces on this external VPN gateway. Structure is documented below. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels for the external VPN gateway resource. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and @@ -551,6 +589,7 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["interfaces"] = interfaces + __props__.__dict__["labels"] = labels __props__.__dict__["name"] = name __props__.__dict__["project"] = project __props__.__dict__["redundancy_type"] = redundancy_type @@ -574,6 +613,14 @@ def interfaces(self) -> pulumi.Output[Optional[Sequence['outputs.ExternalVpnGate """ return pulumi.get(self, "interfaces") + @property + @pulumi.getter + def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Labels for the external VPN gateway resource. + """ + return pulumi.get(self, "labels") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py index f0c50be9bb..67e8c4e154 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_group_manager.py @@ -22,7 +22,7 @@ class GetInstanceGroupManagerResult: """ A collection of values returned by getInstanceGroupManager. """ - def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, description=None, fingerprint=None, id=None, instance_group=None, list_managed_instances_results=None, name=None, named_ports=None, operation=None, project=None, self_link=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None, zone=None): + def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, base_instance_name=None, description=None, fingerprint=None, id=None, instance_group=None, instance_lifecycle_policies=None, list_managed_instances_results=None, name=None, named_ports=None, operation=None, project=None, self_link=None, stateful_disks=None, stateful_external_ips=None, stateful_internal_ips=None, statuses=None, target_pools=None, target_size=None, update_policies=None, versions=None, wait_for_instances=None, wait_for_instances_status=None, zone=None): if all_instances_configs and not isinstance(all_instances_configs, list): raise TypeError("Expected argument 'all_instances_configs' to be a list") pulumi.set(__self__, "all_instances_configs", all_instances_configs) @@ -44,6 +44,9 @@ def __init__(__self__, all_instances_configs=None, auto_healing_policies=None, b if instance_group and not isinstance(instance_group, str): raise TypeError("Expected argument 'instance_group' to be a str") pulumi.set(__self__, "instance_group", instance_group) + if instance_lifecycle_policies and not isinstance(instance_lifecycle_policies, list): + raise TypeError("Expected argument 'instance_lifecycle_policies' to be a list") + pulumi.set(__self__, "instance_lifecycle_policies", instance_lifecycle_policies) if list_managed_instances_results and not isinstance(list_managed_instances_results, str): raise TypeError("Expected argument 'list_managed_instances_results' to be a str") pulumi.set(__self__, "list_managed_instances_results", list_managed_instances_results) @@ -134,6 +137,11 @@ def id(self) -> str: def instance_group(self) -> str: return pulumi.get(self, "instance_group") + @property + @pulumi.getter(name="instanceLifecyclePolicies") + def instance_lifecycle_policies(self) -> Sequence['outputs.GetInstanceGroupManagerInstanceLifecyclePolicyResult']: + return pulumi.get(self, "instance_lifecycle_policies") + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> str: @@ -233,6 +241,7 @@ def __await__(self): fingerprint=self.fingerprint, id=self.id, instance_group=self.instance_group, + instance_lifecycle_policies=self.instance_lifecycle_policies, list_managed_instances_results=self.list_managed_instances_results, name=self.name, named_ports=self.named_ports, @@ -295,6 +304,7 @@ def get_instance_group_manager(name: Optional[str] = None, fingerprint=__ret__.fingerprint, id=__ret__.id, instance_group=__ret__.instance_group, + instance_lifecycle_policies=__ret__.instance_lifecycle_policies, list_managed_instances_results=__ret__.list_managed_instances_results, name=__ret__.name, named_ports=__ret__.named_ports, diff --git a/sdk/python/pulumi_gcp/compute/get_instance_template.py b/sdk/python/pulumi_gcp/compute/get_instance_template.py index 508b7b4334..5087697ac8 100644 --- a/sdk/python/pulumi_gcp/compute/get_instance_template.py +++ b/sdk/python/pulumi_gcp/compute/get_instance_template.py @@ -22,7 +22,7 @@ class GetInstanceTemplateResult: """ A collection of values returned by getInstanceTemplate. """ - def __init__(__self__, advanced_machine_features=None, can_ip_forward=None, confidential_instance_configs=None, description=None, disks=None, enable_display=None, filter=None, guest_accelerators=None, id=None, instance_description=None, labels=None, machine_type=None, metadata=None, metadata_fingerprint=None, metadata_startup_script=None, min_cpu_platform=None, most_recent=None, name=None, name_prefix=None, network_interfaces=None, network_performance_configs=None, project=None, region=None, reservation_affinities=None, schedulings=None, self_link=None, service_accounts=None, shielded_instance_configs=None, tags=None, tags_fingerprint=None): + def __init__(__self__, advanced_machine_features=None, can_ip_forward=None, confidential_instance_configs=None, description=None, disks=None, enable_display=None, filter=None, guest_accelerators=None, id=None, instance_description=None, labels=None, machine_type=None, metadata=None, metadata_fingerprint=None, metadata_startup_script=None, min_cpu_platform=None, most_recent=None, name=None, name_prefix=None, network_interfaces=None, network_performance_configs=None, project=None, region=None, reservation_affinities=None, resource_policies=None, schedulings=None, self_link=None, service_accounts=None, shielded_instance_configs=None, tags=None, tags_fingerprint=None): if advanced_machine_features and not isinstance(advanced_machine_features, list): raise TypeError("Expected argument 'advanced_machine_features' to be a list") pulumi.set(__self__, "advanced_machine_features", advanced_machine_features) @@ -95,6 +95,9 @@ def __init__(__self__, advanced_machine_features=None, can_ip_forward=None, conf if reservation_affinities and not isinstance(reservation_affinities, list): raise TypeError("Expected argument 'reservation_affinities' to be a list") pulumi.set(__self__, "reservation_affinities", reservation_affinities) + if resource_policies and not isinstance(resource_policies, list): + raise TypeError("Expected argument 'resource_policies' to be a list") + pulumi.set(__self__, "resource_policies", resource_policies) if schedulings and not isinstance(schedulings, list): raise TypeError("Expected argument 'schedulings' to be a list") pulumi.set(__self__, "schedulings", schedulings) @@ -312,6 +315,14 @@ def region(self) -> str: def reservation_affinities(self) -> Sequence['outputs.GetInstanceTemplateReservationAffinityResult']: return pulumi.get(self, "reservation_affinities") + @property + @pulumi.getter(name="resourcePolicies") + def resource_policies(self) -> Sequence[str]: + """ + (Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported. + """ + return pulumi.get(self, "resource_policies") + @property @pulumi.getter def schedulings(self) -> Sequence['outputs.GetInstanceTemplateSchedulingResult']: @@ -393,6 +404,7 @@ def __await__(self): project=self.project, region=self.region, reservation_affinities=self.reservation_affinities, + resource_policies=self.resource_policies, schedulings=self.schedulings, self_link=self.self_link, service_accounts=self.service_accounts, @@ -465,6 +477,7 @@ def get_instance_template(filter: Optional[str] = None, project=__ret__.project, region=__ret__.region, reservation_affinities=__ret__.reservation_affinities, + resource_policies=__ret__.resource_policies, schedulings=__ret__.schedulings, self_link=__ret__.self_link, service_accounts=__ret__.service_accounts, diff --git a/sdk/python/pulumi_gcp/compute/instance_group_manager.py b/sdk/python/pulumi_gcp/compute/instance_group_manager.py index bad2fecc7f..09e9f0d982 100644 --- a/sdk/python/pulumi_gcp/compute/instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/instance_group_manager.py @@ -21,6 +21,7 @@ def __init__(__self__, *, all_instances_config: Optional[pulumi.Input['InstanceGroupManagerAllInstancesConfigArgs']] = None, auto_healing_policies: Optional[pulumi.Input['InstanceGroupManagerAutoHealingPoliciesArgs']] = None, description: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerNamedPortArgs']]]] = None, @@ -53,6 +54,7 @@ def __init__(__self__, *, group. You can specify only one value. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances#monitoring_groups). :param pulumi.Input[str] description: An optional textual description of the instance group manager. + :param pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -94,6 +96,8 @@ def __init__(__self__, *, pulumi.set(__self__, "auto_healing_policies", auto_healing_policies) if description is not None: pulumi.set(__self__, "description", description) + if instance_lifecycle_policy is not None: + pulumi.set(__self__, "instance_lifecycle_policy", instance_lifecycle_policy) if list_managed_instances_results is not None: pulumi.set(__self__, "list_managed_instances_results", list_managed_instances_results) if name is not None: @@ -193,6 +197,18 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']]: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + + @instance_lifecycle_policy.setter + def instance_lifecycle_policy(self, value: Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']]): + pulumi.set(self, "instance_lifecycle_policy", value) + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> Optional[pulumi.Input[str]]: @@ -378,6 +394,7 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, fingerprint: Optional[pulumi.Input[str]] = None, instance_group: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerNamedPortArgs']]]] = None, @@ -413,6 +430,7 @@ def __init__(__self__, *, group manager. :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. + :param pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -463,6 +481,8 @@ def __init__(__self__, *, pulumi.set(__self__, "fingerprint", fingerprint) if instance_group is not None: pulumi.set(__self__, "instance_group", instance_group) + if instance_lifecycle_policy is not None: + pulumi.set(__self__, "instance_lifecycle_policy", instance_lifecycle_policy) if list_managed_instances_results is not None: pulumi.set(__self__, "list_managed_instances_results", list_managed_instances_results) if name is not None: @@ -580,6 +600,18 @@ def instance_group(self) -> Optional[pulumi.Input[str]]: def instance_group(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "instance_group", value) + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']]: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + + @instance_lifecycle_policy.setter + def instance_lifecycle_policy(self, value: Optional[pulumi.Input['InstanceGroupManagerInstanceLifecyclePolicyArgs']]): + pulumi.set(self, "instance_lifecycle_policy", value) + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> Optional[pulumi.Input[str]]: @@ -812,6 +844,7 @@ def __init__(__self__, auto_healing_policies: Optional[pulumi.Input[pulumi.InputType['InstanceGroupManagerAutoHealingPoliciesArgs']]] = None, base_instance_name: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['InstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceGroupManagerNamedPortArgs']]]]] = None, @@ -937,6 +970,7 @@ def __init__(__self__, name. :param pulumi.Input[str] description: An optional textual description of the instance group manager. + :param pulumi.Input[pulumi.InputType['InstanceGroupManagerInstanceLifecyclePolicyArgs']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -1092,6 +1126,7 @@ def _internal_init(__self__, auto_healing_policies: Optional[pulumi.Input[pulumi.InputType['InstanceGroupManagerAutoHealingPoliciesArgs']]] = None, base_instance_name: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['InstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceGroupManagerNamedPortArgs']]]]] = None, @@ -1121,6 +1156,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'base_instance_name'") __props__.__dict__["base_instance_name"] = base_instance_name __props__.__dict__["description"] = description + __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results __props__.__dict__["name"] = name __props__.__dict__["named_ports"] = named_ports @@ -1158,6 +1194,7 @@ def get(resource_name: str, description: Optional[pulumi.Input[str]] = None, fingerprint: Optional[pulumi.Input[str]] = None, instance_group: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['InstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceGroupManagerNamedPortArgs']]]]] = None, @@ -1198,6 +1235,7 @@ def get(resource_name: str, group manager. :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. + :param pulumi.Input[pulumi.InputType['InstanceGroupManagerInstanceLifecyclePolicyArgs']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -1246,6 +1284,7 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["fingerprint"] = fingerprint __props__.__dict__["instance_group"] = instance_group + __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results __props__.__dict__["name"] = name __props__.__dict__["named_ports"] = named_ports @@ -1323,6 +1362,14 @@ def instance_group(self) -> pulumi.Output[str]: """ return pulumi.get(self, "instance_group") + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> pulumi.Output['outputs.InstanceGroupManagerInstanceLifecyclePolicy']: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_gcp/compute/instance_template.py b/sdk/python/pulumi_gcp/compute/instance_template.py index 7010c3d7a1..4d3f229691 100644 --- a/sdk/python/pulumi_gcp/compute/instance_template.py +++ b/sdk/python/pulumi_gcp/compute/instance_template.py @@ -36,6 +36,7 @@ def __init__(__self__, *, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reservation_affinity: Optional[pulumi.Input['InstanceTemplateReservationAffinityArgs']] = None, + resource_policies: Optional[pulumi.Input[str]] = None, scheduling: Optional[pulumi.Input['InstanceTemplateSchedulingArgs']] = None, service_account: Optional[pulumi.Input['InstanceTemplateServiceAccountArgs']] = None, shielded_instance_config: Optional[pulumi.Input['InstanceTemplateShieldedInstanceConfigArgs']] = None, @@ -88,6 +89,7 @@ def __init__(__self__, *, Provider if no value is given. :param pulumi.Input['InstanceTemplateReservationAffinityArgs'] reservation_affinity: Specifies the reservations that this instance can consume from. Structure is documented below. + :param pulumi.Input[str] resource_policies: - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. :param pulumi.Input['InstanceTemplateSchedulingArgs'] scheduling: The scheduling strategy to use. More details about this configuration option are detailed below. :param pulumi.Input['InstanceTemplateServiceAccountArgs'] service_account: Service account to attach to the instance. Structure is documented below. @@ -133,6 +135,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if reservation_affinity is not None: pulumi.set(__self__, "reservation_affinity", reservation_affinity) + if resource_policies is not None: + pulumi.set(__self__, "resource_policies", resource_policies) if scheduling is not None: pulumi.set(__self__, "scheduling", scheduling) if service_account is not None: @@ -408,6 +412,18 @@ def reservation_affinity(self) -> Optional[pulumi.Input['InstanceTemplateReserva def reservation_affinity(self, value: Optional[pulumi.Input['InstanceTemplateReservationAffinityArgs']]): pulumi.set(self, "reservation_affinity", value) + @property + @pulumi.getter(name="resourcePolicies") + def resource_policies(self) -> Optional[pulumi.Input[str]]: + """ + - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + """ + return pulumi.get(self, "resource_policies") + + @resource_policies.setter + def resource_policies(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_policies", value) + @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingArgs']]: @@ -483,6 +499,7 @@ def __init__(__self__, *, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reservation_affinity: Optional[pulumi.Input['InstanceTemplateReservationAffinityArgs']] = None, + resource_policies: Optional[pulumi.Input[str]] = None, scheduling: Optional[pulumi.Input['InstanceTemplateSchedulingArgs']] = None, self_link: Optional[pulumi.Input[str]] = None, service_account: Optional[pulumi.Input['InstanceTemplateServiceAccountArgs']] = None, @@ -538,6 +555,7 @@ def __init__(__self__, *, Provider if no value is given. :param pulumi.Input['InstanceTemplateReservationAffinityArgs'] reservation_affinity: Specifies the reservations that this instance can consume from. Structure is documented below. + :param pulumi.Input[str] resource_policies: - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. :param pulumi.Input['InstanceTemplateSchedulingArgs'] scheduling: The scheduling strategy to use. More details about this configuration option are detailed below. :param pulumi.Input[str] self_link: The URI of the created resource. @@ -589,6 +607,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if reservation_affinity is not None: pulumi.set(__self__, "reservation_affinity", reservation_affinity) + if resource_policies is not None: + pulumi.set(__self__, "resource_policies", resource_policies) if scheduling is not None: pulumi.set(__self__, "scheduling", scheduling) if self_link is not None: @@ -880,6 +900,18 @@ def reservation_affinity(self) -> Optional[pulumi.Input['InstanceTemplateReserva def reservation_affinity(self, value: Optional[pulumi.Input['InstanceTemplateReservationAffinityArgs']]): pulumi.set(self, "reservation_affinity", value) + @property + @pulumi.getter(name="resourcePolicies") + def resource_policies(self) -> Optional[pulumi.Input[str]]: + """ + - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + """ + return pulumi.get(self, "resource_policies") + + @resource_policies.setter + def resource_policies(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_policies", value) + @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['InstanceTemplateSchedulingArgs']]: @@ -980,6 +1012,7 @@ def __init__(__self__, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reservation_affinity: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateReservationAffinityArgs']]] = None, + resource_policies: Optional[pulumi.Input[str]] = None, scheduling: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateSchedulingArgs']]] = None, service_account: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateServiceAccountArgs']]] = None, shielded_instance_config: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateShieldedInstanceConfigArgs']]] = None, @@ -1052,6 +1085,7 @@ def __init__(__self__, Provider if no value is given. :param pulumi.Input[pulumi.InputType['InstanceTemplateReservationAffinityArgs']] reservation_affinity: Specifies the reservations that this instance can consume from. Structure is documented below. + :param pulumi.Input[str] resource_policies: - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. :param pulumi.Input[pulumi.InputType['InstanceTemplateSchedulingArgs']] scheduling: The scheduling strategy to use. More details about this configuration option are detailed below. :param pulumi.Input[pulumi.InputType['InstanceTemplateServiceAccountArgs']] service_account: Service account to attach to the instance. Structure is documented below. @@ -1119,6 +1153,7 @@ def _internal_init(__self__, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reservation_affinity: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateReservationAffinityArgs']]] = None, + resource_policies: Optional[pulumi.Input[str]] = None, scheduling: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateSchedulingArgs']]] = None, service_account: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateServiceAccountArgs']]] = None, shielded_instance_config: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateShieldedInstanceConfigArgs']]] = None, @@ -1156,6 +1191,7 @@ def _internal_init(__self__, __props__.__dict__["project"] = project __props__.__dict__["region"] = region __props__.__dict__["reservation_affinity"] = reservation_affinity + __props__.__dict__["resource_policies"] = resource_policies __props__.__dict__["scheduling"] = scheduling __props__.__dict__["service_account"] = service_account __props__.__dict__["shielded_instance_config"] = shielded_instance_config @@ -1194,6 +1230,7 @@ def get(resource_name: str, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reservation_affinity: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateReservationAffinityArgs']]] = None, + resource_policies: Optional[pulumi.Input[str]] = None, scheduling: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateSchedulingArgs']]] = None, self_link: Optional[pulumi.Input[str]] = None, service_account: Optional[pulumi.Input[pulumi.InputType['InstanceTemplateServiceAccountArgs']]] = None, @@ -1254,6 +1291,7 @@ def get(resource_name: str, Provider if no value is given. :param pulumi.Input[pulumi.InputType['InstanceTemplateReservationAffinityArgs']] reservation_affinity: Specifies the reservations that this instance can consume from. Structure is documented below. + :param pulumi.Input[str] resource_policies: - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. :param pulumi.Input[pulumi.InputType['InstanceTemplateSchedulingArgs']] scheduling: The scheduling strategy to use. More details about this configuration option are detailed below. :param pulumi.Input[str] self_link: The URI of the created resource. @@ -1288,6 +1326,7 @@ def get(resource_name: str, __props__.__dict__["project"] = project __props__.__dict__["region"] = region __props__.__dict__["reservation_affinity"] = reservation_affinity + __props__.__dict__["resource_policies"] = resource_policies __props__.__dict__["scheduling"] = scheduling __props__.__dict__["self_link"] = self_link __props__.__dict__["service_account"] = service_account @@ -1490,6 +1529,14 @@ def reservation_affinity(self) -> pulumi.Output[Optional['outputs.InstanceTempla """ return pulumi.get(self, "reservation_affinity") + @property + @pulumi.getter(name="resourcePolicies") + def resource_policies(self) -> pulumi.Output[Optional[str]]: + """ + - A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. + """ + return pulumi.get(self, "resource_policies") + @property @pulumi.getter def scheduling(self) -> pulumi.Output['outputs.InstanceTemplateScheduling']: diff --git a/sdk/python/pulumi_gcp/compute/network.py b/sdk/python/pulumi_gcp/compute/network.py index 0c586d4618..189c7ade3f 100644 --- a/sdk/python/pulumi_gcp/compute/network.py +++ b/sdk/python/pulumi_gcp/compute/network.py @@ -41,8 +41,11 @@ def __init__(__self__, *, valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. - :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match @@ -153,8 +156,11 @@ def internal_ipv6_range(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def mtu(self) -> Optional[pulumi.Input[int]]: """ - Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. """ return pulumi.get(self, "mtu") @@ -245,8 +251,11 @@ def __init__(__self__, *, valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. - :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match @@ -375,8 +384,11 @@ def internal_ipv6_range(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def mtu(self) -> Optional[pulumi.Input[int]]: """ - Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. """ return pulumi.get(self, "mtu") @@ -524,8 +536,11 @@ def __init__(__self__, valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. - :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match @@ -684,8 +699,11 @@ def get(resource_name: str, valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. - :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + :param pulumi.Input[int] mtu: Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match @@ -784,8 +802,11 @@ def internal_ipv6_range(self) -> pulumi.Output[str]: @pulumi.getter def mtu(self) -> pulumi.Output[int]: """ - Maximum Transmission Unit in bytes. The minimum value for this field is 1460 - and the maximum value is 1500 bytes. + Maximum Transmission Unit in bytes. The default value is 1460 bytes. + The minimum value for this field is 1300 and the maximum value is 8896 bytes (jumbo frames). + Note that packets larger than 1500 bytes (standard Ethernet) can be subject to TCP-MSS clamping or dropped + with an ICMP `Fragmentation-Needed` message if the packets are routed to the Internet or other VPCs + with varying MTUs. """ return pulumi.get(self, "mtu") diff --git a/sdk/python/pulumi_gcp/compute/outputs.py b/sdk/python/pulumi_gcp/compute/outputs.py index b16ee34c22..2ee6ddcf9b 100644 --- a/sdk/python/pulumi_gcp/compute/outputs.py +++ b/sdk/python/pulumi_gcp/compute/outputs.py @@ -127,6 +127,7 @@ 'InstanceFromTemplateShieldedInstanceConfig', 'InstanceGroupManagerAllInstancesConfig', 'InstanceGroupManagerAutoHealingPolicies', + 'InstanceGroupManagerInstanceLifecyclePolicy', 'InstanceGroupManagerNamedPort', 'InstanceGroupManagerStatefulDisk', 'InstanceGroupManagerStatefulExternalIp', @@ -243,6 +244,7 @@ 'RegionHealthCheckTcpHealthCheck', 'RegionInstanceGroupManagerAllInstancesConfig', 'RegionInstanceGroupManagerAutoHealingPolicies', + 'RegionInstanceGroupManagerInstanceLifecyclePolicy', 'RegionInstanceGroupManagerNamedPort', 'RegionInstanceGroupManagerStatefulDisk', 'RegionInstanceGroupManagerStatefulExternalIp', @@ -521,6 +523,7 @@ 'GetInstanceConfidentialInstanceConfigResult', 'GetInstanceGroupManagerAllInstancesConfigResult', 'GetInstanceGroupManagerAutoHealingPolicyResult', + 'GetInstanceGroupManagerInstanceLifecyclePolicyResult', 'GetInstanceGroupManagerNamedPortResult', 'GetInstanceGroupManagerStatefulDiskResult', 'GetInstanceGroupManagerStatefulExternalIpResult', @@ -8316,6 +8319,42 @@ def initial_delay_sec(self) -> int: return pulumi.get(self, "initial_delay_sec") +@pulumi.output_type +class InstanceGroupManagerInstanceLifecyclePolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "forceUpdateOnRepair": + suggest = "force_update_on_repair" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InstanceGroupManagerInstanceLifecyclePolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InstanceGroupManagerInstanceLifecyclePolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InstanceGroupManagerInstanceLifecyclePolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + force_update_on_repair: Optional[str] = None): + """ + :param str force_update_on_repair: ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + """ + if force_update_on_repair is not None: + pulumi.set(__self__, "force_update_on_repair", force_update_on_repair) + + @property + @pulumi.getter(name="forceUpdateOnRepair") + def force_update_on_repair(self) -> Optional[str]: + """ + ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type. + """ + return pulumi.get(self, "force_update_on_repair") + + @pulumi.output_type class InstanceGroupManagerNamedPort(dict): def __init__(__self__, *, @@ -16217,6 +16256,44 @@ def initial_delay_sec(self) -> int: return pulumi.get(self, "initial_delay_sec") +@pulumi.output_type +class RegionInstanceGroupManagerInstanceLifecyclePolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "forceUpdateOnRepair": + suggest = "force_update_on_repair" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RegionInstanceGroupManagerInstanceLifecyclePolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RegionInstanceGroupManagerInstanceLifecyclePolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RegionInstanceGroupManagerInstanceLifecyclePolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + force_update_on_repair: Optional[str] = None): + """ + :param str force_update_on_repair: ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + - - - + """ + if force_update_on_repair is not None: + pulumi.set(__self__, "force_update_on_repair", force_update_on_repair) + + @property + @pulumi.getter(name="forceUpdateOnRepair") + def force_update_on_repair(self) -> Optional[str]: + """ + ), Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type. + - - - + """ + return pulumi.get(self, "force_update_on_repair") + + @pulumi.output_type class RegionInstanceGroupManagerNamedPort(dict): def __init__(__self__, *, @@ -34348,6 +34425,18 @@ def initial_delay_sec(self) -> int: return pulumi.get(self, "initial_delay_sec") +@pulumi.output_type +class GetInstanceGroupManagerInstanceLifecyclePolicyResult(dict): + def __init__(__self__, *, + force_update_on_repair: str): + pulumi.set(__self__, "force_update_on_repair", force_update_on_repair) + + @property + @pulumi.getter(name="forceUpdateOnRepair") + def force_update_on_repair(self) -> str: + return pulumi.get(self, "force_update_on_repair") + + @pulumi.output_type class GetInstanceGroupManagerNamedPortResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py index 94e05007fb..6c88acdd85 100644 --- a/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py +++ b/sdk/python/pulumi_gcp/compute/region_instance_group_manager.py @@ -23,6 +23,7 @@ def __init__(__self__, *, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_lifecycle_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerNamedPortArgs']]]] = None, @@ -58,6 +59,7 @@ def __init__(__self__, *, :param pulumi.Input[str] distribution_policy_target_shape: The shape to which the group converges either proactively or on resize events (depending on the value set in update_policy.0.instance_redistribution_type). For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/regional-mig-distribution-shape). :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). + :param pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -102,6 +104,8 @@ def __init__(__self__, *, pulumi.set(__self__, "distribution_policy_target_shape", distribution_policy_target_shape) if distribution_policy_zones is not None: pulumi.set(__self__, "distribution_policy_zones", distribution_policy_zones) + if instance_lifecycle_policy is not None: + pulumi.set(__self__, "instance_lifecycle_policy", instance_lifecycle_policy) if list_managed_instances_results is not None: pulumi.set(__self__, "list_managed_instances_results", list_managed_instances_results) if name is not None: @@ -226,6 +230,18 @@ def distribution_policy_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Inp def distribution_policy_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "distribution_policy_zones", value) + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + + @instance_lifecycle_policy.setter + def instance_lifecycle_policy(self, value: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]): + pulumi.set(self, "instance_lifecycle_policy", value) + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> Optional[pulumi.Input[str]]: @@ -412,6 +428,7 @@ def __init__(__self__, *, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, fingerprint: Optional[pulumi.Input[str]] = None, instance_group: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerNamedPortArgs']]]] = None, @@ -449,6 +466,7 @@ def __init__(__self__, *, group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. + :param pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs'] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -502,6 +520,8 @@ def __init__(__self__, *, pulumi.set(__self__, "fingerprint", fingerprint) if instance_group is not None: pulumi.set(__self__, "instance_group", instance_group) + if instance_lifecycle_policy is not None: + pulumi.set(__self__, "instance_lifecycle_policy", instance_lifecycle_policy) if list_managed_instances_results is not None: pulumi.set(__self__, "list_managed_instances_results", list_managed_instances_results) if name is not None: @@ -642,6 +662,18 @@ def instance_group(self) -> Optional[pulumi.Input[str]]: def instance_group(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "instance_group", value) + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + + @instance_lifecycle_policy.setter + def instance_lifecycle_policy(self, value: Optional[pulumi.Input['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]): + pulumi.set(self, "instance_lifecycle_policy", value) + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> Optional[pulumi.Input[str]]: @@ -866,6 +898,7 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerNamedPortArgs']]]]] = None, @@ -988,6 +1021,7 @@ def __init__(__self__, :param pulumi.Input[str] distribution_policy_target_shape: The shape to which the group converges either proactively or on resize events (depending on the value set in update_policy.0.instance_redistribution_type). For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/regional-mig-distribution-shape). :param pulumi.Input[Sequence[pulumi.Input[str]]] distribution_policy_zones: The distribution policy for this managed instance group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). + :param pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -1138,6 +1172,7 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, distribution_policy_target_shape: Optional[pulumi.Input[str]] = None, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerNamedPortArgs']]]]] = None, @@ -1169,6 +1204,7 @@ def _internal_init(__self__, __props__.__dict__["description"] = description __props__.__dict__["distribution_policy_target_shape"] = distribution_policy_target_shape __props__.__dict__["distribution_policy_zones"] = distribution_policy_zones + __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results __props__.__dict__["name"] = name __props__.__dict__["named_ports"] = named_ports @@ -1207,6 +1243,7 @@ def get(resource_name: str, distribution_policy_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, fingerprint: Optional[pulumi.Input[str]] = None, instance_group: Optional[pulumi.Input[str]] = None, + instance_lifecycle_policy: Optional[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']]] = None, list_managed_instances_results: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerNamedPortArgs']]]]] = None, @@ -1249,6 +1286,7 @@ def get(resource_name: str, group. You can specify one or more values. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups#selectingzones). :param pulumi.Input[str] fingerprint: The fingerprint of the instance group manager. :param pulumi.Input[str] instance_group: The full URL of the instance group created by the manager. + :param pulumi.Input[pulumi.InputType['RegionInstanceGroupManagerInstanceLifecyclePolicyArgs']] instance_lifecycle_policy: The instance lifecycle policy for this managed instance group. :param pulumi.Input[str] list_managed_instances_results: Pagination behavior of the `listManagedInstances` API method for this managed instance group. Valid values are: `PAGELESS`, `PAGINATED`. If `PAGELESS` (default), Pagination is disabled for the group's `listManagedInstances` API method. @@ -1298,6 +1336,7 @@ def get(resource_name: str, __props__.__dict__["distribution_policy_zones"] = distribution_policy_zones __props__.__dict__["fingerprint"] = fingerprint __props__.__dict__["instance_group"] = instance_group + __props__.__dict__["instance_lifecycle_policy"] = instance_lifecycle_policy __props__.__dict__["list_managed_instances_results"] = list_managed_instances_results __props__.__dict__["name"] = name __props__.__dict__["named_ports"] = named_ports @@ -1391,6 +1430,14 @@ def instance_group(self) -> pulumi.Output[str]: """ return pulumi.get(self, "instance_group") + @property + @pulumi.getter(name="instanceLifecyclePolicy") + def instance_lifecycle_policy(self) -> pulumi.Output['outputs.RegionInstanceGroupManagerInstanceLifecyclePolicy']: + """ + The instance lifecycle policy for this managed instance group. + """ + return pulumi.get(self, "instance_lifecycle_policy") + @property @pulumi.getter(name="listManagedInstancesResults") def list_managed_instances_results(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py b/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py index e3faf92f6b..0321456e37 100644 --- a/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py +++ b/sdk/python/pulumi_gcp/compute/region_target_tcp_proxy.py @@ -360,6 +360,16 @@ def __init__(__self__, region: Optional[pulumi.Input[str]] = None, __props__=None): """ + Represents a RegionTargetTcpProxy resource, which is used by one or more + forwarding rules to route incoming TCP requests to a regional TCP proxy load + balancer. + + To get more information about RegionTargetTcpProxy, see: + + * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) + * How-to Guides + * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) + ## Example Usage ## Import @@ -411,6 +421,16 @@ def __init__(__self__, args: RegionTargetTcpProxyArgs, opts: Optional[pulumi.ResourceOptions] = None): """ + Represents a RegionTargetTcpProxy resource, which is used by one or more + forwarding rules to route incoming TCP requests to a regional TCP proxy load + balancer. + + To get more information about RegionTargetTcpProxy, see: + + * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/regionTargetTcpProxies) + * How-to Guides + * [Official Documentation](https://cloud.google.com/load-balancing/docs/tcp/internal-proxy) + ## Example Usage ## Import diff --git a/sdk/python/pulumi_gcp/datafusion/instance.py b/sdk/python/pulumi_gcp/datafusion/instance.py index e4c39eb48a..f7c7381cb9 100644 --- a/sdk/python/pulumi_gcp/datafusion/instance.py +++ b/sdk/python/pulumi_gcp/datafusion/instance.py @@ -888,9 +888,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -923,10 +920,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -957,9 +951,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` @@ -1072,9 +1063,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -1107,10 +1095,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -1141,9 +1126,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` diff --git a/sdk/python/pulumi_gcp/datastream/_inputs.py b/sdk/python/pulumi_gcp/datastream/_inputs.py index 941ac73beb..2552f885ef 100644 --- a/sdk/python/pulumi_gcp/datastream/_inputs.py +++ b/sdk/python/pulumi_gcp/datastream/_inputs.py @@ -25,6 +25,14 @@ 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs', 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs', 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs', + 'StreamBackfillAllOracleExcludedObjectsArgs', + 'StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs', + 'StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs', + 'StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs', + 'StreamBackfillAllPostgresqlExcludedObjectsArgs', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs', 'StreamBackfillNoneArgs', 'StreamDestinationConfigArgs', 'StreamDestinationConfigBigqueryDestinationConfigArgs', @@ -44,6 +52,26 @@ 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs', 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs', 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs', + 'StreamSourceConfigOracleSourceConfigArgs', + 'StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsArgs', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsArgs', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs', + 'StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs', + 'StreamSourceConfigPostgresqlSourceConfigArgs', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs', ] @pulumi.input_type @@ -677,13 +705,23 @@ def vpc(self, value: pulumi.Input[str]): @pulumi.input_type class StreamBackfillAllArgs: def __init__(__self__, *, - mysql_excluded_objects: Optional[pulumi.Input['StreamBackfillAllMysqlExcludedObjectsArgs']] = None): + mysql_excluded_objects: Optional[pulumi.Input['StreamBackfillAllMysqlExcludedObjectsArgs']] = None, + oracle_excluded_objects: Optional[pulumi.Input['StreamBackfillAllOracleExcludedObjectsArgs']] = None, + postgresql_excluded_objects: Optional[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsArgs']] = None): """ :param pulumi.Input['StreamBackfillAllMysqlExcludedObjectsArgs'] mysql_excluded_objects: MySQL data source objects to avoid backfilling. Structure is documented below. + :param pulumi.Input['StreamBackfillAllOracleExcludedObjectsArgs'] oracle_excluded_objects: PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + :param pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsArgs'] postgresql_excluded_objects: PostgreSQL data source objects to avoid backfilling. + Structure is documented below. """ if mysql_excluded_objects is not None: pulumi.set(__self__, "mysql_excluded_objects", mysql_excluded_objects) + if oracle_excluded_objects is not None: + pulumi.set(__self__, "oracle_excluded_objects", oracle_excluded_objects) + if postgresql_excluded_objects is not None: + pulumi.set(__self__, "postgresql_excluded_objects", postgresql_excluded_objects) @property @pulumi.getter(name="mysqlExcludedObjects") @@ -698,6 +736,32 @@ def mysql_excluded_objects(self) -> Optional[pulumi.Input['StreamBackfillAllMysq def mysql_excluded_objects(self, value: Optional[pulumi.Input['StreamBackfillAllMysqlExcludedObjectsArgs']]): pulumi.set(self, "mysql_excluded_objects", value) + @property + @pulumi.getter(name="oracleExcludedObjects") + def oracle_excluded_objects(self) -> Optional[pulumi.Input['StreamBackfillAllOracleExcludedObjectsArgs']]: + """ + PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + """ + return pulumi.get(self, "oracle_excluded_objects") + + @oracle_excluded_objects.setter + def oracle_excluded_objects(self, value: Optional[pulumi.Input['StreamBackfillAllOracleExcludedObjectsArgs']]): + pulumi.set(self, "oracle_excluded_objects", value) + + @property + @pulumi.getter(name="postgresqlExcludedObjects") + def postgresql_excluded_objects(self) -> Optional[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsArgs']]: + """ + PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + """ + return pulumi.get(self, "postgresql_excluded_objects") + + @postgresql_excluded_objects.setter + def postgresql_excluded_objects(self, value: Optional[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsArgs']]): + pulumi.set(self, "postgresql_excluded_objects", value) + @pulumi.input_type class StreamBackfillAllMysqlExcludedObjectsArgs: @@ -925,561 +989,2278 @@ def primary_key(self, value: Optional[pulumi.Input[bool]]): @pulumi.input_type -class StreamBackfillNoneArgs: - def __init__(__self__): - pass - - -@pulumi.input_type -class StreamDestinationConfigArgs: +class StreamBackfillAllOracleExcludedObjectsArgs: def __init__(__self__, *, - destination_connection_profile: pulumi.Input[str], - bigquery_destination_config: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']] = None, - gcs_destination_config: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']] = None): + oracle_schemas: pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs']]]): """ - :param pulumi.Input[str] destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs'] bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. - Structure is documented below. - :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs'] gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs']]] oracle_schemas: Oracle schemas/databases in the database server Structure is documented below. """ - pulumi.set(__self__, "destination_connection_profile", destination_connection_profile) - if bigquery_destination_config is not None: - pulumi.set(__self__, "bigquery_destination_config", bigquery_destination_config) - if gcs_destination_config is not None: - pulumi.set(__self__, "gcs_destination_config", gcs_destination_config) + pulumi.set(__self__, "oracle_schemas", oracle_schemas) @property - @pulumi.getter(name="destinationConnectionProfile") - def destination_connection_profile(self) -> pulumi.Input[str]: + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs']]]: """ - Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Oracle schemas/databases in the database server + Structure is documented below. """ - return pulumi.get(self, "destination_connection_profile") + return pulumi.get(self, "oracle_schemas") - @destination_connection_profile.setter - def destination_connection_profile(self, value: pulumi.Input[str]): - pulumi.set(self, "destination_connection_profile", value) + @oracle_schemas.setter + def oracle_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs']]]): + pulumi.set(self, "oracle_schemas", value) + + +@pulumi.input_type +class StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs: + def __init__(__self__, *, + schema: pulumi.Input[str], + oracle_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs']]]] = None): + """ + :param pulumi.Input[str] schema: Schema name. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs']]] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) @property - @pulumi.getter(name="bigqueryDestinationConfig") - def bigquery_destination_config(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']]: + @pulumi.getter + def schema(self) -> pulumi.Input[str]: """ - A configuration for how data should be loaded to Cloud Storage. - Structure is documented below. + Schema name. """ - return pulumi.get(self, "bigquery_destination_config") + return pulumi.get(self, "schema") - @bigquery_destination_config.setter - def bigquery_destination_config(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']]): - pulumi.set(self, "bigquery_destination_config", value) + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) @property - @pulumi.getter(name="gcsDestinationConfig") - def gcs_destination_config(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']]: + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs']]]]: """ - A configuration for how data should be loaded to Cloud Storage. + Tables in the database. Structure is documented below. """ - return pulumi.get(self, "gcs_destination_config") + return pulumi.get(self, "oracle_tables") - @gcs_destination_config.setter - def gcs_destination_config(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']]): - pulumi.set(self, "gcs_destination_config", value) + @oracle_tables.setter + def oracle_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs']]]]): + pulumi.set(self, "oracle_tables", value) @pulumi.input_type -class StreamDestinationConfigBigqueryDestinationConfigArgs: +class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs: def __init__(__self__, *, - data_freshness: Optional[pulumi.Input[str]] = None, - single_target_dataset: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']] = None, - source_hierarchy_datasets: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']] = None): + table: pulumi.Input[str], + oracle_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs']]]] = None): """ - :param pulumi.Input[str] data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. - Editing this field will only affect new tables created in the future, but existing tables - will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs'] single_target_dataset: A single target dataset to which all data will be streamed. - Structure is documented below. - :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs'] source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs']]] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - if data_freshness is not None: - pulumi.set(__self__, "data_freshness", data_freshness) - if single_target_dataset is not None: - pulumi.set(__self__, "single_target_dataset", single_target_dataset) - if source_hierarchy_datasets is not None: - pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) - - @property - @pulumi.getter(name="dataFreshness") - def data_freshness(self) -> Optional[pulumi.Input[str]]: - """ - The guaranteed data freshness (in seconds) when querying tables created by the stream. - Editing this field will only affect new tables created in the future, but existing tables - will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - """ - return pulumi.get(self, "data_freshness") - - @data_freshness.setter - def data_freshness(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "data_freshness", value) + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) @property - @pulumi.getter(name="singleTargetDataset") - def single_target_dataset(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']]: + @pulumi.getter + def table(self) -> pulumi.Input[str]: """ - A single target dataset to which all data will be streamed. - Structure is documented below. + Table name. """ - return pulumi.get(self, "single_target_dataset") + return pulumi.get(self, "table") - @single_target_dataset.setter - def single_target_dataset(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']]): - pulumi.set(self, "single_target_dataset", value) + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) @property - @pulumi.getter(name="sourceHierarchyDatasets") - def source_hierarchy_datasets(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']]: + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs']]]]: """ - Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "source_hierarchy_datasets") + return pulumi.get(self, "oracle_columns") - @source_hierarchy_datasets.setter - def source_hierarchy_datasets(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']]): - pulumi.set(self, "source_hierarchy_datasets", value) + @oracle_columns.setter + def oracle_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs']]]]): + pulumi.set(self, "oracle_columns", value) @pulumi.input_type -class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs: +class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs: def __init__(__self__, *, - dataset_id: pulumi.Input[str]): + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[str] dataset_id: Dataset ID in the format projects/{project}/datasets/{dataset_id} + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param pulumi.Input[str] encoding: Column encoding. + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. """ - pulumi.set(__self__, "dataset_id", dataset_id) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property - @pulumi.getter(name="datasetId") - def dataset_id(self) -> pulumi.Input[str]: + @pulumi.getter + def column(self) -> Optional[pulumi.Input[str]]: """ - Dataset ID in the format projects/{project}/datasets/{dataset_id} + Column name. """ - return pulumi.get(self, "dataset_id") - - @dataset_id.setter - def dataset_id(self, value: pulumi.Input[str]): - pulumi.set(self, "dataset_id", value) + return pulumi.get(self, "column") + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) -@pulumi.input_type -class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs: - def __init__(__self__, *, - dataset_template: pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']): + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: """ - :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs'] dataset_template: Dataset template used for dynamic dataset creation. - Structure is documented below. + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html """ - pulumi.set(__self__, "dataset_template", dataset_template) + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) @property - @pulumi.getter(name="datasetTemplate") - def dataset_template(self) -> pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']: + @pulumi.getter + def encoding(self) -> Optional[pulumi.Input[str]]: """ - Dataset template used for dynamic dataset creation. - Structure is documented below. + Column encoding. """ - return pulumi.get(self, "dataset_template") - - @dataset_template.setter - def dataset_template(self, value: pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']): - pulumi.set(self, "dataset_template", value) + return pulumi.get(self, "encoding") + @encoding.setter + def encoding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "encoding", value) -@pulumi.input_type -class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs: - def __init__(__self__, *, - location: pulumi.Input[str], - dataset_id_prefix: Optional[pulumi.Input[str]] = None, - kms_key_name: Optional[pulumi.Input[str]] = None): + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: """ - :param pulumi.Input[str] location: The geographic location where the dataset should reside. - See https://cloud.google.com/bigquery/docs/locations for supported locations. - :param pulumi.Input[str] dataset_id_prefix: If supplied, every created dataset will have its name prefixed by the provided value. - The prefix and name will be separated by an underscore. i.e. _. - :param pulumi.Input[str] kms_key_name: Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - table. The BigQuery Service Account associated with your project requires access to this - encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + Column length. """ - pulumi.set(__self__, "location", location) - if dataset_id_prefix is not None: - pulumi.set(__self__, "dataset_id_prefix", dataset_id_prefix) - if kms_key_name is not None: - pulumi.set(__self__, "kms_key_name", kms_key_name) + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) @property @pulumi.getter - def location(self) -> pulumi.Input[str]: + def nullable(self) -> Optional[pulumi.Input[bool]]: """ - The geographic location where the dataset should reside. - See https://cloud.google.com/bigquery/docs/locations for supported locations. + Whether or not the column can accept a null value. """ - return pulumi.get(self, "location") + return pulumi.get(self, "nullable") - @location.setter - def location(self, value: pulumi.Input[str]): - pulumi.set(self, "location", value) + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) @property - @pulumi.getter(name="datasetIdPrefix") - def dataset_id_prefix(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: """ - If supplied, every created dataset will have its name prefixed by the provided value. - The prefix and name will be separated by an underscore. i.e. _. + The ordinal position of the column in the table. """ - return pulumi.get(self, "dataset_id_prefix") + return pulumi.get(self, "ordinal_position") - @dataset_id_prefix.setter - def dataset_id_prefix(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "dataset_id_prefix", value) + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) @property - @pulumi.getter(name="kmsKeyName") - def kms_key_name(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: """ - Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - table. The BigQuery Service Account associated with your project requires access to this - encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + Column precision. """ - return pulumi.get(self, "kms_key_name") - - @kms_key_name.setter - def kms_key_name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "kms_key_name", value) + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) + + @property + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) @pulumi.input_type -class StreamDestinationConfigGcsDestinationConfigArgs: +class StreamBackfillAllPostgresqlExcludedObjectsArgs: def __init__(__self__, *, - avro_file_format: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']] = None, - file_rotation_interval: Optional[pulumi.Input[str]] = None, - file_rotation_mb: Optional[pulumi.Input[int]] = None, - json_file_format: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']] = None, - path: Optional[pulumi.Input[str]] = None): + postgresql_schemas: pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs']]]): """ - :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs'] avro_file_format: AVRO file format configuration. - :param pulumi.Input[str] file_rotation_interval: The maximum duration for which new events are added before a file is closed and a new file is created. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - :param pulumi.Input[int] file_rotation_mb: The maximum file size to be saved in the bucket. - :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs'] json_file_format: JSON file format configuration. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs']]] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. - :param pulumi.Input[str] path: Path inside the Cloud Storage bucket to write data to. """ - if avro_file_format is not None: - pulumi.set(__self__, "avro_file_format", avro_file_format) - if file_rotation_interval is not None: - pulumi.set(__self__, "file_rotation_interval", file_rotation_interval) - if file_rotation_mb is not None: - pulumi.set(__self__, "file_rotation_mb", file_rotation_mb) - if json_file_format is not None: - pulumi.set(__self__, "json_file_format", json_file_format) - if path is not None: - pulumi.set(__self__, "path", path) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="avroFileFormat") - def avro_file_format(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']]: + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs']]]: """ - AVRO file format configuration. + PostgreSQL schemas on the server + Structure is documented below. """ - return pulumi.get(self, "avro_file_format") + return pulumi.get(self, "postgresql_schemas") - @avro_file_format.setter - def avro_file_format(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']]): - pulumi.set(self, "avro_file_format", value) + @postgresql_schemas.setter + def postgresql_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs']]]): + pulumi.set(self, "postgresql_schemas", value) + + +@pulumi.input_type +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs: + def __init__(__self__, *, + schema: pulumi.Input[str], + postgresql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs']]]] = None): + """ + :param pulumi.Input[str] schema: Database name. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs']]] postgresql_tables: Tables in the schema. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property - @pulumi.getter(name="fileRotationInterval") - def file_rotation_interval(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def schema(self) -> pulumi.Input[str]: """ - The maximum duration for which new events are added before a file is closed and a new file is created. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + Database name. """ - return pulumi.get(self, "file_rotation_interval") + return pulumi.get(self, "schema") - @file_rotation_interval.setter - def file_rotation_interval(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "file_rotation_interval", value) + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) @property - @pulumi.getter(name="fileRotationMb") - def file_rotation_mb(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs']]]]: """ - The maximum file size to be saved in the bucket. + Tables in the schema. + Structure is documented below. """ - return pulumi.get(self, "file_rotation_mb") + return pulumi.get(self, "postgresql_tables") - @file_rotation_mb.setter - def file_rotation_mb(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "file_rotation_mb", value) + @postgresql_tables.setter + def postgresql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs']]]]): + pulumi.set(self, "postgresql_tables", value) + + +@pulumi.input_type +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs: + def __init__(__self__, *, + table: pulumi.Input[str], + postgresql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]] = None): + """ + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property - @pulumi.getter(name="jsonFileFormat") - def json_file_format(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']]: + @pulumi.getter + def table(self) -> pulumi.Input[str]: """ - JSON file format configuration. + Table name. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]: + """ + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "json_file_format") + return pulumi.get(self, "postgresql_columns") - @json_file_format.setter - def json_file_format(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']]): - pulumi.set(self, "json_file_format", value) + @postgresql_columns.setter + def postgresql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]): + pulumi.set(self, "postgresql_columns", value) + + +@pulumi.input_type +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs: + def __init__(__self__, *, + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. + """ + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property @pulumi.getter - def path(self) -> Optional[pulumi.Input[str]]: + def column(self) -> Optional[pulumi.Input[str]]: """ - Path inside the Cloud Storage bucket to write data to. + Column name. """ - return pulumi.get(self, "path") + return pulumi.get(self, "column") - @path.setter - def path(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "path", value) + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: + """ + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html + """ + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) + + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) + + @property + @pulumi.getter + def nullable(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) + + @property + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) + + @property + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) @pulumi.input_type -class StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs: +class StreamBackfillNoneArgs: def __init__(__self__): pass @pulumi.input_type -class StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs: +class StreamDestinationConfigArgs: def __init__(__self__, *, - compression: Optional[pulumi.Input[str]] = None, - schema_file_format: Optional[pulumi.Input[str]] = None): + destination_connection_profile: pulumi.Input[str], + bigquery_destination_config: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']] = None, + gcs_destination_config: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']] = None): """ - :param pulumi.Input[str] compression: Compression of the loaded JSON file. - Possible values are `NO_COMPRESSION` and `GZIP`. - :param pulumi.Input[str] schema_file_format: The schema file format along JSON data files. - Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + :param pulumi.Input[str] destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs'] bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs'] gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. """ - if compression is not None: - pulumi.set(__self__, "compression", compression) - if schema_file_format is not None: - pulumi.set(__self__, "schema_file_format", schema_file_format) + pulumi.set(__self__, "destination_connection_profile", destination_connection_profile) + if bigquery_destination_config is not None: + pulumi.set(__self__, "bigquery_destination_config", bigquery_destination_config) + if gcs_destination_config is not None: + pulumi.set(__self__, "gcs_destination_config", gcs_destination_config) + + @property + @pulumi.getter(name="destinationConnectionProfile") + def destination_connection_profile(self) -> pulumi.Input[str]: + """ + Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + """ + return pulumi.get(self, "destination_connection_profile") + + @destination_connection_profile.setter + def destination_connection_profile(self, value: pulumi.Input[str]): + pulumi.set(self, "destination_connection_profile", value) + + @property + @pulumi.getter(name="bigqueryDestinationConfig") + def bigquery_destination_config(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']]: + """ + A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "bigquery_destination_config") + + @bigquery_destination_config.setter + def bigquery_destination_config(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']]): + pulumi.set(self, "bigquery_destination_config", value) + + @property + @pulumi.getter(name="gcsDestinationConfig") + def gcs_destination_config(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']]: + """ + A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "gcs_destination_config") + + @gcs_destination_config.setter + def gcs_destination_config(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']]): + pulumi.set(self, "gcs_destination_config", value) + + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigArgs: + def __init__(__self__, *, + data_freshness: Optional[pulumi.Input[str]] = None, + single_target_dataset: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']] = None, + source_hierarchy_datasets: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']] = None): + """ + :param pulumi.Input[str] data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. + Editing this field will only affect new tables created in the future, but existing tables + will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs'] single_target_dataset: A single target dataset to which all data will be streamed. + Structure is documented below. + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs'] source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Structure is documented below. + """ + if data_freshness is not None: + pulumi.set(__self__, "data_freshness", data_freshness) + if single_target_dataset is not None: + pulumi.set(__self__, "single_target_dataset", single_target_dataset) + if source_hierarchy_datasets is not None: + pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) + + @property + @pulumi.getter(name="dataFreshness") + def data_freshness(self) -> Optional[pulumi.Input[str]]: + """ + The guaranteed data freshness (in seconds) when querying tables created by the stream. + Editing this field will only affect new tables created in the future, but existing tables + will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + """ + return pulumi.get(self, "data_freshness") + + @data_freshness.setter + def data_freshness(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_freshness", value) + + @property + @pulumi.getter(name="singleTargetDataset") + def single_target_dataset(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']]: + """ + A single target dataset to which all data will be streamed. + Structure is documented below. + """ + return pulumi.get(self, "single_target_dataset") + + @single_target_dataset.setter + def single_target_dataset(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']]): + pulumi.set(self, "single_target_dataset", value) + + @property + @pulumi.getter(name="sourceHierarchyDatasets") + def source_hierarchy_datasets(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']]: + """ + Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Structure is documented below. + """ + return pulumi.get(self, "source_hierarchy_datasets") + + @source_hierarchy_datasets.setter + def source_hierarchy_datasets(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']]): + pulumi.set(self, "source_hierarchy_datasets", value) + + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs: + def __init__(__self__, *, + dataset_id: pulumi.Input[str]): + """ + :param pulumi.Input[str] dataset_id: Dataset ID in the format projects/{project}/datasets/{dataset_id} + """ + pulumi.set(__self__, "dataset_id", dataset_id) + + @property + @pulumi.getter(name="datasetId") + def dataset_id(self) -> pulumi.Input[str]: + """ + Dataset ID in the format projects/{project}/datasets/{dataset_id} + """ + return pulumi.get(self, "dataset_id") + + @dataset_id.setter + def dataset_id(self, value: pulumi.Input[str]): + pulumi.set(self, "dataset_id", value) + + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs: + def __init__(__self__, *, + dataset_template: pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']): + """ + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs'] dataset_template: Dataset template used for dynamic dataset creation. + Structure is documented below. + """ + pulumi.set(__self__, "dataset_template", dataset_template) + + @property + @pulumi.getter(name="datasetTemplate") + def dataset_template(self) -> pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']: + """ + Dataset template used for dynamic dataset creation. + Structure is documented below. + """ + return pulumi.get(self, "dataset_template") + + @dataset_template.setter + def dataset_template(self, value: pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs']): + pulumi.set(self, "dataset_template", value) + + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs: + def __init__(__self__, *, + location: pulumi.Input[str], + dataset_id_prefix: Optional[pulumi.Input[str]] = None, + kms_key_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] location: The geographic location where the dataset should reside. + See https://cloud.google.com/bigquery/docs/locations for supported locations. + :param pulumi.Input[str] dataset_id_prefix: If supplied, every created dataset will have its name prefixed by the provided value. + The prefix and name will be separated by an underscore. i.e. _. + :param pulumi.Input[str] kms_key_name: Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + table. The BigQuery Service Account associated with your project requires access to this + encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + """ + pulumi.set(__self__, "location", location) + if dataset_id_prefix is not None: + pulumi.set(__self__, "dataset_id_prefix", dataset_id_prefix) + if kms_key_name is not None: + pulumi.set(__self__, "kms_key_name", kms_key_name) + + @property + @pulumi.getter + def location(self) -> pulumi.Input[str]: + """ + The geographic location where the dataset should reside. + See https://cloud.google.com/bigquery/docs/locations for supported locations. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input[str]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="datasetIdPrefix") + def dataset_id_prefix(self) -> Optional[pulumi.Input[str]]: + """ + If supplied, every created dataset will have its name prefixed by the provided value. + The prefix and name will be separated by an underscore. i.e. _. + """ + return pulumi.get(self, "dataset_id_prefix") + + @dataset_id_prefix.setter + def dataset_id_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dataset_id_prefix", value) + + @property + @pulumi.getter(name="kmsKeyName") + def kms_key_name(self) -> Optional[pulumi.Input[str]]: + """ + Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + table. The BigQuery Service Account associated with your project requires access to this + encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + """ + return pulumi.get(self, "kms_key_name") + + @kms_key_name.setter + def kms_key_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_name", value) + + +@pulumi.input_type +class StreamDestinationConfigGcsDestinationConfigArgs: + def __init__(__self__, *, + avro_file_format: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']] = None, + file_rotation_interval: Optional[pulumi.Input[str]] = None, + file_rotation_mb: Optional[pulumi.Input[int]] = None, + json_file_format: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']] = None, + path: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs'] avro_file_format: AVRO file format configuration. + :param pulumi.Input[str] file_rotation_interval: The maximum duration for which new events are added before a file is closed and a new file is created. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param pulumi.Input[int] file_rotation_mb: The maximum file size to be saved in the bucket. + :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs'] json_file_format: JSON file format configuration. + Structure is documented below. + :param pulumi.Input[str] path: Path inside the Cloud Storage bucket to write data to. + """ + if avro_file_format is not None: + pulumi.set(__self__, "avro_file_format", avro_file_format) + if file_rotation_interval is not None: + pulumi.set(__self__, "file_rotation_interval", file_rotation_interval) + if file_rotation_mb is not None: + pulumi.set(__self__, "file_rotation_mb", file_rotation_mb) + if json_file_format is not None: + pulumi.set(__self__, "json_file_format", json_file_format) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="avroFileFormat") + def avro_file_format(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']]: + """ + AVRO file format configuration. + """ + return pulumi.get(self, "avro_file_format") + + @avro_file_format.setter + def avro_file_format(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs']]): + pulumi.set(self, "avro_file_format", value) + + @property + @pulumi.getter(name="fileRotationInterval") + def file_rotation_interval(self) -> Optional[pulumi.Input[str]]: + """ + The maximum duration for which new events are added before a file is closed and a new file is created. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + """ + return pulumi.get(self, "file_rotation_interval") + + @file_rotation_interval.setter + def file_rotation_interval(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "file_rotation_interval", value) + + @property + @pulumi.getter(name="fileRotationMb") + def file_rotation_mb(self) -> Optional[pulumi.Input[int]]: + """ + The maximum file size to be saved in the bucket. + """ + return pulumi.get(self, "file_rotation_mb") + + @file_rotation_mb.setter + def file_rotation_mb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "file_rotation_mb", value) + + @property + @pulumi.getter(name="jsonFileFormat") + def json_file_format(self) -> Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']]: + """ + JSON file format configuration. + Structure is documented below. + """ + return pulumi.get(self, "json_file_format") + + @json_file_format.setter + def json_file_format(self, value: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs']]): + pulumi.set(self, "json_file_format", value) + + @property + @pulumi.getter + def path(self) -> Optional[pulumi.Input[str]]: + """ + Path inside the Cloud Storage bucket to write data to. + """ + return pulumi.get(self, "path") + + @path.setter + def path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "path", value) + + +@pulumi.input_type +class StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs: + def __init__(__self__): + pass + + +@pulumi.input_type +class StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs: + def __init__(__self__, *, + compression: Optional[pulumi.Input[str]] = None, + schema_file_format: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] compression: Compression of the loaded JSON file. + Possible values are `NO_COMPRESSION` and `GZIP`. + :param pulumi.Input[str] schema_file_format: The schema file format along JSON data files. + Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + """ + if compression is not None: + pulumi.set(__self__, "compression", compression) + if schema_file_format is not None: + pulumi.set(__self__, "schema_file_format", schema_file_format) + + @property + @pulumi.getter + def compression(self) -> Optional[pulumi.Input[str]]: + """ + Compression of the loaded JSON file. + Possible values are `NO_COMPRESSION` and `GZIP`. + """ + return pulumi.get(self, "compression") + + @compression.setter + def compression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "compression", value) + + @property + @pulumi.getter(name="schemaFileFormat") + def schema_file_format(self) -> Optional[pulumi.Input[str]]: + """ + The schema file format along JSON data files. + Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + """ + return pulumi.get(self, "schema_file_format") + + @schema_file_format.setter + def schema_file_format(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "schema_file_format", value) + + +@pulumi.input_type +class StreamSourceConfigArgs: + def __init__(__self__, *, + source_connection_profile: pulumi.Input[str], + mysql_source_config: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs']] = None, + oracle_source_config: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigArgs']] = None, + postgresql_source_config: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigArgs']] = None): + """ + :param pulumi.Input[str] source_connection_profile: Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + :param pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs'] mysql_source_config: MySQL data source configuration. + Structure is documented below. + :param pulumi.Input['StreamSourceConfigOracleSourceConfigArgs'] oracle_source_config: MySQL data source configuration. + Structure is documented below. + :param pulumi.Input['StreamSourceConfigPostgresqlSourceConfigArgs'] postgresql_source_config: PostgreSQL data source configuration. + Structure is documented below. + """ + pulumi.set(__self__, "source_connection_profile", source_connection_profile) + if mysql_source_config is not None: + pulumi.set(__self__, "mysql_source_config", mysql_source_config) + if oracle_source_config is not None: + pulumi.set(__self__, "oracle_source_config", oracle_source_config) + if postgresql_source_config is not None: + pulumi.set(__self__, "postgresql_source_config", postgresql_source_config) + + @property + @pulumi.getter(name="sourceConnectionProfile") + def source_connection_profile(self) -> pulumi.Input[str]: + """ + Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + """ + return pulumi.get(self, "source_connection_profile") + + @source_connection_profile.setter + def source_connection_profile(self, value: pulumi.Input[str]): + pulumi.set(self, "source_connection_profile", value) + + @property + @pulumi.getter(name="mysqlSourceConfig") + def mysql_source_config(self) -> Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs']]: + """ + MySQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "mysql_source_config") + + @mysql_source_config.setter + def mysql_source_config(self, value: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs']]): + pulumi.set(self, "mysql_source_config", value) + + @property + @pulumi.getter(name="oracleSourceConfig") + def oracle_source_config(self) -> Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigArgs']]: + """ + MySQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "oracle_source_config") + + @oracle_source_config.setter + def oracle_source_config(self, value: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigArgs']]): + pulumi.set(self, "oracle_source_config", value) + + @property + @pulumi.getter(name="postgresqlSourceConfig") + def postgresql_source_config(self) -> Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigArgs']]: + """ + PostgreSQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "postgresql_source_config") + + @postgresql_source_config.setter + def postgresql_source_config(self, value: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigArgs']]): + pulumi.set(self, "postgresql_source_config", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigArgs: + def __init__(__self__, *, + exclude_objects: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']] = None, + include_objects: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']] = None, + max_concurrent_cdc_tasks: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs'] exclude_objects: MySQL objects to exclude from the stream. + Structure is documented below. + :param pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs'] include_objects: MySQL objects to retrieve from the source. + Structure is documented below. + :param pulumi.Input[int] max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + if exclude_objects is not None: + pulumi.set(__self__, "exclude_objects", exclude_objects) + if include_objects is not None: + pulumi.set(__self__, "include_objects", include_objects) + if max_concurrent_cdc_tasks is not None: + pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + + @property + @pulumi.getter(name="excludeObjects") + def exclude_objects(self) -> Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']]: + """ + MySQL objects to exclude from the stream. + Structure is documented below. + """ + return pulumi.get(self, "exclude_objects") + + @exclude_objects.setter + def exclude_objects(self, value: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']]): + pulumi.set(self, "exclude_objects", value) + + @property + @pulumi.getter(name="includeObjects") + def include_objects(self) -> Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']]: + """ + MySQL objects to retrieve from the source. + Structure is documented below. + """ + return pulumi.get(self, "include_objects") + + @include_objects.setter + def include_objects(self, value: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']]): + pulumi.set(self, "include_objects", value) + + @property + @pulumi.getter(name="maxConcurrentCdcTasks") + def max_concurrent_cdc_tasks(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_cdc_tasks") + + @max_concurrent_cdc_tasks.setter + def max_concurrent_cdc_tasks(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_concurrent_cdc_tasks", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs: + def __init__(__self__, *, + mysql_databases: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]] mysql_databases: MySQL databases on the server + Structure is documented below. + """ + pulumi.set(__self__, "mysql_databases", mysql_databases) + + @property + @pulumi.getter(name="mysqlDatabases") + def mysql_databases(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]: + """ + MySQL databases on the server + Structure is documented below. + """ + return pulumi.get(self, "mysql_databases") + + @mysql_databases.setter + def mysql_databases(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]): + pulumi.set(self, "mysql_databases", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs: + def __init__(__self__, *, + database: pulumi.Input[str], + mysql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]] = None): + """ + :param pulumi.Input[str] database: Database name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]] mysql_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "database", database) + if mysql_tables is not None: + pulumi.set(__self__, "mysql_tables", mysql_tables) + + @property + @pulumi.getter + def database(self) -> pulumi.Input[str]: + """ + Database name. + """ + return pulumi.get(self, "database") + + @database.setter + def database(self, value: pulumi.Input[str]): + pulumi.set(self, "database", value) + + @property + @pulumi.getter(name="mysqlTables") + def mysql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "mysql_tables") + + @mysql_tables.setter + def mysql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]]): + pulumi.set(self, "mysql_tables", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs: + def __init__(__self__, *, + table: pulumi.Input[str], + mysql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]] = None): + """ + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if mysql_columns is not None: + pulumi.set(__self__, "mysql_columns", mysql_columns) + + @property + @pulumi.getter + def table(self) -> pulumi.Input[str]: + """ + Table name. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="mysqlColumns") + def mysql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]: + """ + MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "mysql_columns") + + @mysql_columns.setter + def mysql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]): + pulumi.set(self, "mysql_columns", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs: + def __init__(__self__, *, + collation: Optional[pulumi.Input[str]] = None, + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] collation: Column collation. + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + """ + if collation is not None: + pulumi.set(__self__, "collation", collation) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + + @property + @pulumi.getter + def collation(self) -> Optional[pulumi.Input[str]]: + """ + Column collation. + """ + return pulumi.get(self, "collation") + + @collation.setter + def collation(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "collation", value) + + @property + @pulumi.getter + def column(self) -> Optional[pulumi.Input[str]]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: + """ + The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + """ + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) + + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) + + @property + @pulumi.getter + def nullable(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs: + def __init__(__self__, *, + mysql_databases: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]] mysql_databases: MySQL databases on the server + Structure is documented below. + """ + pulumi.set(__self__, "mysql_databases", mysql_databases) + + @property + @pulumi.getter(name="mysqlDatabases") + def mysql_databases(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]: + """ + MySQL databases on the server + Structure is documented below. + """ + return pulumi.get(self, "mysql_databases") + + @mysql_databases.setter + def mysql_databases(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]): + pulumi.set(self, "mysql_databases", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs: + def __init__(__self__, *, + database: pulumi.Input[str], + mysql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]] = None): + """ + :param pulumi.Input[str] database: Database name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]] mysql_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "database", database) + if mysql_tables is not None: + pulumi.set(__self__, "mysql_tables", mysql_tables) + + @property + @pulumi.getter + def database(self) -> pulumi.Input[str]: + """ + Database name. + """ + return pulumi.get(self, "database") + + @database.setter + def database(self, value: pulumi.Input[str]): + pulumi.set(self, "database", value) + + @property + @pulumi.getter(name="mysqlTables") + def mysql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "mysql_tables") + + @mysql_tables.setter + def mysql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]]): + pulumi.set(self, "mysql_tables", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs: + def __init__(__self__, *, + table: pulumi.Input[str], + mysql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]] = None): + """ + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if mysql_columns is not None: + pulumi.set(__self__, "mysql_columns", mysql_columns) + + @property + @pulumi.getter + def table(self) -> pulumi.Input[str]: + """ + Table name. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="mysqlColumns") + def mysql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]: + """ + MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "mysql_columns") + + @mysql_columns.setter + def mysql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]): + pulumi.set(self, "mysql_columns", value) + + +@pulumi.input_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs: + def __init__(__self__, *, + collation: Optional[pulumi.Input[str]] = None, + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] collation: Column collation. + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + """ + if collation is not None: + pulumi.set(__self__, "collation", collation) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + + @property + @pulumi.getter + def collation(self) -> Optional[pulumi.Input[str]]: + """ + Column collation. + """ + return pulumi.get(self, "collation") + + @collation.setter + def collation(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "collation", value) + + @property + @pulumi.getter + def column(self) -> Optional[pulumi.Input[str]]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: + """ + The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + """ + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) + + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) + + @property + @pulumi.getter + def nullable(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigArgs: + def __init__(__self__, *, + drop_large_objects: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs']] = None, + exclude_objects: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsArgs']] = None, + include_objects: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsArgs']] = None, + max_concurrent_backfill_tasks: Optional[pulumi.Input[int]] = None, + max_concurrent_cdc_tasks: Optional[pulumi.Input[int]] = None, + stream_large_objects: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs']] = None): + """ + :param pulumi.Input['StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs'] drop_large_objects: Configuration to drop large object values. + :param pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsArgs'] exclude_objects: Oracle objects to exclude from the stream. + Structure is documented below. + :param pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsArgs'] include_objects: Oracle objects to retrieve from the source. + Structure is documented below. + :param pulumi.Input[int] max_concurrent_backfill_tasks: Maximum number of concurrent backfill tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + :param pulumi.Input[int] max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + :param pulumi.Input['StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs'] stream_large_objects: Configuration to drop large object values. + """ + if drop_large_objects is not None: + pulumi.set(__self__, "drop_large_objects", drop_large_objects) + if exclude_objects is not None: + pulumi.set(__self__, "exclude_objects", exclude_objects) + if include_objects is not None: + pulumi.set(__self__, "include_objects", include_objects) + if max_concurrent_backfill_tasks is not None: + pulumi.set(__self__, "max_concurrent_backfill_tasks", max_concurrent_backfill_tasks) + if max_concurrent_cdc_tasks is not None: + pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + if stream_large_objects is not None: + pulumi.set(__self__, "stream_large_objects", stream_large_objects) + + @property + @pulumi.getter(name="dropLargeObjects") + def drop_large_objects(self) -> Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs']]: + """ + Configuration to drop large object values. + """ + return pulumi.get(self, "drop_large_objects") + + @drop_large_objects.setter + def drop_large_objects(self, value: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs']]): + pulumi.set(self, "drop_large_objects", value) + + @property + @pulumi.getter(name="excludeObjects") + def exclude_objects(self) -> Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsArgs']]: + """ + Oracle objects to exclude from the stream. + Structure is documented below. + """ + return pulumi.get(self, "exclude_objects") + + @exclude_objects.setter + def exclude_objects(self, value: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsArgs']]): + pulumi.set(self, "exclude_objects", value) + + @property + @pulumi.getter(name="includeObjects") + def include_objects(self) -> Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsArgs']]: + """ + Oracle objects to retrieve from the source. + Structure is documented below. + """ + return pulumi.get(self, "include_objects") + + @include_objects.setter + def include_objects(self, value: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsArgs']]): + pulumi.set(self, "include_objects", value) + + @property + @pulumi.getter(name="maxConcurrentBackfillTasks") + def max_concurrent_backfill_tasks(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of concurrent backfill tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_backfill_tasks") + + @max_concurrent_backfill_tasks.setter + def max_concurrent_backfill_tasks(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_concurrent_backfill_tasks", value) + + @property + @pulumi.getter(name="maxConcurrentCdcTasks") + def max_concurrent_cdc_tasks(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_cdc_tasks") + + @max_concurrent_cdc_tasks.setter + def max_concurrent_cdc_tasks(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_concurrent_cdc_tasks", value) + + @property + @pulumi.getter(name="streamLargeObjects") + def stream_large_objects(self) -> Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs']]: + """ + Configuration to drop large object values. + """ + return pulumi.get(self, "stream_large_objects") + + @stream_large_objects.setter + def stream_large_objects(self, value: Optional[pulumi.Input['StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs']]): + pulumi.set(self, "stream_large_objects", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs: + def __init__(__self__): + pass + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsArgs: + def __init__(__self__, *, + oracle_schemas: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs']]] oracle_schemas: Oracle schemas/databases in the database server + Structure is documented below. + """ + pulumi.set(__self__, "oracle_schemas", oracle_schemas) + + @property + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs']]]: + """ + Oracle schemas/databases in the database server + Structure is documented below. + """ + return pulumi.get(self, "oracle_schemas") + + @oracle_schemas.setter + def oracle_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs']]]): + pulumi.set(self, "oracle_schemas", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs: + def __init__(__self__, *, + schema: pulumi.Input[str], + oracle_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs']]]] = None): + """ + :param pulumi.Input[str] schema: Schema name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs']]] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) + + @property + @pulumi.getter + def schema(self) -> pulumi.Input[str]: + """ + Schema name. + """ + return pulumi.get(self, "schema") + + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) + + @property + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs']]]]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "oracle_tables") + + @oracle_tables.setter + def oracle_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs']]]]): + pulumi.set(self, "oracle_tables", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs: + def __init__(__self__, *, + table: pulumi.Input[str], + oracle_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]] = None): + """ + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs']]] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) + + @property + @pulumi.getter + def table(self) -> pulumi.Input[str]: + """ + Table name. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]]: + """ + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "oracle_columns") + + @oracle_columns.setter + def oracle_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]]): + pulumi.set(self, "oracle_columns", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs: + def __init__(__self__, *, + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param pulumi.Input[str] encoding: Column encoding. + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. + """ + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) + + @property + @pulumi.getter + def column(self) -> Optional[pulumi.Input[str]]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: + """ + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + """ + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) + + @property + @pulumi.getter + def encoding(self) -> Optional[pulumi.Input[str]]: + """ + Column encoding. + """ + return pulumi.get(self, "encoding") + + @encoding.setter + def encoding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "encoding", value) + + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) + + @property + @pulumi.getter + def nullable(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) + + @property + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) + + @property + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsArgs: + def __init__(__self__, *, + oracle_schemas: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs']]] oracle_schemas: Oracle schemas/databases in the database server + Structure is documented below. + """ + pulumi.set(__self__, "oracle_schemas", oracle_schemas) + + @property + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs']]]: + """ + Oracle schemas/databases in the database server + Structure is documented below. + """ + return pulumi.get(self, "oracle_schemas") + + @oracle_schemas.setter + def oracle_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs']]]): + pulumi.set(self, "oracle_schemas", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs: + def __init__(__self__, *, + schema: pulumi.Input[str], + oracle_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs']]]] = None): + """ + :param pulumi.Input[str] schema: Schema name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs']]] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) + + @property + @pulumi.getter + def schema(self) -> pulumi.Input[str]: + """ + Schema name. + """ + return pulumi.get(self, "schema") + + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) + + @property + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs']]]]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "oracle_tables") + + @oracle_tables.setter + def oracle_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs']]]]): + pulumi.set(self, "oracle_tables", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs: + def __init__(__self__, *, + table: pulumi.Input[str], + oracle_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]] = None): + """ + :param pulumi.Input[str] table: Table name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs']]] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) + + @property + @pulumi.getter + def table(self) -> pulumi.Input[str]: + """ + Table name. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: pulumi.Input[str]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]]: + """ + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "oracle_columns") + + @oracle_columns.setter + def oracle_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs']]]]): + pulumi.set(self, "oracle_columns", value) + + +@pulumi.input_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs: + def __init__(__self__, *, + column: Optional[pulumi.Input[str]] = None, + data_type: Optional[pulumi.Input[str]] = None, + encoding: Optional[pulumi.Input[str]] = None, + length: Optional[pulumi.Input[int]] = None, + nullable: Optional[pulumi.Input[bool]] = None, + ordinal_position: Optional[pulumi.Input[int]] = None, + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] column: Column name. + :param pulumi.Input[str] data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param pulumi.Input[str] encoding: Column encoding. + :param pulumi.Input[int] length: Column length. + :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. + :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. + :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. + """ + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) + + @property + @pulumi.getter + def column(self) -> Optional[pulumi.Input[str]]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @column.setter + def column(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "column", value) + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[pulumi.Input[str]]: + """ + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + """ + return pulumi.get(self, "data_type") + + @data_type.setter + def data_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_type", value) + + @property + @pulumi.getter + def encoding(self) -> Optional[pulumi.Input[str]]: + """ + Column encoding. + """ + return pulumi.get(self, "encoding") + + @encoding.setter + def encoding(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "encoding", value) + + @property + @pulumi.getter + def length(self) -> Optional[pulumi.Input[int]]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @length.setter + def length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "length", value) @property @pulumi.getter - def compression(self) -> Optional[pulumi.Input[str]]: + def nullable(self) -> Optional[pulumi.Input[bool]]: """ - Compression of the loaded JSON file. - Possible values are `NO_COMPRESSION` and `GZIP`. + Whether or not the column can accept a null value. """ - return pulumi.get(self, "compression") + return pulumi.get(self, "nullable") - @compression.setter - def compression(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "compression", value) + @nullable.setter + def nullable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "nullable", value) @property - @pulumi.getter(name="schemaFileFormat") - def schema_file_format(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[pulumi.Input[int]]: """ - The schema file format along JSON data files. - Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + The ordinal position of the column in the table. """ - return pulumi.get(self, "schema_file_format") - - @schema_file_format.setter - def schema_file_format(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "schema_file_format", value) + return pulumi.get(self, "ordinal_position") + @ordinal_position.setter + def ordinal_position(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "ordinal_position", value) -@pulumi.input_type -class StreamSourceConfigArgs: - def __init__(__self__, *, - mysql_source_config: pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs'], - source_connection_profile: pulumi.Input[str]): + @property + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: """ - :param pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs'] mysql_source_config: MySQL data source configuration. - Structure is documented below. - :param pulumi.Input[str] source_connection_profile: Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Column precision. """ - pulumi.set(__self__, "mysql_source_config", mysql_source_config) - pulumi.set(__self__, "source_connection_profile", source_connection_profile) + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) @property - @pulumi.getter(name="mysqlSourceConfig") - def mysql_source_config(self) -> pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs']: + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[pulumi.Input[bool]]: """ - MySQL data source configuration. - Structure is documented below. + Whether or not the column represents a primary key. """ - return pulumi.get(self, "mysql_source_config") + return pulumi.get(self, "primary_key") - @mysql_source_config.setter - def mysql_source_config(self, value: pulumi.Input['StreamSourceConfigMysqlSourceConfigArgs']): - pulumi.set(self, "mysql_source_config", value) + @primary_key.setter + def primary_key(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "primary_key", value) @property - @pulumi.getter(name="sourceConnectionProfile") - def source_connection_profile(self) -> pulumi.Input[str]: + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: """ - Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Column scale. """ - return pulumi.get(self, "source_connection_profile") + return pulumi.get(self, "scale") - @source_connection_profile.setter - def source_connection_profile(self, value: pulumi.Input[str]): - pulumi.set(self, "source_connection_profile", value) + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigArgs: +class StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs: + def __init__(__self__): + pass + + +@pulumi.input_type +class StreamSourceConfigPostgresqlSourceConfigArgs: def __init__(__self__, *, - exclude_objects: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']] = None, - include_objects: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']] = None, - max_concurrent_cdc_tasks: Optional[pulumi.Input[int]] = None): - """ - :param pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs'] exclude_objects: MySQL objects to exclude from the stream. + publication: pulumi.Input[str], + replication_slot: pulumi.Input[str], + exclude_objects: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs']] = None, + include_objects: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs']] = None, + max_concurrent_backfill_tasks: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] publication: The name of the publication that includes the set of all tables + that are defined in the stream's include_objects. + :param pulumi.Input[str] replication_slot: The name of the logical replication slot that's configured with + the pgoutput plugin. + :param pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs'] exclude_objects: PostgreSQL objects to exclude from the stream. Structure is documented below. - :param pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs'] include_objects: MySQL objects to retrieve from the source. + :param pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs'] include_objects: PostgreSQL objects to retrieve from the source. Structure is documented below. - :param pulumi.Input[int] max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. - If not set (or set to 0), the system's default value will be used. + :param pulumi.Input[int] max_concurrent_backfill_tasks: Maximum number of concurrent backfill tasks. The number should be non + negative. If not set (or set to 0), the system's default value will be used. """ + pulumi.set(__self__, "publication", publication) + pulumi.set(__self__, "replication_slot", replication_slot) if exclude_objects is not None: pulumi.set(__self__, "exclude_objects", exclude_objects) if include_objects is not None: pulumi.set(__self__, "include_objects", include_objects) - if max_concurrent_cdc_tasks is not None: - pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + if max_concurrent_backfill_tasks is not None: + pulumi.set(__self__, "max_concurrent_backfill_tasks", max_concurrent_backfill_tasks) + + @property + @pulumi.getter + def publication(self) -> pulumi.Input[str]: + """ + The name of the publication that includes the set of all tables + that are defined in the stream's include_objects. + """ + return pulumi.get(self, "publication") + + @publication.setter + def publication(self, value: pulumi.Input[str]): + pulumi.set(self, "publication", value) + + @property + @pulumi.getter(name="replicationSlot") + def replication_slot(self) -> pulumi.Input[str]: + """ + The name of the logical replication slot that's configured with + the pgoutput plugin. + """ + return pulumi.get(self, "replication_slot") + + @replication_slot.setter + def replication_slot(self, value: pulumi.Input[str]): + pulumi.set(self, "replication_slot", value) @property @pulumi.getter(name="excludeObjects") - def exclude_objects(self) -> Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']]: + def exclude_objects(self) -> Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs']]: """ - MySQL objects to exclude from the stream. + PostgreSQL objects to exclude from the stream. Structure is documented below. """ return pulumi.get(self, "exclude_objects") @exclude_objects.setter - def exclude_objects(self, value: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs']]): + def exclude_objects(self, value: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs']]): pulumi.set(self, "exclude_objects", value) @property @pulumi.getter(name="includeObjects") - def include_objects(self) -> Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']]: + def include_objects(self) -> Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs']]: """ - MySQL objects to retrieve from the source. + PostgreSQL objects to retrieve from the source. Structure is documented below. """ return pulumi.get(self, "include_objects") @include_objects.setter - def include_objects(self, value: Optional[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs']]): + def include_objects(self, value: Optional[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs']]): pulumi.set(self, "include_objects", value) @property - @pulumi.getter(name="maxConcurrentCdcTasks") - def max_concurrent_cdc_tasks(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter(name="maxConcurrentBackfillTasks") + def max_concurrent_backfill_tasks(self) -> Optional[pulumi.Input[int]]: """ - Maximum number of concurrent CDC tasks. The number should be non negative. - If not set (or set to 0), the system's default value will be used. + Maximum number of concurrent backfill tasks. The number should be non + negative. If not set (or set to 0), the system's default value will be used. """ - return pulumi.get(self, "max_concurrent_cdc_tasks") + return pulumi.get(self, "max_concurrent_backfill_tasks") - @max_concurrent_cdc_tasks.setter - def max_concurrent_cdc_tasks(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "max_concurrent_cdc_tasks", value) + @max_concurrent_backfill_tasks.setter + def max_concurrent_backfill_tasks(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_concurrent_backfill_tasks", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs: +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs: def __init__(__self__, *, - mysql_databases: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]): + postgresql_schemas: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]] mysql_databases: MySQL databases on the server + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs']]] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. """ - pulumi.set(__self__, "mysql_databases", mysql_databases) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="mysqlDatabases") - def mysql_databases(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]: + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs']]]: """ - MySQL databases on the server + PostgreSQL schemas on the server Structure is documented below. """ - return pulumi.get(self, "mysql_databases") + return pulumi.get(self, "postgresql_schemas") - @mysql_databases.setter - def mysql_databases(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs']]]): - pulumi.set(self, "mysql_databases", value) + @postgresql_schemas.setter + def postgresql_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs']]]): + pulumi.set(self, "postgresql_schemas", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs: +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs: def __init__(__self__, *, - database: pulumi.Input[str], - mysql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]] = None): + schema: pulumi.Input[str], + postgresql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]] = None): """ - :param pulumi.Input[str] database: Database name. - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]] mysql_tables: Tables in the database. + :param pulumi.Input[str] schema: Database name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs']]] postgresql_tables: Tables in the schema. Structure is documented below. """ - pulumi.set(__self__, "database", database) - if mysql_tables is not None: - pulumi.set(__self__, "mysql_tables", mysql_tables) + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property @pulumi.getter - def database(self) -> pulumi.Input[str]: + def schema(self) -> pulumi.Input[str]: """ Database name. """ - return pulumi.get(self, "database") + return pulumi.get(self, "schema") - @database.setter - def database(self, value: pulumi.Input[str]): - pulumi.set(self, "database", value) + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) @property - @pulumi.getter(name="mysqlTables") - def mysql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]]: """ - Tables in the database. + Tables in the schema. Structure is documented below. """ - return pulumi.get(self, "mysql_tables") + return pulumi.get(self, "postgresql_tables") - @mysql_tables.setter - def mysql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs']]]]): - pulumi.set(self, "mysql_tables", value) + @postgresql_tables.setter + def postgresql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]]): + pulumi.set(self, "postgresql_tables", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs: +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs: def __init__(__self__, *, table: pulumi.Input[str], - mysql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]] = None): + postgresql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]] = None): """ :param pulumi.Input[str] table: Table name. - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ pulumi.set(__self__, "table", table) - if mysql_columns is not None: - pulumi.set(__self__, "mysql_columns", mysql_columns) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property @pulumi.getter @@ -1494,41 +3275,41 @@ def table(self, value: pulumi.Input[str]): pulumi.set(self, "table", value) @property - @pulumi.getter(name="mysqlColumns") - def mysql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]: + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]: """ - MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "mysql_columns") + return pulumi.get(self, "postgresql_columns") - @mysql_columns.setter - def mysql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]): - pulumi.set(self, "mysql_columns", value) + @postgresql_columns.setter + def postgresql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]): + pulumi.set(self, "postgresql_columns", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs: +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs: def __init__(__self__, *, - collation: Optional[pulumi.Input[str]] = None, column: Optional[pulumi.Input[str]] = None, data_type: Optional[pulumi.Input[str]] = None, length: Optional[pulumi.Input[int]] = None, nullable: Optional[pulumi.Input[bool]] = None, ordinal_position: Optional[pulumi.Input[int]] = None, - primary_key: Optional[pulumi.Input[bool]] = None): + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[str] collation: Column collation. :param pulumi.Input[str] column: Column name. - :param pulumi.Input[str] data_type: The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param pulumi.Input[str] data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html :param pulumi.Input[int] length: Column length. :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. """ - if collation is not None: - pulumi.set(__self__, "collation", collation) if column is not None: pulumi.set(__self__, "column", column) if data_type is not None: @@ -1539,20 +3320,12 @@ def __init__(__self__, *, pulumi.set(__self__, "nullable", nullable) if ordinal_position is not None: pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) if primary_key is not None: pulumi.set(__self__, "primary_key", primary_key) - - @property - @pulumi.getter - def collation(self) -> Optional[pulumi.Input[str]]: - """ - Column collation. - """ - return pulumi.get(self, "collation") - - @collation.setter - def collation(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "collation", value) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property @pulumi.getter @@ -1570,8 +3343,8 @@ def column(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dataType") def data_type(self) -> Optional[pulumi.Input[str]]: """ - The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html """ return pulumi.get(self, "data_type") @@ -1615,6 +3388,18 @@ def ordinal_position(self) -> Optional[pulumi.Input[int]]: def ordinal_position(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "ordinal_position", value) + @property + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) + @property @pulumi.getter(name="primaryKey") def primary_key(self) -> Optional[pulumi.Input[bool]]: @@ -1627,84 +3412,96 @@ def primary_key(self) -> Optional[pulumi.Input[bool]]: def primary_key(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "primary_key", value) + @property + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) + @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs: +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs: def __init__(__self__, *, - mysql_databases: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]): + postgresql_schemas: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]] mysql_databases: MySQL databases on the server + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs']]] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. """ - pulumi.set(__self__, "mysql_databases", mysql_databases) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="mysqlDatabases") - def mysql_databases(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]: + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs']]]: """ - MySQL databases on the server + PostgreSQL schemas on the server Structure is documented below. """ - return pulumi.get(self, "mysql_databases") + return pulumi.get(self, "postgresql_schemas") - @mysql_databases.setter - def mysql_databases(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs']]]): - pulumi.set(self, "mysql_databases", value) + @postgresql_schemas.setter + def postgresql_schemas(self, value: pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs']]]): + pulumi.set(self, "postgresql_schemas", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs: +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs: def __init__(__self__, *, - database: pulumi.Input[str], - mysql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]] = None): + schema: pulumi.Input[str], + postgresql_tables: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]] = None): """ - :param pulumi.Input[str] database: Database name. - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]] mysql_tables: Tables in the database. + :param pulumi.Input[str] schema: Database name. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs']]] postgresql_tables: Tables in the schema. Structure is documented below. """ - pulumi.set(__self__, "database", database) - if mysql_tables is not None: - pulumi.set(__self__, "mysql_tables", mysql_tables) + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property @pulumi.getter - def database(self) -> pulumi.Input[str]: + def schema(self) -> pulumi.Input[str]: """ Database name. """ - return pulumi.get(self, "database") + return pulumi.get(self, "schema") - @database.setter - def database(self, value: pulumi.Input[str]): - pulumi.set(self, "database", value) + @schema.setter + def schema(self, value: pulumi.Input[str]): + pulumi.set(self, "schema", value) @property - @pulumi.getter(name="mysqlTables") - def mysql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]]: """ - Tables in the database. + Tables in the schema. Structure is documented below. """ - return pulumi.get(self, "mysql_tables") + return pulumi.get(self, "postgresql_tables") - @mysql_tables.setter - def mysql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs']]]]): - pulumi.set(self, "mysql_tables", value) + @postgresql_tables.setter + def postgresql_tables(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs']]]]): + pulumi.set(self, "postgresql_tables", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs: +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs: def __init__(__self__, *, table: pulumi.Input[str], - mysql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]] = None): + postgresql_columns: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]] = None): """ :param pulumi.Input[str] table: Table name. - :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + :param pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ pulumi.set(__self__, "table", table) - if mysql_columns is not None: - pulumi.set(__self__, "mysql_columns", mysql_columns) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property @pulumi.getter @@ -1719,41 +3516,41 @@ def table(self, value: pulumi.Input[str]): pulumi.set(self, "table", value) @property - @pulumi.getter(name="mysqlColumns") - def mysql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]: + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]: """ - MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "mysql_columns") + return pulumi.get(self, "postgresql_columns") - @mysql_columns.setter - def mysql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs']]]]): - pulumi.set(self, "mysql_columns", value) + @postgresql_columns.setter + def postgresql_columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs']]]]): + pulumi.set(self, "postgresql_columns", value) @pulumi.input_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs: +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs: def __init__(__self__, *, - collation: Optional[pulumi.Input[str]] = None, column: Optional[pulumi.Input[str]] = None, data_type: Optional[pulumi.Input[str]] = None, length: Optional[pulumi.Input[int]] = None, nullable: Optional[pulumi.Input[bool]] = None, ordinal_position: Optional[pulumi.Input[int]] = None, - primary_key: Optional[pulumi.Input[bool]] = None): + precision: Optional[pulumi.Input[int]] = None, + primary_key: Optional[pulumi.Input[bool]] = None, + scale: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[str] collation: Column collation. :param pulumi.Input[str] column: Column name. - :param pulumi.Input[str] data_type: The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param pulumi.Input[str] data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html :param pulumi.Input[int] length: Column length. :param pulumi.Input[bool] nullable: Whether or not the column can accept a null value. :param pulumi.Input[int] ordinal_position: The ordinal position of the column in the table. + :param pulumi.Input[int] precision: Column precision. :param pulumi.Input[bool] primary_key: Whether or not the column represents a primary key. + :param pulumi.Input[int] scale: Column scale. """ - if collation is not None: - pulumi.set(__self__, "collation", collation) if column is not None: pulumi.set(__self__, "column", column) if data_type is not None: @@ -1764,20 +3561,12 @@ def __init__(__self__, *, pulumi.set(__self__, "nullable", nullable) if ordinal_position is not None: pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) if primary_key is not None: pulumi.set(__self__, "primary_key", primary_key) - - @property - @pulumi.getter - def collation(self) -> Optional[pulumi.Input[str]]: - """ - Column collation. - """ - return pulumi.get(self, "collation") - - @collation.setter - def collation(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "collation", value) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property @pulumi.getter @@ -1795,8 +3584,8 @@ def column(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dataType") def data_type(self) -> Optional[pulumi.Input[str]]: """ - The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html """ return pulumi.get(self, "data_type") @@ -1840,6 +3629,18 @@ def ordinal_position(self) -> Optional[pulumi.Input[int]]: def ordinal_position(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "ordinal_position", value) + @property + @pulumi.getter + def precision(self) -> Optional[pulumi.Input[int]]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @precision.setter + def precision(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "precision", value) + @property @pulumi.getter(name="primaryKey") def primary_key(self) -> Optional[pulumi.Input[bool]]: @@ -1852,4 +3653,16 @@ def primary_key(self) -> Optional[pulumi.Input[bool]]: def primary_key(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "primary_key", value) + @property + @pulumi.getter + def scale(self) -> Optional[pulumi.Input[int]]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + @scale.setter + def scale(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale", value) + diff --git a/sdk/python/pulumi_gcp/datastream/outputs.py b/sdk/python/pulumi_gcp/datastream/outputs.py index b1ee032d5a..34f2e94256 100644 --- a/sdk/python/pulumi_gcp/datastream/outputs.py +++ b/sdk/python/pulumi_gcp/datastream/outputs.py @@ -26,6 +26,14 @@ 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabase', 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTable', 'StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumn', + 'StreamBackfillAllOracleExcludedObjects', + 'StreamBackfillAllOracleExcludedObjectsOracleSchema', + 'StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable', + 'StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn', + 'StreamBackfillAllPostgresqlExcludedObjects', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable', + 'StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn', 'StreamBackfillNone', 'StreamDestinationConfig', 'StreamDestinationConfigBigqueryDestinationConfig', @@ -45,6 +53,26 @@ 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase', 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable', 'StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn', + 'StreamSourceConfigOracleSourceConfig', + 'StreamSourceConfigOracleSourceConfigDropLargeObjects', + 'StreamSourceConfigOracleSourceConfigExcludeObjects', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable', + 'StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn', + 'StreamSourceConfigOracleSourceConfigIncludeObjects', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable', + 'StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn', + 'StreamSourceConfigOracleSourceConfigStreamLargeObjects', + 'StreamSourceConfigPostgresqlSourceConfig', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjects', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable', + 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjects', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable', + 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn', ] @pulumi.output_type @@ -660,6 +688,10 @@ def __key_warning(key: str): suggest = None if key == "mysqlExcludedObjects": suggest = "mysql_excluded_objects" + elif key == "oracleExcludedObjects": + suggest = "oracle_excluded_objects" + elif key == "postgresqlExcludedObjects": + suggest = "postgresql_excluded_objects" if suggest: pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAll. Access the value via the '{suggest}' property getter instead.") @@ -673,13 +705,23 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - mysql_excluded_objects: Optional['outputs.StreamBackfillAllMysqlExcludedObjects'] = None): + mysql_excluded_objects: Optional['outputs.StreamBackfillAllMysqlExcludedObjects'] = None, + oracle_excluded_objects: Optional['outputs.StreamBackfillAllOracleExcludedObjects'] = None, + postgresql_excluded_objects: Optional['outputs.StreamBackfillAllPostgresqlExcludedObjects'] = None): """ :param 'StreamBackfillAllMysqlExcludedObjectsArgs' mysql_excluded_objects: MySQL data source objects to avoid backfilling. Structure is documented below. + :param 'StreamBackfillAllOracleExcludedObjectsArgs' oracle_excluded_objects: PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + :param 'StreamBackfillAllPostgresqlExcludedObjectsArgs' postgresql_excluded_objects: PostgreSQL data source objects to avoid backfilling. + Structure is documented below. """ if mysql_excluded_objects is not None: pulumi.set(__self__, "mysql_excluded_objects", mysql_excluded_objects) + if oracle_excluded_objects is not None: + pulumi.set(__self__, "oracle_excluded_objects", oracle_excluded_objects) + if postgresql_excluded_objects is not None: + pulumi.set(__self__, "postgresql_excluded_objects", postgresql_excluded_objects) @property @pulumi.getter(name="mysqlExcludedObjects") @@ -690,6 +732,24 @@ def mysql_excluded_objects(self) -> Optional['outputs.StreamBackfillAllMysqlExcl """ return pulumi.get(self, "mysql_excluded_objects") + @property + @pulumi.getter(name="oracleExcludedObjects") + def oracle_excluded_objects(self) -> Optional['outputs.StreamBackfillAllOracleExcludedObjects']: + """ + PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + """ + return pulumi.get(self, "oracle_excluded_objects") + + @property + @pulumi.getter(name="postgresqlExcludedObjects") + def postgresql_excluded_objects(self) -> Optional['outputs.StreamBackfillAllPostgresqlExcludedObjects']: + """ + PostgreSQL data source objects to avoid backfilling. + Structure is documented below. + """ + return pulumi.get(self, "postgresql_excluded_objects") + @pulumi.output_type class StreamBackfillAllMysqlExcludedObjects(dict): @@ -941,683 +1001,2518 @@ def primary_key(self) -> Optional[bool]: @pulumi.output_type -class StreamBackfillNone(dict): - def __init__(__self__): - pass - - -@pulumi.output_type -class StreamDestinationConfig(dict): +class StreamBackfillAllOracleExcludedObjects(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "destinationConnectionProfile": - suggest = "destination_connection_profile" - elif key == "bigqueryDestinationConfig": - suggest = "bigquery_destination_config" - elif key == "gcsDestinationConfig": - suggest = "gcs_destination_config" + if key == "oracleSchemas": + suggest = "oracle_schemas" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllOracleExcludedObjects. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfig.__key_warning(key) + StreamBackfillAllOracleExcludedObjects.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfig.__key_warning(key) + StreamBackfillAllOracleExcludedObjects.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - destination_connection_profile: str, - bigquery_destination_config: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfig'] = None, - gcs_destination_config: Optional['outputs.StreamDestinationConfigGcsDestinationConfig'] = None): + oracle_schemas: Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchema']): """ - :param str destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - :param 'StreamDestinationConfigBigqueryDestinationConfigArgs' bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. - Structure is documented below. - :param 'StreamDestinationConfigGcsDestinationConfigArgs' gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. + :param Sequence['StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs'] oracle_schemas: Oracle schemas/databases in the database server Structure is documented below. """ - pulumi.set(__self__, "destination_connection_profile", destination_connection_profile) - if bigquery_destination_config is not None: - pulumi.set(__self__, "bigquery_destination_config", bigquery_destination_config) - if gcs_destination_config is not None: - pulumi.set(__self__, "gcs_destination_config", gcs_destination_config) + pulumi.set(__self__, "oracle_schemas", oracle_schemas) @property - @pulumi.getter(name="destinationConnectionProfile") - def destination_connection_profile(self) -> str: + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchema']: """ - Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Oracle schemas/databases in the database server + Structure is documented below. """ - return pulumi.get(self, "destination_connection_profile") + return pulumi.get(self, "oracle_schemas") + + +@pulumi.output_type +class StreamBackfillAllOracleExcludedObjectsOracleSchema(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleTables": + suggest = "oracle_tables" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllOracleExcludedObjectsOracleSchema. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamBackfillAllOracleExcludedObjectsOracleSchema.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamBackfillAllOracleExcludedObjectsOracleSchema.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + schema: str, + oracle_tables: Optional[Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable']] = None): + """ + :param str schema: Schema name. + :param Sequence['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs'] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) @property - @pulumi.getter(name="bigqueryDestinationConfig") - def bigquery_destination_config(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfig']: + @pulumi.getter + def schema(self) -> str: """ - A configuration for how data should be loaded to Cloud Storage. - Structure is documented below. + Schema name. """ - return pulumi.get(self, "bigquery_destination_config") + return pulumi.get(self, "schema") @property - @pulumi.getter(name="gcsDestinationConfig") - def gcs_destination_config(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfig']: + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable']]: """ - A configuration for how data should be loaded to Cloud Storage. + Tables in the database. Structure is documented below. """ - return pulumi.get(self, "gcs_destination_config") + return pulumi.get(self, "oracle_tables") @pulumi.output_type -class StreamDestinationConfigBigqueryDestinationConfig(dict): +class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "dataFreshness": - suggest = "data_freshness" - elif key == "singleTargetDataset": - suggest = "single_target_dataset" - elif key == "sourceHierarchyDatasets": - suggest = "source_hierarchy_datasets" + if key == "oracleColumns": + suggest = "oracle_columns" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigBigqueryDestinationConfig.__key_warning(key) + StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigBigqueryDestinationConfig.__key_warning(key) + StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - data_freshness: Optional[str] = None, - single_target_dataset: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset'] = None, - source_hierarchy_datasets: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets'] = None): + table: str, + oracle_columns: Optional[Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn']] = None): """ - :param str data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. - Editing this field will only affect new tables created in the future, but existing tables - will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - :param 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs' single_target_dataset: A single target dataset to which all data will be streamed. - Structure is documented below. - :param 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs' source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + :param str table: Table name. + :param Sequence['StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs'] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - if data_freshness is not None: - pulumi.set(__self__, "data_freshness", data_freshness) - if single_target_dataset is not None: - pulumi.set(__self__, "single_target_dataset", single_target_dataset) - if source_hierarchy_datasets is not None: - pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) - - @property - @pulumi.getter(name="dataFreshness") - def data_freshness(self) -> Optional[str]: - """ - The guaranteed data freshness (in seconds) when querying tables created by the stream. - Editing this field will only affect new tables created in the future, but existing tables - will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - """ - return pulumi.get(self, "data_freshness") + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) @property - @pulumi.getter(name="singleTargetDataset") - def single_target_dataset(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset']: + @pulumi.getter + def table(self) -> str: """ - A single target dataset to which all data will be streamed. - Structure is documented below. + Table name. """ - return pulumi.get(self, "single_target_dataset") + return pulumi.get(self, "table") @property - @pulumi.getter(name="sourceHierarchyDatasets") - def source_hierarchy_datasets(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets']: + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[Sequence['outputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn']]: """ - Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "source_hierarchy_datasets") + return pulumi.get(self, "oracle_columns") @pulumi.output_type -class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset(dict): +class StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "datasetId": - suggest = "dataset_id" + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset.__key_warning(key) + StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset.__key_warning(key) + StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - dataset_id: str): + column: Optional[str] = None, + data_type: Optional[str] = None, + encoding: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): """ - :param str dataset_id: Dataset ID in the format projects/{project}/datasets/{dataset_id} + :param str column: Column name. + :param str data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param str encoding: Column encoding. + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. + :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. """ - pulumi.set(__self__, "dataset_id", dataset_id) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property - @pulumi.getter(name="datasetId") - def dataset_id(self) -> str: + @pulumi.getter + def column(self) -> Optional[str]: """ - Dataset ID in the format projects/{project}/datasets/{dataset_id} + Column name. """ - return pulumi.get(self, "dataset_id") + return pulumi.get(self, "column") + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: + """ + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + """ + return pulumi.get(self, "data_type") + + @property + @pulumi.getter + def encoding(self) -> Optional[str]: + """ + Column encoding. + """ + return pulumi.get(self, "encoding") + + @property + @pulumi.getter + def length(self) -> Optional[int]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @property + @pulumi.getter + def nullable(self) -> Optional[bool]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @property + @pulumi.getter + def precision(self) -> Optional[int]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @property + @pulumi.getter + def scale(self) -> Optional[int]: + """ + Column scale. + """ + return pulumi.get(self, "scale") @pulumi.output_type -class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets(dict): +class StreamBackfillAllPostgresqlExcludedObjects(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "datasetTemplate": - suggest = "dataset_template" + if key == "postgresqlSchemas": + suggest = "postgresql_schemas" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllPostgresqlExcludedObjects. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjects.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjects.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - dataset_template: 'outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate'): + postgresql_schemas: Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema']): """ - :param 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs' dataset_template: Dataset template used for dynamic dataset creation. + :param Sequence['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs'] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. """ - pulumi.set(__self__, "dataset_template", dataset_template) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="datasetTemplate") - def dataset_template(self) -> 'outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate': + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema']: """ - Dataset template used for dynamic dataset creation. + PostgreSQL schemas on the server Structure is documented below. """ - return pulumi.get(self, "dataset_template") + return pulumi.get(self, "postgresql_schemas") @pulumi.output_type -class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate(dict): +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "datasetIdPrefix": - suggest = "dataset_id_prefix" - elif key == "kmsKeyName": - suggest = "kms_key_name" + if key == "postgresqlTables": + suggest = "postgresql_tables" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - location: str, - dataset_id_prefix: Optional[str] = None, - kms_key_name: Optional[str] = None): + schema: str, + postgresql_tables: Optional[Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable']] = None): """ - :param str location: The geographic location where the dataset should reside. - See https://cloud.google.com/bigquery/docs/locations for supported locations. - :param str dataset_id_prefix: If supplied, every created dataset will have its name prefixed by the provided value. - The prefix and name will be separated by an underscore. i.e. _. - :param str kms_key_name: Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - table. The BigQuery Service Account associated with your project requires access to this - encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + :param str schema: Database name. + :param Sequence['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs'] postgresql_tables: Tables in the schema. + Structure is documented below. """ - pulumi.set(__self__, "location", location) - if dataset_id_prefix is not None: - pulumi.set(__self__, "dataset_id_prefix", dataset_id_prefix) - if kms_key_name is not None: - pulumi.set(__self__, "kms_key_name", kms_key_name) + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property @pulumi.getter - def location(self) -> str: + def schema(self) -> str: """ - The geographic location where the dataset should reside. - See https://cloud.google.com/bigquery/docs/locations for supported locations. + Database name. """ - return pulumi.get(self, "location") + return pulumi.get(self, "schema") @property - @pulumi.getter(name="datasetIdPrefix") - def dataset_id_prefix(self) -> Optional[str]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable']]: """ - If supplied, every created dataset will have its name prefixed by the provided value. - The prefix and name will be separated by an underscore. i.e. _. + Tables in the schema. + Structure is documented below. """ - return pulumi.get(self, "dataset_id_prefix") + return pulumi.get(self, "postgresql_tables") + + +@pulumi.output_type +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "postgresqlColumns": + suggest = "postgresql_columns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + table: str, + postgresql_columns: Optional[Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']] = None): + """ + :param str table: Table name. + :param Sequence['StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs'] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property - @pulumi.getter(name="kmsKeyName") - def kms_key_name(self) -> Optional[str]: + @pulumi.getter + def table(self) -> str: """ - Describes the Cloud KMS encryption key that will be used to protect destination BigQuery - table. The BigQuery Service Account associated with your project requires access to this - encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. - See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + Table name. """ - return pulumi.get(self, "kms_key_name") + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[Sequence['outputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']]: + """ + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "postgresql_columns") @pulumi.output_type -class StreamDestinationConfigGcsDestinationConfig(dict): +class StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "avroFileFormat": - suggest = "avro_file_format" - elif key == "fileRotationInterval": - suggest = "file_rotation_interval" - elif key == "fileRotationMb": - suggest = "file_rotation_mb" - elif key == "jsonFileFormat": - suggest = "json_file_format" + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigGcsDestinationConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigGcsDestinationConfig.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigGcsDestinationConfig.__key_warning(key) + StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - avro_file_format: Optional['outputs.StreamDestinationConfigGcsDestinationConfigAvroFileFormat'] = None, - file_rotation_interval: Optional[str] = None, - file_rotation_mb: Optional[int] = None, - json_file_format: Optional['outputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormat'] = None, - path: Optional[str] = None): + column: Optional[str] = None, + data_type: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): """ - :param 'StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs' avro_file_format: AVRO file format configuration. - :param str file_rotation_interval: The maximum duration for which new events are added before a file is closed and a new file is created. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. - :param int file_rotation_mb: The maximum file size to be saved in the bucket. - :param 'StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs' json_file_format: JSON file format configuration. - Structure is documented below. - :param str path: Path inside the Cloud Storage bucket to write data to. + :param str column: Column name. + :param str data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. + :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. """ - if avro_file_format is not None: - pulumi.set(__self__, "avro_file_format", avro_file_format) - if file_rotation_interval is not None: - pulumi.set(__self__, "file_rotation_interval", file_rotation_interval) - if file_rotation_mb is not None: - pulumi.set(__self__, "file_rotation_mb", file_rotation_mb) - if json_file_format is not None: - pulumi.set(__self__, "json_file_format", json_file_format) - if path is not None: - pulumi.set(__self__, "path", path) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) @property - @pulumi.getter(name="avroFileFormat") - def avro_file_format(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfigAvroFileFormat']: + @pulumi.getter + def column(self) -> Optional[str]: """ - AVRO file format configuration. + Column name. """ - return pulumi.get(self, "avro_file_format") + return pulumi.get(self, "column") @property - @pulumi.getter(name="fileRotationInterval") - def file_rotation_interval(self) -> Optional[str]: + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: """ - The maximum duration for which new events are added before a file is closed and a new file is created. - A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html """ - return pulumi.get(self, "file_rotation_interval") + return pulumi.get(self, "data_type") @property - @pulumi.getter(name="fileRotationMb") - def file_rotation_mb(self) -> Optional[int]: + @pulumi.getter + def length(self) -> Optional[int]: """ - The maximum file size to be saved in the bucket. + Column length. """ - return pulumi.get(self, "file_rotation_mb") + return pulumi.get(self, "length") @property - @pulumi.getter(name="jsonFileFormat") - def json_file_format(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormat']: + @pulumi.getter + def nullable(self) -> Optional[bool]: """ - JSON file format configuration. - Structure is documented below. + Whether or not the column can accept a null value. """ - return pulumi.get(self, "json_file_format") + return pulumi.get(self, "nullable") + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") @property @pulumi.getter - def path(self) -> Optional[str]: + def precision(self) -> Optional[int]: """ - Path inside the Cloud Storage bucket to write data to. + Column precision. """ - return pulumi.get(self, "path") + return pulumi.get(self, "precision") + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @property + @pulumi.getter + def scale(self) -> Optional[int]: + """ + Column scale. + """ + return pulumi.get(self, "scale") @pulumi.output_type -class StreamDestinationConfigGcsDestinationConfigAvroFileFormat(dict): +class StreamBackfillNone(dict): def __init__(__self__): pass @pulumi.output_type -class StreamDestinationConfigGcsDestinationConfigJsonFileFormat(dict): +class StreamDestinationConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "schemaFileFormat": - suggest = "schema_file_format" + if key == "destinationConnectionProfile": + suggest = "destination_connection_profile" + elif key == "bigqueryDestinationConfig": + suggest = "bigquery_destination_config" + elif key == "gcsDestinationConfig": + suggest = "gcs_destination_config" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigGcsDestinationConfigJsonFileFormat. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfig. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamDestinationConfigGcsDestinationConfigJsonFileFormat.__key_warning(key) + StreamDestinationConfig.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamDestinationConfigGcsDestinationConfigJsonFileFormat.__key_warning(key) + StreamDestinationConfig.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - compression: Optional[str] = None, - schema_file_format: Optional[str] = None): + destination_connection_profile: str, + bigquery_destination_config: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfig'] = None, + gcs_destination_config: Optional['outputs.StreamDestinationConfigGcsDestinationConfig'] = None): """ - :param str compression: Compression of the loaded JSON file. - Possible values are `NO_COMPRESSION` and `GZIP`. - :param str schema_file_format: The schema file format along JSON data files. - Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + :param str destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + :param 'StreamDestinationConfigBigqueryDestinationConfigArgs' bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + :param 'StreamDestinationConfigGcsDestinationConfigArgs' gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. """ - if compression is not None: - pulumi.set(__self__, "compression", compression) - if schema_file_format is not None: - pulumi.set(__self__, "schema_file_format", schema_file_format) + pulumi.set(__self__, "destination_connection_profile", destination_connection_profile) + if bigquery_destination_config is not None: + pulumi.set(__self__, "bigquery_destination_config", bigquery_destination_config) + if gcs_destination_config is not None: + pulumi.set(__self__, "gcs_destination_config", gcs_destination_config) + + @property + @pulumi.getter(name="destinationConnectionProfile") + def destination_connection_profile(self) -> str: + """ + Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + """ + return pulumi.get(self, "destination_connection_profile") + + @property + @pulumi.getter(name="bigqueryDestinationConfig") + def bigquery_destination_config(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfig']: + """ + A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "bigquery_destination_config") + + @property + @pulumi.getter(name="gcsDestinationConfig") + def gcs_destination_config(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfig']: + """ + A configuration for how data should be loaded to Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "gcs_destination_config") + + +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataFreshness": + suggest = "data_freshness" + elif key == "singleTargetDataset": + suggest = "single_target_dataset" + elif key == "sourceHierarchyDatasets": + suggest = "source_hierarchy_datasets" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigBigqueryDestinationConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigBigqueryDestinationConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + data_freshness: Optional[str] = None, + single_target_dataset: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset'] = None, + source_hierarchy_datasets: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets'] = None): + """ + :param str data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. + Editing this field will only affect new tables created in the future, but existing tables + will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs' single_target_dataset: A single target dataset to which all data will be streamed. + Structure is documented below. + :param 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs' source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Structure is documented below. + """ + if data_freshness is not None: + pulumi.set(__self__, "data_freshness", data_freshness) + if single_target_dataset is not None: + pulumi.set(__self__, "single_target_dataset", single_target_dataset) + if source_hierarchy_datasets is not None: + pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) + + @property + @pulumi.getter(name="dataFreshness") + def data_freshness(self) -> Optional[str]: + """ + The guaranteed data freshness (in seconds) when querying tables created by the stream. + Editing this field will only affect new tables created in the future, but existing tables + will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + """ + return pulumi.get(self, "data_freshness") + + @property + @pulumi.getter(name="singleTargetDataset") + def single_target_dataset(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset']: + """ + A single target dataset to which all data will be streamed. + Structure is documented below. + """ + return pulumi.get(self, "single_target_dataset") + + @property + @pulumi.getter(name="sourceHierarchyDatasets") + def source_hierarchy_datasets(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets']: + """ + Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. + Structure is documented below. + """ + return pulumi.get(self, "source_hierarchy_datasets") + + +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "datasetId": + suggest = "dataset_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dataset_id: str): + """ + :param str dataset_id: Dataset ID in the format projects/{project}/datasets/{dataset_id} + """ + pulumi.set(__self__, "dataset_id", dataset_id) + + @property + @pulumi.getter(name="datasetId") + def dataset_id(self) -> str: + """ + Dataset ID in the format projects/{project}/datasets/{dataset_id} + """ + return pulumi.get(self, "dataset_id") + + +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "datasetTemplate": + suggest = "dataset_template" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dataset_template: 'outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate'): + """ + :param 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs' dataset_template: Dataset template used for dynamic dataset creation. + Structure is documented below. + """ + pulumi.set(__self__, "dataset_template", dataset_template) + + @property + @pulumi.getter(name="datasetTemplate") + def dataset_template(self) -> 'outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate': + """ + Dataset template used for dynamic dataset creation. + Structure is documented below. + """ + return pulumi.get(self, "dataset_template") + + +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "datasetIdPrefix": + suggest = "dataset_id_prefix" + elif key == "kmsKeyName": + suggest = "kms_key_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + location: str, + dataset_id_prefix: Optional[str] = None, + kms_key_name: Optional[str] = None): + """ + :param str location: The geographic location where the dataset should reside. + See https://cloud.google.com/bigquery/docs/locations for supported locations. + :param str dataset_id_prefix: If supplied, every created dataset will have its name prefixed by the provided value. + The prefix and name will be separated by an underscore. i.e. _. + :param str kms_key_name: Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + table. The BigQuery Service Account associated with your project requires access to this + encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + """ + pulumi.set(__self__, "location", location) + if dataset_id_prefix is not None: + pulumi.set(__self__, "dataset_id_prefix", dataset_id_prefix) + if kms_key_name is not None: + pulumi.set(__self__, "kms_key_name", kms_key_name) + + @property + @pulumi.getter + def location(self) -> str: + """ + The geographic location where the dataset should reside. + See https://cloud.google.com/bigquery/docs/locations for supported locations. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter(name="datasetIdPrefix") + def dataset_id_prefix(self) -> Optional[str]: + """ + If supplied, every created dataset will have its name prefixed by the provided value. + The prefix and name will be separated by an underscore. i.e. _. + """ + return pulumi.get(self, "dataset_id_prefix") + + @property + @pulumi.getter(name="kmsKeyName") + def kms_key_name(self) -> Optional[str]: + """ + Describes the Cloud KMS encryption key that will be used to protect destination BigQuery + table. The BigQuery Service Account associated with your project requires access to this + encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. + See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information. + """ + return pulumi.get(self, "kms_key_name") + + +@pulumi.output_type +class StreamDestinationConfigGcsDestinationConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "avroFileFormat": + suggest = "avro_file_format" + elif key == "fileRotationInterval": + suggest = "file_rotation_interval" + elif key == "fileRotationMb": + suggest = "file_rotation_mb" + elif key == "jsonFileFormat": + suggest = "json_file_format" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigGcsDestinationConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigGcsDestinationConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigGcsDestinationConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + avro_file_format: Optional['outputs.StreamDestinationConfigGcsDestinationConfigAvroFileFormat'] = None, + file_rotation_interval: Optional[str] = None, + file_rotation_mb: Optional[int] = None, + json_file_format: Optional['outputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormat'] = None, + path: Optional[str] = None): + """ + :param 'StreamDestinationConfigGcsDestinationConfigAvroFileFormatArgs' avro_file_format: AVRO file format configuration. + :param str file_rotation_interval: The maximum duration for which new events are added before a file is closed and a new file is created. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param int file_rotation_mb: The maximum file size to be saved in the bucket. + :param 'StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs' json_file_format: JSON file format configuration. + Structure is documented below. + :param str path: Path inside the Cloud Storage bucket to write data to. + """ + if avro_file_format is not None: + pulumi.set(__self__, "avro_file_format", avro_file_format) + if file_rotation_interval is not None: + pulumi.set(__self__, "file_rotation_interval", file_rotation_interval) + if file_rotation_mb is not None: + pulumi.set(__self__, "file_rotation_mb", file_rotation_mb) + if json_file_format is not None: + pulumi.set(__self__, "json_file_format", json_file_format) + if path is not None: + pulumi.set(__self__, "path", path) + + @property + @pulumi.getter(name="avroFileFormat") + def avro_file_format(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfigAvroFileFormat']: + """ + AVRO file format configuration. + """ + return pulumi.get(self, "avro_file_format") + + @property + @pulumi.getter(name="fileRotationInterval") + def file_rotation_interval(self) -> Optional[str]: + """ + The maximum duration for which new events are added before a file is closed and a new file is created. + A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + """ + return pulumi.get(self, "file_rotation_interval") + + @property + @pulumi.getter(name="fileRotationMb") + def file_rotation_mb(self) -> Optional[int]: + """ + The maximum file size to be saved in the bucket. + """ + return pulumi.get(self, "file_rotation_mb") + + @property + @pulumi.getter(name="jsonFileFormat") + def json_file_format(self) -> Optional['outputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormat']: + """ + JSON file format configuration. + Structure is documented below. + """ + return pulumi.get(self, "json_file_format") + + @property + @pulumi.getter + def path(self) -> Optional[str]: + """ + Path inside the Cloud Storage bucket to write data to. + """ + return pulumi.get(self, "path") + + +@pulumi.output_type +class StreamDestinationConfigGcsDestinationConfigAvroFileFormat(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class StreamDestinationConfigGcsDestinationConfigJsonFileFormat(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "schemaFileFormat": + suggest = "schema_file_format" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamDestinationConfigGcsDestinationConfigJsonFileFormat. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamDestinationConfigGcsDestinationConfigJsonFileFormat.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamDestinationConfigGcsDestinationConfigJsonFileFormat.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + compression: Optional[str] = None, + schema_file_format: Optional[str] = None): + """ + :param str compression: Compression of the loaded JSON file. + Possible values are `NO_COMPRESSION` and `GZIP`. + :param str schema_file_format: The schema file format along JSON data files. + Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + """ + if compression is not None: + pulumi.set(__self__, "compression", compression) + if schema_file_format is not None: + pulumi.set(__self__, "schema_file_format", schema_file_format) + + @property + @pulumi.getter + def compression(self) -> Optional[str]: + """ + Compression of the loaded JSON file. + Possible values are `NO_COMPRESSION` and `GZIP`. + """ + return pulumi.get(self, "compression") + + @property + @pulumi.getter(name="schemaFileFormat") + def schema_file_format(self) -> Optional[str]: + """ + The schema file format along JSON data files. + Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + """ + return pulumi.get(self, "schema_file_format") + + +@pulumi.output_type +class StreamSourceConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sourceConnectionProfile": + suggest = "source_connection_profile" + elif key == "mysqlSourceConfig": + suggest = "mysql_source_config" + elif key == "oracleSourceConfig": + suggest = "oracle_source_config" + elif key == "postgresqlSourceConfig": + suggest = "postgresql_source_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + source_connection_profile: str, + mysql_source_config: Optional['outputs.StreamSourceConfigMysqlSourceConfig'] = None, + oracle_source_config: Optional['outputs.StreamSourceConfigOracleSourceConfig'] = None, + postgresql_source_config: Optional['outputs.StreamSourceConfigPostgresqlSourceConfig'] = None): + """ + :param str source_connection_profile: Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + :param 'StreamSourceConfigMysqlSourceConfigArgs' mysql_source_config: MySQL data source configuration. + Structure is documented below. + :param 'StreamSourceConfigOracleSourceConfigArgs' oracle_source_config: MySQL data source configuration. + Structure is documented below. + :param 'StreamSourceConfigPostgresqlSourceConfigArgs' postgresql_source_config: PostgreSQL data source configuration. + Structure is documented below. + """ + pulumi.set(__self__, "source_connection_profile", source_connection_profile) + if mysql_source_config is not None: + pulumi.set(__self__, "mysql_source_config", mysql_source_config) + if oracle_source_config is not None: + pulumi.set(__self__, "oracle_source_config", oracle_source_config) + if postgresql_source_config is not None: + pulumi.set(__self__, "postgresql_source_config", postgresql_source_config) + + @property + @pulumi.getter(name="sourceConnectionProfile") + def source_connection_profile(self) -> str: + """ + Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + """ + return pulumi.get(self, "source_connection_profile") + + @property + @pulumi.getter(name="mysqlSourceConfig") + def mysql_source_config(self) -> Optional['outputs.StreamSourceConfigMysqlSourceConfig']: + """ + MySQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "mysql_source_config") + + @property + @pulumi.getter(name="oracleSourceConfig") + def oracle_source_config(self) -> Optional['outputs.StreamSourceConfigOracleSourceConfig']: + """ + MySQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "oracle_source_config") + + @property + @pulumi.getter(name="postgresqlSourceConfig") + def postgresql_source_config(self) -> Optional['outputs.StreamSourceConfigPostgresqlSourceConfig']: + """ + PostgreSQL data source configuration. + Structure is documented below. + """ + return pulumi.get(self, "postgresql_source_config") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "excludeObjects": + suggest = "exclude_objects" + elif key == "includeObjects": + suggest = "include_objects" + elif key == "maxConcurrentCdcTasks": + suggest = "max_concurrent_cdc_tasks" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + exclude_objects: Optional['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjects'] = None, + include_objects: Optional['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjects'] = None, + max_concurrent_cdc_tasks: Optional[int] = None): + """ + :param 'StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs' exclude_objects: MySQL objects to exclude from the stream. + Structure is documented below. + :param 'StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs' include_objects: MySQL objects to retrieve from the source. + Structure is documented below. + :param int max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + if exclude_objects is not None: + pulumi.set(__self__, "exclude_objects", exclude_objects) + if include_objects is not None: + pulumi.set(__self__, "include_objects", include_objects) + if max_concurrent_cdc_tasks is not None: + pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + + @property + @pulumi.getter(name="excludeObjects") + def exclude_objects(self) -> Optional['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjects']: + """ + MySQL objects to exclude from the stream. + Structure is documented below. + """ + return pulumi.get(self, "exclude_objects") + + @property + @pulumi.getter(name="includeObjects") + def include_objects(self) -> Optional['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjects']: + """ + MySQL objects to retrieve from the source. + Structure is documented below. + """ + return pulumi.get(self, "include_objects") + + @property + @pulumi.getter(name="maxConcurrentCdcTasks") + def max_concurrent_cdc_tasks(self) -> Optional[int]: + """ + Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_cdc_tasks") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigExcludeObjects(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlDatabases": + suggest = "mysql_databases" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjects. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjects.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjects.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + mysql_databases: Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase']): + """ + :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs'] mysql_databases: MySQL databases on the server + Structure is documented below. + """ + pulumi.set(__self__, "mysql_databases", mysql_databases) + + @property + @pulumi.getter(name="mysqlDatabases") + def mysql_databases(self) -> Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase']: + """ + MySQL databases on the server + Structure is documented below. + """ + return pulumi.get(self, "mysql_databases") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlTables": + suggest = "mysql_tables" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database: str, + mysql_tables: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable']] = None): + """ + :param str database: Database name. + :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs'] mysql_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "database", database) + if mysql_tables is not None: + pulumi.set(__self__, "mysql_tables", mysql_tables) + + @property + @pulumi.getter + def database(self) -> str: + """ + Database name. + """ + return pulumi.get(self, "database") + + @property + @pulumi.getter(name="mysqlTables") + def mysql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable']]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "mysql_tables") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlColumns": + suggest = "mysql_columns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + table: str, + mysql_columns: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn']] = None): + """ + :param str table: Table name. + :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs'] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if mysql_columns is not None: + pulumi.set(__self__, "mysql_columns", mysql_columns) + + @property + @pulumi.getter + def table(self) -> str: + """ + Table name. + """ + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="mysqlColumns") + def mysql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn']]: + """ + MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "mysql_columns") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + collation: Optional[str] = None, + column: Optional[str] = None, + data_type: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + primary_key: Optional[bool] = None): + """ + :param str collation: Column collation. + :param str column: Column name. + :param str data_type: The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param bool primary_key: Whether or not the column represents a primary key. + """ + if collation is not None: + pulumi.set(__self__, "collation", collation) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + + @property + @pulumi.getter + def collation(self) -> Optional[str]: + """ + Column collation. + """ + return pulumi.get(self, "collation") + + @property + @pulumi.getter + def column(self) -> Optional[str]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: + """ + The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + """ + return pulumi.get(self, "data_type") + + @property + @pulumi.getter + def length(self) -> Optional[int]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @property + @pulumi.getter + def nullable(self) -> Optional[bool]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigIncludeObjects(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlDatabases": + suggest = "mysql_databases" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjects. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjects.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjects.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + mysql_databases: Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase']): + """ + :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs'] mysql_databases: MySQL databases on the server + Structure is documented below. + """ + pulumi.set(__self__, "mysql_databases", mysql_databases) + + @property + @pulumi.getter(name="mysqlDatabases") + def mysql_databases(self) -> Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase']: + """ + MySQL databases on the server + Structure is documented below. + """ + return pulumi.get(self, "mysql_databases") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlTables": + suggest = "mysql_tables" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database: str, + mysql_tables: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable']] = None): + """ + :param str database: Database name. + :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs'] mysql_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "database", database) + if mysql_tables is not None: + pulumi.set(__self__, "mysql_tables", mysql_tables) + + @property + @pulumi.getter + def database(self) -> str: + """ + Database name. + """ + return pulumi.get(self, "database") + + @property + @pulumi.getter(name="mysqlTables") + def mysql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable']]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "mysql_tables") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "mysqlColumns": + suggest = "mysql_columns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + table: str, + mysql_columns: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn']] = None): + """ + :param str table: Table name. + :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs'] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if mysql_columns is not None: + pulumi.set(__self__, "mysql_columns", mysql_columns) + + @property + @pulumi.getter + def table(self) -> str: + """ + Table name. + """ + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="mysqlColumns") + def mysql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn']]: + """ + MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "mysql_columns") + + +@pulumi.output_type +class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + collation: Optional[str] = None, + column: Optional[str] = None, + data_type: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + primary_key: Optional[bool] = None): + """ + :param str collation: Column collation. + :param str column: Column name. + :param str data_type: The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param bool primary_key: Whether or not the column represents a primary key. + """ + if collation is not None: + pulumi.set(__self__, "collation", collation) + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + + @property + @pulumi.getter + def collation(self) -> Optional[str]: + """ + Column collation. + """ + return pulumi.get(self, "collation") + + @property + @pulumi.getter + def column(self) -> Optional[str]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: + """ + The MySQL data type. Full data types list can be found here: + https://dev.mysql.com/doc/refman/8.0/en/data-types.html + """ + return pulumi.get(self, "data_type") + + @property + @pulumi.getter + def length(self) -> Optional[int]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @property + @pulumi.getter + def nullable(self) -> Optional[bool]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dropLargeObjects": + suggest = "drop_large_objects" + elif key == "excludeObjects": + suggest = "exclude_objects" + elif key == "includeObjects": + suggest = "include_objects" + elif key == "maxConcurrentBackfillTasks": + suggest = "max_concurrent_backfill_tasks" + elif key == "maxConcurrentCdcTasks": + suggest = "max_concurrent_cdc_tasks" + elif key == "streamLargeObjects": + suggest = "stream_large_objects" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + drop_large_objects: Optional['outputs.StreamSourceConfigOracleSourceConfigDropLargeObjects'] = None, + exclude_objects: Optional['outputs.StreamSourceConfigOracleSourceConfigExcludeObjects'] = None, + include_objects: Optional['outputs.StreamSourceConfigOracleSourceConfigIncludeObjects'] = None, + max_concurrent_backfill_tasks: Optional[int] = None, + max_concurrent_cdc_tasks: Optional[int] = None, + stream_large_objects: Optional['outputs.StreamSourceConfigOracleSourceConfigStreamLargeObjects'] = None): + """ + :param 'StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs' drop_large_objects: Configuration to drop large object values. + :param 'StreamSourceConfigOracleSourceConfigExcludeObjectsArgs' exclude_objects: Oracle objects to exclude from the stream. + Structure is documented below. + :param 'StreamSourceConfigOracleSourceConfigIncludeObjectsArgs' include_objects: Oracle objects to retrieve from the source. + Structure is documented below. + :param int max_concurrent_backfill_tasks: Maximum number of concurrent backfill tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + :param int max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + :param 'StreamSourceConfigOracleSourceConfigStreamLargeObjectsArgs' stream_large_objects: Configuration to drop large object values. + """ + if drop_large_objects is not None: + pulumi.set(__self__, "drop_large_objects", drop_large_objects) + if exclude_objects is not None: + pulumi.set(__self__, "exclude_objects", exclude_objects) + if include_objects is not None: + pulumi.set(__self__, "include_objects", include_objects) + if max_concurrent_backfill_tasks is not None: + pulumi.set(__self__, "max_concurrent_backfill_tasks", max_concurrent_backfill_tasks) + if max_concurrent_cdc_tasks is not None: + pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + if stream_large_objects is not None: + pulumi.set(__self__, "stream_large_objects", stream_large_objects) + + @property + @pulumi.getter(name="dropLargeObjects") + def drop_large_objects(self) -> Optional['outputs.StreamSourceConfigOracleSourceConfigDropLargeObjects']: + """ + Configuration to drop large object values. + """ + return pulumi.get(self, "drop_large_objects") + + @property + @pulumi.getter(name="excludeObjects") + def exclude_objects(self) -> Optional['outputs.StreamSourceConfigOracleSourceConfigExcludeObjects']: + """ + Oracle objects to exclude from the stream. + Structure is documented below. + """ + return pulumi.get(self, "exclude_objects") + + @property + @pulumi.getter(name="includeObjects") + def include_objects(self) -> Optional['outputs.StreamSourceConfigOracleSourceConfigIncludeObjects']: + """ + Oracle objects to retrieve from the source. + Structure is documented below. + """ + return pulumi.get(self, "include_objects") + + @property + @pulumi.getter(name="maxConcurrentBackfillTasks") + def max_concurrent_backfill_tasks(self) -> Optional[int]: + """ + Maximum number of concurrent backfill tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_backfill_tasks") + + @property + @pulumi.getter(name="maxConcurrentCdcTasks") + def max_concurrent_cdc_tasks(self) -> Optional[int]: + """ + Maximum number of concurrent CDC tasks. The number should be non negative. + If not set (or set to 0), the system's default value will be used. + """ + return pulumi.get(self, "max_concurrent_cdc_tasks") + + @property + @pulumi.getter(name="streamLargeObjects") + def stream_large_objects(self) -> Optional['outputs.StreamSourceConfigOracleSourceConfigStreamLargeObjects']: + """ + Configuration to drop large object values. + """ + return pulumi.get(self, "stream_large_objects") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigDropLargeObjects(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigExcludeObjects(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleSchemas": + suggest = "oracle_schemas" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigExcludeObjects. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjects.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjects.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + oracle_schemas: Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema']): + """ + :param Sequence['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs'] oracle_schemas: Oracle schemas/databases in the database server + Structure is documented below. + """ + pulumi.set(__self__, "oracle_schemas", oracle_schemas) + + @property + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema']: + """ + Oracle schemas/databases in the database server + Structure is documented below. + """ + return pulumi.get(self, "oracle_schemas") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleTables": + suggest = "oracle_tables" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + schema: str, + oracle_tables: Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable']] = None): + """ + :param str schema: Schema name. + :param Sequence['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs'] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) + + @property + @pulumi.getter + def schema(self) -> str: + """ + Schema name. + """ + return pulumi.get(self, "schema") + + @property + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable']]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "oracle_tables") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleColumns": + suggest = "oracle_columns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + table: str, + oracle_columns: Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn']] = None): + """ + :param str table: Table name. + :param Sequence['StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs'] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) + + @property + @pulumi.getter + def table(self) -> str: + """ + Table name. + """ + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn']]: + """ + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "oracle_columns") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + column: Optional[str] = None, + data_type: Optional[str] = None, + encoding: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): + """ + :param str column: Column name. + :param str data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param str encoding: Column encoding. + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. + :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. + """ + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) + + @property + @pulumi.getter + def column(self) -> Optional[str]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: + """ + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + """ + return pulumi.get(self, "data_type") + + @property + @pulumi.getter + def encoding(self) -> Optional[str]: + """ + Column encoding. + """ + return pulumi.get(self, "encoding") + + @property + @pulumi.getter + def length(self) -> Optional[int]: + """ + Column length. + """ + return pulumi.get(self, "length") + + @property + @pulumi.getter + def nullable(self) -> Optional[bool]: + """ + Whether or not the column can accept a null value. + """ + return pulumi.get(self, "nullable") + + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") + + @property + @pulumi.getter + def precision(self) -> Optional[int]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + + @property + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: + """ + Whether or not the column represents a primary key. + """ + return pulumi.get(self, "primary_key") + + @property + @pulumi.getter + def scale(self) -> Optional[int]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigIncludeObjects(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleSchemas": + suggest = "oracle_schemas" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigIncludeObjects. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjects.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjects.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + oracle_schemas: Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema']): + """ + :param Sequence['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs'] oracle_schemas: Oracle schemas/databases in the database server + Structure is documented below. + """ + pulumi.set(__self__, "oracle_schemas", oracle_schemas) + + @property + @pulumi.getter(name="oracleSchemas") + def oracle_schemas(self) -> Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema']: + """ + Oracle schemas/databases in the database server + Structure is documented below. + """ + return pulumi.get(self, "oracle_schemas") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleTables": + suggest = "oracle_tables" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + schema: str, + oracle_tables: Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable']] = None): + """ + :param str schema: Schema name. + :param Sequence['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs'] oracle_tables: Tables in the database. + Structure is documented below. + """ + pulumi.set(__self__, "schema", schema) + if oracle_tables is not None: + pulumi.set(__self__, "oracle_tables", oracle_tables) + + @property + @pulumi.getter + def schema(self) -> str: + """ + Schema name. + """ + return pulumi.get(self, "schema") + + @property + @pulumi.getter(name="oracleTables") + def oracle_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable']]: + """ + Tables in the database. + Structure is documented below. + """ + return pulumi.get(self, "oracle_tables") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oracleColumns": + suggest = "oracle_columns" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + table: str, + oracle_columns: Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn']] = None): + """ + :param str table: Table name. + :param Sequence['StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs'] oracle_columns: Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + pulumi.set(__self__, "table", table) + if oracle_columns is not None: + pulumi.set(__self__, "oracle_columns", oracle_columns) + + @property + @pulumi.getter + def table(self) -> str: + """ + Table name. + """ + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="oracleColumns") + def oracle_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn']]: + """ + Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + Structure is documented below. + """ + return pulumi.get(self, "oracle_columns") + + +@pulumi.output_type +class StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataType": + suggest = "data_type" + elif key == "ordinalPosition": + suggest = "ordinal_position" + elif key == "primaryKey": + suggest = "primary_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + column: Optional[str] = None, + data_type: Optional[str] = None, + encoding: Optional[str] = None, + length: Optional[int] = None, + nullable: Optional[bool] = None, + ordinal_position: Optional[int] = None, + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): + """ + :param str column: Column name. + :param str data_type: The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + :param str encoding: Column encoding. + :param int length: Column length. + :param bool nullable: Whether or not the column can accept a null value. + :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. + :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. + """ + if column is not None: + pulumi.set(__self__, "column", column) + if data_type is not None: + pulumi.set(__self__, "data_type", data_type) + if encoding is not None: + pulumi.set(__self__, "encoding", encoding) + if length is not None: + pulumi.set(__self__, "length", length) + if nullable is not None: + pulumi.set(__self__, "nullable", nullable) + if ordinal_position is not None: + pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) + if primary_key is not None: + pulumi.set(__self__, "primary_key", primary_key) + if scale is not None: + pulumi.set(__self__, "scale", scale) + + @property + @pulumi.getter + def column(self) -> Optional[str]: + """ + Column name. + """ + return pulumi.get(self, "column") + + @property + @pulumi.getter(name="dataType") + def data_type(self) -> Optional[str]: + """ + The Oracle data type. Full data types list can be found here: + https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html + """ + return pulumi.get(self, "data_type") + + @property + @pulumi.getter + def encoding(self) -> Optional[str]: + """ + Column encoding. + """ + return pulumi.get(self, "encoding") @property @pulumi.getter - def compression(self) -> Optional[str]: + def length(self) -> Optional[int]: """ - Compression of the loaded JSON file. - Possible values are `NO_COMPRESSION` and `GZIP`. + Column length. """ - return pulumi.get(self, "compression") + return pulumi.get(self, "length") @property - @pulumi.getter(name="schemaFileFormat") - def schema_file_format(self) -> Optional[str]: + @pulumi.getter + def nullable(self) -> Optional[bool]: """ - The schema file format along JSON data files. - Possible values are `NO_SCHEMA_FILE` and `AVRO_SCHEMA_FILE`. + Whether or not the column can accept a null value. """ - return pulumi.get(self, "schema_file_format") - - -@pulumi.output_type -class StreamSourceConfig(dict): - @staticmethod - def __key_warning(key: str): - suggest = None - if key == "mysqlSourceConfig": - suggest = "mysql_source_config" - elif key == "sourceConnectionProfile": - suggest = "source_connection_profile" - - if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfig. Access the value via the '{suggest}' property getter instead.") - - def __getitem__(self, key: str) -> Any: - StreamSourceConfig.__key_warning(key) - return super().__getitem__(key) + return pulumi.get(self, "nullable") - def get(self, key: str, default = None) -> Any: - StreamSourceConfig.__key_warning(key) - return super().get(key, default) + @property + @pulumi.getter(name="ordinalPosition") + def ordinal_position(self) -> Optional[int]: + """ + The ordinal position of the column in the table. + """ + return pulumi.get(self, "ordinal_position") - def __init__(__self__, *, - mysql_source_config: 'outputs.StreamSourceConfigMysqlSourceConfig', - source_connection_profile: str): + @property + @pulumi.getter + def precision(self) -> Optional[int]: """ - :param 'StreamSourceConfigMysqlSourceConfigArgs' mysql_source_config: MySQL data source configuration. - Structure is documented below. - :param str source_connection_profile: Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Column precision. """ - pulumi.set(__self__, "mysql_source_config", mysql_source_config) - pulumi.set(__self__, "source_connection_profile", source_connection_profile) + return pulumi.get(self, "precision") @property - @pulumi.getter(name="mysqlSourceConfig") - def mysql_source_config(self) -> 'outputs.StreamSourceConfigMysqlSourceConfig': + @pulumi.getter(name="primaryKey") + def primary_key(self) -> Optional[bool]: """ - MySQL data source configuration. - Structure is documented below. + Whether or not the column represents a primary key. """ - return pulumi.get(self, "mysql_source_config") + return pulumi.get(self, "primary_key") @property - @pulumi.getter(name="sourceConnectionProfile") - def source_connection_profile(self) -> str: + @pulumi.getter + def scale(self) -> Optional[int]: """ - Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} + Column scale. """ - return pulumi.get(self, "source_connection_profile") + return pulumi.get(self, "scale") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfig(dict): +class StreamSourceConfigOracleSourceConfigStreamLargeObjects(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class StreamSourceConfigPostgresqlSourceConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "excludeObjects": + if key == "replicationSlot": + suggest = "replication_slot" + elif key == "excludeObjects": suggest = "exclude_objects" elif key == "includeObjects": suggest = "include_objects" - elif key == "maxConcurrentCdcTasks": - suggest = "max_concurrent_cdc_tasks" + elif key == "maxConcurrentBackfillTasks": + suggest = "max_concurrent_backfill_tasks" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfig. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfig. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfig.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfig.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfig.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfig.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - exclude_objects: Optional['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjects'] = None, - include_objects: Optional['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjects'] = None, - max_concurrent_cdc_tasks: Optional[int] = None): - """ - :param 'StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs' exclude_objects: MySQL objects to exclude from the stream. + publication: str, + replication_slot: str, + exclude_objects: Optional['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjects'] = None, + include_objects: Optional['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjects'] = None, + max_concurrent_backfill_tasks: Optional[int] = None): + """ + :param str publication: The name of the publication that includes the set of all tables + that are defined in the stream's include_objects. + :param str replication_slot: The name of the logical replication slot that's configured with + the pgoutput plugin. + :param 'StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs' exclude_objects: PostgreSQL objects to exclude from the stream. Structure is documented below. - :param 'StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs' include_objects: MySQL objects to retrieve from the source. + :param 'StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs' include_objects: PostgreSQL objects to retrieve from the source. Structure is documented below. - :param int max_concurrent_cdc_tasks: Maximum number of concurrent CDC tasks. The number should be non negative. - If not set (or set to 0), the system's default value will be used. + :param int max_concurrent_backfill_tasks: Maximum number of concurrent backfill tasks. The number should be non + negative. If not set (or set to 0), the system's default value will be used. """ + pulumi.set(__self__, "publication", publication) + pulumi.set(__self__, "replication_slot", replication_slot) if exclude_objects is not None: pulumi.set(__self__, "exclude_objects", exclude_objects) if include_objects is not None: pulumi.set(__self__, "include_objects", include_objects) - if max_concurrent_cdc_tasks is not None: - pulumi.set(__self__, "max_concurrent_cdc_tasks", max_concurrent_cdc_tasks) + if max_concurrent_backfill_tasks is not None: + pulumi.set(__self__, "max_concurrent_backfill_tasks", max_concurrent_backfill_tasks) + + @property + @pulumi.getter + def publication(self) -> str: + """ + The name of the publication that includes the set of all tables + that are defined in the stream's include_objects. + """ + return pulumi.get(self, "publication") + + @property + @pulumi.getter(name="replicationSlot") + def replication_slot(self) -> str: + """ + The name of the logical replication slot that's configured with + the pgoutput plugin. + """ + return pulumi.get(self, "replication_slot") @property @pulumi.getter(name="excludeObjects") - def exclude_objects(self) -> Optional['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjects']: + def exclude_objects(self) -> Optional['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjects']: """ - MySQL objects to exclude from the stream. + PostgreSQL objects to exclude from the stream. Structure is documented below. """ return pulumi.get(self, "exclude_objects") @property @pulumi.getter(name="includeObjects") - def include_objects(self) -> Optional['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjects']: + def include_objects(self) -> Optional['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjects']: """ - MySQL objects to retrieve from the source. + PostgreSQL objects to retrieve from the source. Structure is documented below. """ return pulumi.get(self, "include_objects") @property - @pulumi.getter(name="maxConcurrentCdcTasks") - def max_concurrent_cdc_tasks(self) -> Optional[int]: + @pulumi.getter(name="maxConcurrentBackfillTasks") + def max_concurrent_backfill_tasks(self) -> Optional[int]: """ - Maximum number of concurrent CDC tasks. The number should be non negative. - If not set (or set to 0), the system's default value will be used. + Maximum number of concurrent backfill tasks. The number should be non + negative. If not set (or set to 0), the system's default value will be used. """ - return pulumi.get(self, "max_concurrent_cdc_tasks") + return pulumi.get(self, "max_concurrent_backfill_tasks") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigExcludeObjects(dict): +class StreamSourceConfigPostgresqlSourceConfigExcludeObjects(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlDatabases": - suggest = "mysql_databases" + if key == "postgresqlSchemas": + suggest = "postgresql_schemas" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjects. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigExcludeObjects. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjects.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjects.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjects.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjects.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - mysql_databases: Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase']): + postgresql_schemas: Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema']): """ - :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs'] mysql_databases: MySQL databases on the server + :param Sequence['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs'] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. """ - pulumi.set(__self__, "mysql_databases", mysql_databases) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="mysqlDatabases") - def mysql_databases(self) -> Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase']: + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema']: """ - MySQL databases on the server + PostgreSQL schemas on the server Structure is documented below. """ - return pulumi.get(self, "mysql_databases") + return pulumi.get(self, "postgresql_schemas") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase(dict): +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlTables": - suggest = "mysql_tables" + if key == "postgresqlTables": + suggest = "postgresql_tables" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - database: str, - mysql_tables: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable']] = None): + schema: str, + postgresql_tables: Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable']] = None): """ - :param str database: Database name. - :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs'] mysql_tables: Tables in the database. + :param str schema: Database name. + :param Sequence['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs'] postgresql_tables: Tables in the schema. Structure is documented below. """ - pulumi.set(__self__, "database", database) - if mysql_tables is not None: - pulumi.set(__self__, "mysql_tables", mysql_tables) + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property @pulumi.getter - def database(self) -> str: + def schema(self) -> str: """ Database name. """ - return pulumi.get(self, "database") + return pulumi.get(self, "schema") @property - @pulumi.getter(name="mysqlTables") - def mysql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable']]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable']]: """ - Tables in the database. + Tables in the schema. Structure is documented below. """ - return pulumi.get(self, "mysql_tables") + return pulumi.get(self, "postgresql_tables") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable(dict): +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlColumns": - suggest = "mysql_columns" + if key == "postgresqlColumns": + suggest = "postgresql_columns" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) return super().get(key, default) def __init__(__self__, *, table: str, - mysql_columns: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn']] = None): + postgresql_columns: Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']] = None): """ :param str table: Table name. - :param Sequence['StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs'] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + :param Sequence['StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs'] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ pulumi.set(__self__, "table", table) - if mysql_columns is not None: - pulumi.set(__self__, "mysql_columns", mysql_columns) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property @pulumi.getter @@ -1628,17 +3523,17 @@ def table(self) -> str: return pulumi.get(self, "table") @property - @pulumi.getter(name="mysqlColumns") - def mysql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn']]: + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']]: """ - MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "mysql_columns") + return pulumi.get(self, "postgresql_columns") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn(dict): +class StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(dict): @staticmethod def __key_warning(key: str): suggest = None @@ -1650,36 +3545,36 @@ def __key_warning(key: str): suggest = "primary_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - collation: Optional[str] = None, column: Optional[str] = None, data_type: Optional[str] = None, length: Optional[int] = None, nullable: Optional[bool] = None, ordinal_position: Optional[int] = None, - primary_key: Optional[bool] = None): + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): """ - :param str collation: Column collation. :param str column: Column name. - :param str data_type: The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param str data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html :param int length: Column length. :param bool nullable: Whether or not the column can accept a null value. :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. """ - if collation is not None: - pulumi.set(__self__, "collation", collation) if column is not None: pulumi.set(__self__, "column", column) if data_type is not None: @@ -1690,16 +3585,12 @@ def __init__(__self__, *, pulumi.set(__self__, "nullable", nullable) if ordinal_position is not None: pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) if primary_key is not None: pulumi.set(__self__, "primary_key", primary_key) - - @property - @pulumi.getter - def collation(self) -> Optional[str]: - """ - Column collation. - """ - return pulumi.get(self, "collation") + if scale is not None: + pulumi.set(__self__, "scale", scale) @property @pulumi.getter @@ -1713,8 +3604,8 @@ def column(self) -> Optional[str]: @pulumi.getter(name="dataType") def data_type(self) -> Optional[str]: """ - The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html """ return pulumi.get(self, "data_type") @@ -1742,6 +3633,14 @@ def ordinal_position(self) -> Optional[int]: """ return pulumi.get(self, "ordinal_position") + @property + @pulumi.getter + def precision(self) -> Optional[int]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + @property @pulumi.getter(name="primaryKey") def primary_key(self) -> Optional[bool]: @@ -1750,123 +3649,131 @@ def primary_key(self) -> Optional[bool]: """ return pulumi.get(self, "primary_key") + @property + @pulumi.getter + def scale(self) -> Optional[int]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigIncludeObjects(dict): +class StreamSourceConfigPostgresqlSourceConfigIncludeObjects(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlDatabases": - suggest = "mysql_databases" + if key == "postgresqlSchemas": + suggest = "postgresql_schemas" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjects. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigIncludeObjects. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjects.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjects.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjects.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjects.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - mysql_databases: Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase']): + postgresql_schemas: Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema']): """ - :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs'] mysql_databases: MySQL databases on the server + :param Sequence['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs'] postgresql_schemas: PostgreSQL schemas on the server Structure is documented below. """ - pulumi.set(__self__, "mysql_databases", mysql_databases) + pulumi.set(__self__, "postgresql_schemas", postgresql_schemas) @property - @pulumi.getter(name="mysqlDatabases") - def mysql_databases(self) -> Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase']: + @pulumi.getter(name="postgresqlSchemas") + def postgresql_schemas(self) -> Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema']: """ - MySQL databases on the server + PostgreSQL schemas on the server Structure is documented below. """ - return pulumi.get(self, "mysql_databases") + return pulumi.get(self, "postgresql_schemas") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase(dict): +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlTables": - suggest = "mysql_tables" + if key == "postgresqlTables": + suggest = "postgresql_tables" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - database: str, - mysql_tables: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable']] = None): + schema: str, + postgresql_tables: Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable']] = None): """ - :param str database: Database name. - :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs'] mysql_tables: Tables in the database. + :param str schema: Database name. + :param Sequence['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs'] postgresql_tables: Tables in the schema. Structure is documented below. """ - pulumi.set(__self__, "database", database) - if mysql_tables is not None: - pulumi.set(__self__, "mysql_tables", mysql_tables) + pulumi.set(__self__, "schema", schema) + if postgresql_tables is not None: + pulumi.set(__self__, "postgresql_tables", postgresql_tables) @property @pulumi.getter - def database(self) -> str: + def schema(self) -> str: """ Database name. """ - return pulumi.get(self, "database") + return pulumi.get(self, "schema") @property - @pulumi.getter(name="mysqlTables") - def mysql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable']]: + @pulumi.getter(name="postgresqlTables") + def postgresql_tables(self) -> Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable']]: """ - Tables in the database. + Tables in the schema. Structure is documented below. """ - return pulumi.get(self, "mysql_tables") + return pulumi.get(self, "postgresql_tables") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable(dict): +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "mysqlColumns": - suggest = "mysql_columns" + if key == "postgresqlColumns": + suggest = "postgresql_columns" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable.__key_warning(key) return super().get(key, default) def __init__(__self__, *, table: str, - mysql_columns: Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn']] = None): + postgresql_columns: Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']] = None): """ :param str table: Table name. - :param Sequence['StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs'] mysql_columns: MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + :param Sequence['StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs'] postgresql_columns: PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ pulumi.set(__self__, "table", table) - if mysql_columns is not None: - pulumi.set(__self__, "mysql_columns", mysql_columns) + if postgresql_columns is not None: + pulumi.set(__self__, "postgresql_columns", postgresql_columns) @property @pulumi.getter @@ -1877,17 +3784,17 @@ def table(self) -> str: return pulumi.get(self, "table") @property - @pulumi.getter(name="mysqlColumns") - def mysql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn']]: + @pulumi.getter(name="postgresqlColumns") + def postgresql_columns(self) -> Optional[Sequence['outputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn']]: """ - MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. + PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything. Structure is documented below. """ - return pulumi.get(self, "mysql_columns") + return pulumi.get(self, "postgresql_columns") @pulumi.output_type -class StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn(dict): +class StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn(dict): @staticmethod def __key_warning(key: str): suggest = None @@ -1899,36 +3806,36 @@ def __key_warning(key: str): suggest = "primary_key" if suggest: - pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn. Access the value via the '{suggest}' property getter instead.") + pulumi.log.warn(f"Key '{key}' not found in StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn. Access the value via the '{suggest}' property getter instead.") def __getitem__(self, key: str) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().__getitem__(key) def get(self, key: str, default = None) -> Any: - StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn.__key_warning(key) + StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn.__key_warning(key) return super().get(key, default) def __init__(__self__, *, - collation: Optional[str] = None, column: Optional[str] = None, data_type: Optional[str] = None, length: Optional[int] = None, nullable: Optional[bool] = None, ordinal_position: Optional[int] = None, - primary_key: Optional[bool] = None): + precision: Optional[int] = None, + primary_key: Optional[bool] = None, + scale: Optional[int] = None): """ - :param str collation: Column collation. :param str column: Column name. - :param str data_type: The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + :param str data_type: The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html :param int length: Column length. :param bool nullable: Whether or not the column can accept a null value. :param int ordinal_position: The ordinal position of the column in the table. + :param int precision: Column precision. :param bool primary_key: Whether or not the column represents a primary key. + :param int scale: Column scale. """ - if collation is not None: - pulumi.set(__self__, "collation", collation) if column is not None: pulumi.set(__self__, "column", column) if data_type is not None: @@ -1939,16 +3846,12 @@ def __init__(__self__, *, pulumi.set(__self__, "nullable", nullable) if ordinal_position is not None: pulumi.set(__self__, "ordinal_position", ordinal_position) + if precision is not None: + pulumi.set(__self__, "precision", precision) if primary_key is not None: pulumi.set(__self__, "primary_key", primary_key) - - @property - @pulumi.getter - def collation(self) -> Optional[str]: - """ - Column collation. - """ - return pulumi.get(self, "collation") + if scale is not None: + pulumi.set(__self__, "scale", scale) @property @pulumi.getter @@ -1962,8 +3865,8 @@ def column(self) -> Optional[str]: @pulumi.getter(name="dataType") def data_type(self) -> Optional[str]: """ - The MySQL data type. Full data types list can be found here: - https://dev.mysql.com/doc/refman/8.0/en/data-types.html + The PostgreSQL data type. Full data types list can be found here: + https://www.postgresql.org/docs/current/datatype.html """ return pulumi.get(self, "data_type") @@ -1991,6 +3894,14 @@ def ordinal_position(self) -> Optional[int]: """ return pulumi.get(self, "ordinal_position") + @property + @pulumi.getter + def precision(self) -> Optional[int]: + """ + Column precision. + """ + return pulumi.get(self, "precision") + @property @pulumi.getter(name="primaryKey") def primary_key(self) -> Optional[bool]: @@ -1999,4 +3910,12 @@ def primary_key(self) -> Optional[bool]: """ return pulumi.get(self, "primary_key") + @property + @pulumi.getter + def scale(self) -> Optional[int]: + """ + Column scale. + """ + return pulumi.get(self, "scale") + diff --git a/sdk/python/pulumi_gcp/datastream/stream.py b/sdk/python/pulumi_gcp/datastream/stream.py index d85a4dec1c..232ac02052 100644 --- a/sdk/python/pulumi_gcp/datastream/stream.py +++ b/sdk/python/pulumi_gcp/datastream/stream.py @@ -616,6 +616,170 @@ def __init__(__self__, customer_managed_encryption_key="kms-name", opts=pulumi.ResourceOptions(depends_on=[key_user])) ``` + ### Datastream Stream Postgresql + + ```python + import pulumi + import pulumi_gcp as gcp + + source = gcp.datastream.ConnectionProfile("source", + display_name="Postgresql Source", + location="us-central1", + connection_profile_id="source-profile", + postgresql_profile=gcp.datastream.ConnectionProfilePostgresqlProfileArgs( + hostname="hostname", + port=3306, + username="user", + password="pass", + database="postgres", + )) + destination = gcp.datastream.ConnectionProfile("destination", + display_name="BigQuery Destination", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs()) + default = gcp.datastream.Stream("default", + display_name="Postgres to BigQuery", + location="us-central1", + stream_id="my-stream", + desired_state="RUNNING", + source_config=gcp.datastream.StreamSourceConfigArgs( + source_connection_profile=source.id, + postgresql_source_config=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigArgs( + max_concurrent_backfill_tasks=12, + publication="publication", + replication_slot="replication_slot", + include_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + exclude_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + ), + ), + destination_config=gcp.datastream.StreamDestinationConfigArgs( + destination_connection_profile=destination.id, + bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs( + data_freshness="900s", + source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs( + dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs( + location="us-central1", + ), + ), + ), + ), + backfill_all=gcp.datastream.StreamBackfillAllArgs( + postgresql_excluded_objects=gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + )) + ``` + ### Datastream Stream Oracle + + ```python + import pulumi + import pulumi_gcp as gcp + + source = gcp.datastream.ConnectionProfile("source", + display_name="Oracle Source", + location="us-central1", + connection_profile_id="source-profile", + oracle_profile=gcp.datastream.ConnectionProfileOracleProfileArgs( + hostname="hostname", + port=1521, + username="user", + password="pass", + database_service="ORCL", + )) + destination = gcp.datastream.ConnectionProfile("destination", + display_name="BigQuery Destination", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs()) + stream5 = gcp.datastream.Stream("stream5", + display_name="Oracle to BigQuery", + location="us-central1", + stream_id="my-stream", + desired_state="RUNNING", + source_config=gcp.datastream.StreamSourceConfigArgs( + source_connection_profile=source.id, + oracle_source_config=gcp.datastream.StreamSourceConfigOracleSourceConfigArgs( + max_concurrent_cdc_tasks=8, + max_concurrent_backfill_tasks=12, + include_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs( + oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + exclude_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs( + oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + drop_large_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(), + ), + ), + destination_config=gcp.datastream.StreamDestinationConfigArgs( + destination_connection_profile=destination.id, + bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs( + data_freshness="900s", + source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs( + dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs( + location="us-central1", + ), + ), + ), + ), + backfill_all=gcp.datastream.StreamBackfillAllArgs( + oracle_excluded_objects=gcp.datastream.StreamBackfillAllOracleExcludedObjectsArgs( + oracle_schemas=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + )) + ``` ### Datastream Stream Bigquery ```python @@ -916,6 +1080,170 @@ def __init__(__self__, customer_managed_encryption_key="kms-name", opts=pulumi.ResourceOptions(depends_on=[key_user])) ``` + ### Datastream Stream Postgresql + + ```python + import pulumi + import pulumi_gcp as gcp + + source = gcp.datastream.ConnectionProfile("source", + display_name="Postgresql Source", + location="us-central1", + connection_profile_id="source-profile", + postgresql_profile=gcp.datastream.ConnectionProfilePostgresqlProfileArgs( + hostname="hostname", + port=3306, + username="user", + password="pass", + database="postgres", + )) + destination = gcp.datastream.ConnectionProfile("destination", + display_name="BigQuery Destination", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs()) + default = gcp.datastream.Stream("default", + display_name="Postgres to BigQuery", + location="us-central1", + stream_id="my-stream", + desired_state="RUNNING", + source_config=gcp.datastream.StreamSourceConfigArgs( + source_connection_profile=source.id, + postgresql_source_config=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigArgs( + max_concurrent_backfill_tasks=12, + publication="publication", + replication_slot="replication_slot", + include_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + exclude_objects=gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + ), + ), + destination_config=gcp.datastream.StreamDestinationConfigArgs( + destination_connection_profile=destination.id, + bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs( + data_freshness="900s", + source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs( + dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs( + location="us-central1", + ), + ), + ), + ), + backfill_all=gcp.datastream.StreamBackfillAllArgs( + postgresql_excluded_objects=gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs( + postgresql_schemas=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs( + schema="schema", + postgresql_tables=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs( + table="table", + postgresql_columns=[gcp.datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs( + column="column", + )], + )], + )], + ), + )) + ``` + ### Datastream Stream Oracle + + ```python + import pulumi + import pulumi_gcp as gcp + + source = gcp.datastream.ConnectionProfile("source", + display_name="Oracle Source", + location="us-central1", + connection_profile_id="source-profile", + oracle_profile=gcp.datastream.ConnectionProfileOracleProfileArgs( + hostname="hostname", + port=1521, + username="user", + password="pass", + database_service="ORCL", + )) + destination = gcp.datastream.ConnectionProfile("destination", + display_name="BigQuery Destination", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile=gcp.datastream.ConnectionProfileBigqueryProfileArgs()) + stream5 = gcp.datastream.Stream("stream5", + display_name="Oracle to BigQuery", + location="us-central1", + stream_id="my-stream", + desired_state="RUNNING", + source_config=gcp.datastream.StreamSourceConfigArgs( + source_connection_profile=source.id, + oracle_source_config=gcp.datastream.StreamSourceConfigOracleSourceConfigArgs( + max_concurrent_cdc_tasks=8, + max_concurrent_backfill_tasks=12, + include_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs( + oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + exclude_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs( + oracle_schemas=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + drop_large_objects=gcp.datastream.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs(), + ), + ), + destination_config=gcp.datastream.StreamDestinationConfigArgs( + destination_connection_profile=destination.id, + bigquery_destination_config=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigArgs( + data_freshness="900s", + source_hierarchy_datasets=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs( + dataset_template=gcp.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs( + location="us-central1", + ), + ), + ), + ), + backfill_all=gcp.datastream.StreamBackfillAllArgs( + oracle_excluded_objects=gcp.datastream.StreamBackfillAllOracleExcludedObjectsArgs( + oracle_schemas=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs( + schema="schema", + oracle_tables=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs( + table="table", + oracle_columns=[gcp.datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs( + column="column", + )], + )], + )], + ), + )) + ``` ### Datastream Stream Bigquery ```python diff --git a/sdk/python/pulumi_gcp/eventarc/channel.py b/sdk/python/pulumi_gcp/eventarc/channel.py index 79ad2f5707..ed8ff77b0a 100644 --- a/sdk/python/pulumi_gcp/eventarc/channel.py +++ b/sdk/python/pulumi_gcp/eventarc/channel.py @@ -307,16 +307,16 @@ def __init__(__self__, location="us-west1") key = gcp.kms.get_kms_crypto_key(name="key", key_ring=test_key_ring.id) - key1_binding = gcp.kms.CryptoKeyIAMBinding("key1Binding", + key1_member = gcp.kms.CryptoKeyIAMMember("key1Member", crypto_key_id=data["google_kms_crypto_key"]["key1"]["id"], role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - members=[f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com"]) + member=f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com") primary = gcp.eventarc.Channel("primary", location="us-west1", project=test_project.project_id, crypto_key_name=data["google_kms_crypto_key"]["key1"]["id"], third_party_provider=f"projects/{test_project.project_id}/locations/us-west1/providers/datadog", - opts=pulumi.ResourceOptions(depends_on=[key1_binding])) + opts=pulumi.ResourceOptions(depends_on=[key1_member])) ``` ## Import @@ -363,16 +363,16 @@ def __init__(__self__, location="us-west1") key = gcp.kms.get_kms_crypto_key(name="key", key_ring=test_key_ring.id) - key1_binding = gcp.kms.CryptoKeyIAMBinding("key1Binding", + key1_member = gcp.kms.CryptoKeyIAMMember("key1Member", crypto_key_id=data["google_kms_crypto_key"]["key1"]["id"], role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - members=[f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com"]) + member=f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com") primary = gcp.eventarc.Channel("primary", location="us-west1", project=test_project.project_id, crypto_key_name=data["google_kms_crypto_key"]["key1"]["id"], third_party_provider=f"projects/{test_project.project_id}/locations/us-west1/providers/datadog", - opts=pulumi.ResourceOptions(depends_on=[key1_binding])) + opts=pulumi.ResourceOptions(depends_on=[key1_member])) ``` ## Import diff --git a/sdk/python/pulumi_gcp/eventarc/google_channel_config.py b/sdk/python/pulumi_gcp/eventarc/google_channel_config.py index 60c8954af3..22e93b724c 100644 --- a/sdk/python/pulumi_gcp/eventarc/google_channel_config.py +++ b/sdk/python/pulumi_gcp/eventarc/google_channel_config.py @@ -194,15 +194,15 @@ def __init__(__self__, location="us-west1") key = gcp.kms.get_kms_crypto_key(name="key", key_ring=test_key_ring.id) - key1_binding = gcp.kms.CryptoKeyIAMBinding("key1Binding", + key1_member = gcp.kms.CryptoKeyIAMMember("key1Member", crypto_key_id=data["google_kms_crypto_key"]["key1"]["id"], role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - members=[f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com"]) + member=f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com") primary = gcp.eventarc.GoogleChannelConfig("primary", location="us-west1", project=test_project.project_id, crypto_key_name=data["google_kms_crypto_key"]["key1"]["id"], - opts=pulumi.ResourceOptions(depends_on=[key1_binding])) + opts=pulumi.ResourceOptions(depends_on=[key1_member])) ``` ## Import @@ -248,15 +248,15 @@ def __init__(__self__, location="us-west1") key = gcp.kms.get_kms_crypto_key(name="key", key_ring=test_key_ring.id) - key1_binding = gcp.kms.CryptoKeyIAMBinding("key1Binding", + key1_member = gcp.kms.CryptoKeyIAMMember("key1Member", crypto_key_id=data["google_kms_crypto_key"]["key1"]["id"], role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - members=[f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com"]) + member=f"serviceAccount:service-{test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com") primary = gcp.eventarc.GoogleChannelConfig("primary", location="us-west1", project=test_project.project_id, crypto_key_name=data["google_kms_crypto_key"]["key1"]["id"], - opts=pulumi.ResourceOptions(depends_on=[key1_binding])) + opts=pulumi.ResourceOptions(depends_on=[key1_member])) ``` ## Import diff --git a/sdk/python/pulumi_gcp/firebase/android_app.py b/sdk/python/pulumi_gcp/firebase/android_app.py index f1ff0f9613..e030a12781 100644 --- a/sdk/python/pulumi_gcp/firebase/android_app.py +++ b/sdk/python/pulumi_gcp/firebase/android_app.py @@ -25,7 +25,7 @@ def __init__(__self__, *, :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp. :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. @@ -63,7 +63,7 @@ def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. """ return pulumi.get(self, "deletion_policy") @@ -140,7 +140,7 @@ def __init__(__self__, *, This identifier should be treated as an opaque token, as the data format is not specified. :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp. :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. @@ -191,7 +191,7 @@ def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. """ return pulumi.get(self, "deletion_policy") @@ -341,7 +341,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp. :param pulumi.Input[str] package_name: Immutable. The canonical package name of the Android app as would appear in the Google Play Developer Console. @@ -464,7 +464,7 @@ def get(resource_name: str, This identifier should be treated as an opaque token, as the data format is not specified. :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the AndroidApp. :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, and it may be sent with update requests to ensure the client has an up-to-date value before proceeding. @@ -507,7 +507,7 @@ def deletion_policy(self) -> pulumi.Output[Optional[str]]: """ (Optional) Set to 'ABANDON' to allow the AndroidApp to be untracked from terraform state rather than deleted upon 'terraform destroy'. This is useful because the AndroidApp may be serving traffic. Set to 'DELETE' to delete the - AndroidApp. Default to 'DELETE'. + AndroidApp. Defaults to 'DELETE'. """ return pulumi.get(self, "deletion_policy") diff --git a/sdk/python/pulumi_gcp/firebase/apple_app.py b/sdk/python/pulumi_gcp/firebase/apple_app.py index 84e0734625..8a97cd091b 100644 --- a/sdk/python/pulumi_gcp/firebase/apple_app.py +++ b/sdk/python/pulumi_gcp/firebase/apple_app.py @@ -25,9 +25,9 @@ def __init__(__self__, *, :param pulumi.Input[str] display_name: The user-assigned display name of the App. :param pulumi.Input[str] app_store_id: The automatically generated Apple ID assigned to the Apple app by Apple in the Apple App Store. :param pulumi.Input[str] bundle_id: The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. - :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] team_id: The Apple Developer Team ID associated with the App in the App Store. @@ -84,9 +84,9 @@ def bundle_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ - (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. """ return pulumi.get(self, "deletion_policy") @@ -137,9 +137,9 @@ def __init__(__self__, *, This identifier should be treated as an opaque token, as the data format is not specified. :param pulumi.Input[str] app_store_id: The automatically generated Apple ID assigned to the Apple app by Apple in the Apple App Store. :param pulumi.Input[str] bundle_id: The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. - :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the App. :param pulumi.Input[str] name: The fully qualified resource name of the App, for example: projects/projectId/iosApps/appId @@ -205,9 +205,9 @@ def bundle_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> Optional[pulumi.Input[str]]: """ - (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. """ return pulumi.get(self, "deletion_policy") @@ -331,9 +331,9 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] app_store_id: The automatically generated Apple ID assigned to the Apple app by Apple in the Apple App Store. :param pulumi.Input[str] bundle_id: The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. - :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the App. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. @@ -463,9 +463,9 @@ def get(resource_name: str, This identifier should be treated as an opaque token, as the data format is not specified. :param pulumi.Input[str] app_store_id: The automatically generated Apple ID assigned to the Apple app by Apple in the Apple App Store. :param pulumi.Input[str] bundle_id: The canonical bundle ID of the Apple app as it would appear in the Apple AppStore. - :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + :param pulumi.Input[str] deletion_policy: (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. :param pulumi.Input[str] display_name: The user-assigned display name of the App. :param pulumi.Input[str] name: The fully qualified resource name of the App, for example: projects/projectId/iosApps/appId @@ -516,9 +516,9 @@ def bundle_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="deletionPolicy") def deletion_policy(self) -> pulumi.Output[Optional[str]]: """ - (Optional) Set to 'ABANDON' to allow the AppleApp to be untracked from terraform state rather than deleted upon - 'terraform destroy'. This is useful because the AppleApp may be serving traffic. Set to 'DELETE' to delete the AppleApp. - Default to 'DELETE'. + (Optional) Set to 'ABANDON' to allow the Apple to be untracked from terraform state rather than deleted upon 'terraform + destroy'. This is useful because the Apple may be serving traffic. Set to 'DELETE' to delete the Apple. Defaults to + 'DELETE'. """ return pulumi.get(self, "deletion_policy") diff --git a/sdk/python/pulumi_gcp/firestore/__init__.py b/sdk/python/pulumi_gcp/firestore/__init__.py index 86ed89abda..81a4db3929 100644 --- a/sdk/python/pulumi_gcp/firestore/__init__.py +++ b/sdk/python/pulumi_gcp/firestore/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .database import * from .document import * from .index import * from ._inputs import * diff --git a/sdk/python/pulumi_gcp/firestore/database.py b/sdk/python/pulumi_gcp/firestore/database.py new file mode 100644 index 0000000000..1099ccc0be --- /dev/null +++ b/sdk/python/pulumi_gcp/firestore/database.py @@ -0,0 +1,602 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['DatabaseArgs', 'Database'] + +@pulumi.input_type +class DatabaseArgs: + def __init__(__self__, *, + location_id: pulumi.Input[str], + type: pulumi.Input[str], + app_engine_integration_mode: Optional[pulumi.Input[str]] = None, + concurrency_mode: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a Database resource. + :param pulumi.Input[str] location_id: The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + :param pulumi.Input[str] type: The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + :param pulumi.Input[str] app_engine_integration_mode: The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + :param pulumi.Input[str] concurrency_mode: The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + :param pulumi.Input[str] name: Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + pulumi.set(__self__, "location_id", location_id) + pulumi.set(__self__, "type", type) + if app_engine_integration_mode is not None: + pulumi.set(__self__, "app_engine_integration_mode", app_engine_integration_mode) + if concurrency_mode is not None: + pulumi.set(__self__, "concurrency_mode", concurrency_mode) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + + @property + @pulumi.getter(name="locationId") + def location_id(self) -> pulumi.Input[str]: + """ + The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + """ + return pulumi.get(self, "location_id") + + @location_id.setter + def location_id(self, value: pulumi.Input[str]): + pulumi.set(self, "location_id", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="appEngineIntegrationMode") + def app_engine_integration_mode(self) -> Optional[pulumi.Input[str]]: + """ + The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "app_engine_integration_mode") + + @app_engine_integration_mode.setter + def app_engine_integration_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "app_engine_integration_mode", value) + + @property + @pulumi.getter(name="concurrencyMode") + def concurrency_mode(self) -> Optional[pulumi.Input[str]]: + """ + The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + """ + return pulumi.get(self, "concurrency_mode") + + @concurrency_mode.setter + def concurrency_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "concurrency_mode", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + +@pulumi.input_type +class _DatabaseState: + def __init__(__self__, *, + app_engine_integration_mode: Optional[pulumi.Input[str]] = None, + concurrency_mode: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + key_prefix: Optional[pulumi.Input[str]] = None, + location_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering Database resources. + :param pulumi.Input[str] app_engine_integration_mode: The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + :param pulumi.Input[str] concurrency_mode: The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + :param pulumi.Input[str] create_time: The timestamp at which this database was created. + :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, + and may be sent on update and delete requests to ensure the client has an + up-to-date value before proceeding. + :param pulumi.Input[str] key_prefix: Output only. The keyPrefix for this database. + This keyPrefix is used, in combination with the project id ("~") to construct the application id + that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + :param pulumi.Input[str] location_id: The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + :param pulumi.Input[str] name: Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] type: The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + if app_engine_integration_mode is not None: + pulumi.set(__self__, "app_engine_integration_mode", app_engine_integration_mode) + if concurrency_mode is not None: + pulumi.set(__self__, "concurrency_mode", concurrency_mode) + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if etag is not None: + pulumi.set(__self__, "etag", etag) + if key_prefix is not None: + pulumi.set(__self__, "key_prefix", key_prefix) + if location_id is not None: + pulumi.set(__self__, "location_id", location_id) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="appEngineIntegrationMode") + def app_engine_integration_mode(self) -> Optional[pulumi.Input[str]]: + """ + The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "app_engine_integration_mode") + + @app_engine_integration_mode.setter + def app_engine_integration_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "app_engine_integration_mode", value) + + @property + @pulumi.getter(name="concurrencyMode") + def concurrency_mode(self) -> Optional[pulumi.Input[str]]: + """ + The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + """ + return pulumi.get(self, "concurrency_mode") + + @concurrency_mode.setter + def concurrency_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "concurrency_mode", value) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + The timestamp at which this database was created. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter + def etag(self) -> Optional[pulumi.Input[str]]: + """ + This checksum is computed by the server based on the value of other fields, + and may be sent on update and delete requests to ensure the client has an + up-to-date value before proceeding. + """ + return pulumi.get(self, "etag") + + @etag.setter + def etag(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "etag", value) + + @property + @pulumi.getter(name="keyPrefix") + def key_prefix(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The keyPrefix for this database. + This keyPrefix is used, in combination with the project id ("~") to construct the application id + that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + """ + return pulumi.get(self, "key_prefix") + + @key_prefix.setter + def key_prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_prefix", value) + + @property + @pulumi.getter(name="locationId") + def location_id(self) -> Optional[pulumi.Input[str]]: + """ + The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + """ + return pulumi.get(self, "location_id") + + @location_id.setter + def location_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +class Database(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + app_engine_integration_mode: Optional[pulumi.Input[str]] = None, + concurrency_mode: Optional[pulumi.Input[str]] = None, + location_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ## Import + + Database can be imported using any of these accepted formats + + ```sh + $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} + ``` + + ```sh + $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:firestore/database:Database default {{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_engine_integration_mode: The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + :param pulumi.Input[str] concurrency_mode: The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + :param pulumi.Input[str] location_id: The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + :param pulumi.Input[str] name: Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] type: The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DatabaseArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ## Import + + Database can be imported using any of these accepted formats + + ```sh + $ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}} + ``` + + ```sh + $ pulumi import gcp:firestore/database:Database default {{project}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:firestore/database:Database default {{name}} + ``` + + :param str resource_name: The name of the resource. + :param DatabaseArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DatabaseArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + app_engine_integration_mode: Optional[pulumi.Input[str]] = None, + concurrency_mode: Optional[pulumi.Input[str]] = None, + location_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DatabaseArgs.__new__(DatabaseArgs) + + __props__.__dict__["app_engine_integration_mode"] = app_engine_integration_mode + __props__.__dict__["concurrency_mode"] = concurrency_mode + if location_id is None and not opts.urn: + raise TypeError("Missing required property 'location_id'") + __props__.__dict__["location_id"] = location_id + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + if type is None and not opts.urn: + raise TypeError("Missing required property 'type'") + __props__.__dict__["type"] = type + __props__.__dict__["create_time"] = None + __props__.__dict__["etag"] = None + __props__.__dict__["key_prefix"] = None + super(Database, __self__).__init__( + 'gcp:firestore/database:Database', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + app_engine_integration_mode: Optional[pulumi.Input[str]] = None, + concurrency_mode: Optional[pulumi.Input[str]] = None, + create_time: Optional[pulumi.Input[str]] = None, + etag: Optional[pulumi.Input[str]] = None, + key_prefix: Optional[pulumi.Input[str]] = None, + location_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None) -> 'Database': + """ + Get an existing Database resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_engine_integration_mode: The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + :param pulumi.Input[str] concurrency_mode: The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + :param pulumi.Input[str] create_time: The timestamp at which this database was created. + :param pulumi.Input[str] etag: This checksum is computed by the server based on the value of other fields, + and may be sent on update and delete requests to ensure the client has an + up-to-date value before proceeding. + :param pulumi.Input[str] key_prefix: Output only. The keyPrefix for this database. + This keyPrefix is used, in combination with the project id ("~") to construct the application id + that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + :param pulumi.Input[str] location_id: The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + :param pulumi.Input[str] name: Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[str] type: The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DatabaseState.__new__(_DatabaseState) + + __props__.__dict__["app_engine_integration_mode"] = app_engine_integration_mode + __props__.__dict__["concurrency_mode"] = concurrency_mode + __props__.__dict__["create_time"] = create_time + __props__.__dict__["etag"] = etag + __props__.__dict__["key_prefix"] = key_prefix + __props__.__dict__["location_id"] = location_id + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["type"] = type + return Database(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="appEngineIntegrationMode") + def app_engine_integration_mode(self) -> pulumi.Output[str]: + """ + The App Engine integration mode to use for this database. + Possible values are `ENABLED` and `DISABLED`. + """ + return pulumi.get(self, "app_engine_integration_mode") + + @property + @pulumi.getter(name="concurrencyMode") + def concurrency_mode(self) -> pulumi.Output[str]: + """ + The concurrency control mode to use for this database. + Possible values are `OPTIMISTIC`, `PESSIMISTIC`, and `OPTIMISTIC_WITH_ENTITY_GROUPS`. + """ + return pulumi.get(self, "concurrency_mode") + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + The timestamp at which this database was created. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def etag(self) -> pulumi.Output[str]: + """ + This checksum is computed by the server based on the value of other fields, + and may be sent on update and delete requests to ensure the client has an + up-to-date value before proceeding. + """ + return pulumi.get(self, "etag") + + @property + @pulumi.getter(name="keyPrefix") + def key_prefix(self) -> pulumi.Output[str]: + """ + Output only. The keyPrefix for this database. + This keyPrefix is used, in combination with the project id ("~") to construct the application id + that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. + This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo). + """ + return pulumi.get(self, "key_prefix") + + @property + @pulumi.getter(name="locationId") + def location_id(self) -> pulumi.Output[str]: + """ + The location of the database. Available databases are listed at + https://cloud.google.com/firestore/docs/locations. + """ + return pulumi.get(self, "location_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Required. The ID to use for the database, which will become the final + component of the database's resource name. This value should be 4-63 + characters. Valid characters are /[a-z][0-9]-/ with first character + a letter and the last a letter or a number. Must not be + UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + "(default)" database id is also valid. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[str]: + """ + The type of the database. + See https://cloud.google.com/datastore/docs/firestore-or-datastore + for information about how to choose. + Possible values are `FIRESTORE_NATIVE` and `DATASTORE_MODE`. + """ + return pulumi.get(self, "type") + diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py index 30090b0419..24615bbefb 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_binding.py @@ -240,9 +240,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -275,10 +272,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -309,9 +303,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` @@ -393,9 +384,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -428,10 +416,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -462,9 +447,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py index 76237e2d8e..87391572f5 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_member.py @@ -240,9 +240,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -275,10 +272,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -309,9 +303,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` @@ -393,9 +384,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -428,10 +416,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -462,9 +447,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` diff --git a/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py b/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py index c2f5cecd54..2bde716511 100644 --- a/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py +++ b/sdk/python/pulumi_gcp/securitycenter/instance_iam_policy.py @@ -189,9 +189,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -224,10 +221,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -258,9 +252,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` @@ -342,9 +333,6 @@ def __init__(__self__, import pulumi_gcp as gcp basic_instance = gcp.datafusion.Instance("basicInstance", - options={ - "prober_test_run": "true", - }, region="us-central1", type="BASIC") ``` @@ -377,10 +365,7 @@ def __init__(__self__, network_config=gcp.datafusion.InstanceNetworkConfigArgs( network="default", ip_allocation=pulumi.Output.all(private_ip_alloc.address, private_ip_alloc.prefix_length).apply(lambda address, prefix_length: f"{address}/{prefix_length}"), - ), - options={ - "prober_test_run": "true", - }) + )) ``` ### Data Fusion Instance Cmek @@ -411,9 +396,6 @@ def __init__(__self__, enterprise_instance = gcp.datafusion.Instance("enterpriseInstance", enable_rbac=True, - options={ - "prober_test_run": "true", - }, region="us-central1", type="ENTERPRISE") ``` diff --git a/sdk/python/pulumi_gcp/sql/_inputs.py b/sdk/python/pulumi_gcp/sql/_inputs.py index 35f234cd7f..f72d47d86a 100644 --- a/sdk/python/pulumi_gcp/sql/_inputs.py +++ b/sdk/python/pulumi_gcp/sql/_inputs.py @@ -1182,11 +1182,13 @@ class DatabaseInstanceSettingsIpConfigurationArgs: def __init__(__self__, *, allocated_ip_range: Optional[pulumi.Input[str]] = None, authorized_networks: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs']]]] = None, + enable_private_path_for_google_cloud_services: Optional[pulumi.Input[bool]] = None, ipv4_enabled: Optional[pulumi.Input[bool]] = None, private_network: Optional[pulumi.Input[str]] = None, require_ssl: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[str] allocated_ip_range: The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression a-z?. + :param pulumi.Input[bool] enable_private_path_for_google_cloud_services: Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. :param pulumi.Input[bool] ipv4_enabled: Whether this Cloud SQL instance should be assigned a public IPV4 address. At least `ipv4_enabled` must be enabled or a `private_network` must be configured. @@ -1201,6 +1203,8 @@ def __init__(__self__, *, pulumi.set(__self__, "allocated_ip_range", allocated_ip_range) if authorized_networks is not None: pulumi.set(__self__, "authorized_networks", authorized_networks) + if enable_private_path_for_google_cloud_services is not None: + pulumi.set(__self__, "enable_private_path_for_google_cloud_services", enable_private_path_for_google_cloud_services) if ipv4_enabled is not None: pulumi.set(__self__, "ipv4_enabled", ipv4_enabled) if private_network is not None: @@ -1229,6 +1233,18 @@ def authorized_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['Da def authorized_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs']]]]): pulumi.set(self, "authorized_networks", value) + @property + @pulumi.getter(name="enablePrivatePathForGoogleCloudServices") + def enable_private_path_for_google_cloud_services(self) -> Optional[pulumi.Input[bool]]: + """ + Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + """ + return pulumi.get(self, "enable_private_path_for_google_cloud_services") + + @enable_private_path_for_google_cloud_services.setter + def enable_private_path_for_google_cloud_services(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_private_path_for_google_cloud_services", value) + @property @pulumi.getter(name="ipv4Enabled") def ipv4_enabled(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_gcp/sql/database_instance.py b/sdk/python/pulumi_gcp/sql/database_instance.py index b26a34ea30..779d638168 100644 --- a/sdk/python/pulumi_gcp/sql/database_instance.py +++ b/sdk/python/pulumi_gcp/sql/database_instance.py @@ -713,6 +713,7 @@ def __init__(__self__, ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs( ipv4_enabled=False, private_network=private_network.id, + enable_private_path_for_google_cloud_services=True, ), ), opts=pulumi.ResourceOptions(provider=google_beta, @@ -816,6 +817,7 @@ def __init__(__self__, ip_configuration=gcp.sql.DatabaseInstanceSettingsIpConfigurationArgs( ipv4_enabled=False, private_network=private_network.id, + enable_private_path_for_google_cloud_services=True, ), ), opts=pulumi.ResourceOptions(provider=google_beta, diff --git a/sdk/python/pulumi_gcp/sql/outputs.py b/sdk/python/pulumi_gcp/sql/outputs.py index 7646272180..a9ecc718a1 100644 --- a/sdk/python/pulumi_gcp/sql/outputs.py +++ b/sdk/python/pulumi_gcp/sql/outputs.py @@ -1209,6 +1209,8 @@ def __key_warning(key: str): suggest = "allocated_ip_range" elif key == "authorizedNetworks": suggest = "authorized_networks" + elif key == "enablePrivatePathForGoogleCloudServices": + suggest = "enable_private_path_for_google_cloud_services" elif key == "ipv4Enabled": suggest = "ipv4_enabled" elif key == "privateNetwork": @@ -1230,11 +1232,13 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, allocated_ip_range: Optional[str] = None, authorized_networks: Optional[Sequence['outputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork']] = None, + enable_private_path_for_google_cloud_services: Optional[bool] = None, ipv4_enabled: Optional[bool] = None, private_network: Optional[str] = None, require_ssl: Optional[bool] = None): """ :param str allocated_ip_range: The name of the allocated ip range for the private ip CloudSQL instance. For example: "google-managed-services-default". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://datatracker.ietf.org/doc/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression a-z?. + :param bool enable_private_path_for_google_cloud_services: Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. :param bool ipv4_enabled: Whether this Cloud SQL instance should be assigned a public IPV4 address. At least `ipv4_enabled` must be enabled or a `private_network` must be configured. @@ -1249,6 +1253,8 @@ def __init__(__self__, *, pulumi.set(__self__, "allocated_ip_range", allocated_ip_range) if authorized_networks is not None: pulumi.set(__self__, "authorized_networks", authorized_networks) + if enable_private_path_for_google_cloud_services is not None: + pulumi.set(__self__, "enable_private_path_for_google_cloud_services", enable_private_path_for_google_cloud_services) if ipv4_enabled is not None: pulumi.set(__self__, "ipv4_enabled", ipv4_enabled) if private_network is not None: @@ -1269,6 +1275,14 @@ def allocated_ip_range(self) -> Optional[str]: def authorized_networks(self) -> Optional[Sequence['outputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetwork']]: return pulumi.get(self, "authorized_networks") + @property + @pulumi.getter(name="enablePrivatePathForGoogleCloudServices") + def enable_private_path_for_google_cloud_services(self) -> Optional[bool]: + """ + Whether Google Cloud services such as BigQuery are allowed to access data in this Cloud SQL instance over a private IP connection. SQLSERVER database type is not supported. + """ + return pulumi.get(self, "enable_private_path_for_google_cloud_services") + @property @pulumi.getter(name="ipv4Enabled") def ipv4_enabled(self) -> Optional[bool]: @@ -2452,11 +2466,13 @@ class GetDatabaseInstanceSettingIpConfigurationResult(dict): def __init__(__self__, *, allocated_ip_range: str, authorized_networks: Sequence['outputs.GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult'], + enable_private_path_for_google_cloud_services: bool, ipv4_enabled: bool, private_network: str, require_ssl: bool): pulumi.set(__self__, "allocated_ip_range", allocated_ip_range) pulumi.set(__self__, "authorized_networks", authorized_networks) + pulumi.set(__self__, "enable_private_path_for_google_cloud_services", enable_private_path_for_google_cloud_services) pulumi.set(__self__, "ipv4_enabled", ipv4_enabled) pulumi.set(__self__, "private_network", private_network) pulumi.set(__self__, "require_ssl", require_ssl) @@ -2471,6 +2487,11 @@ def allocated_ip_range(self) -> str: def authorized_networks(self) -> Sequence['outputs.GetDatabaseInstanceSettingIpConfigurationAuthorizedNetworkResult']: return pulumi.get(self, "authorized_networks") + @property + @pulumi.getter(name="enablePrivatePathForGoogleCloudServices") + def enable_private_path_for_google_cloud_services(self) -> bool: + return pulumi.get(self, "enable_private_path_for_google_cloud_services") + @property @pulumi.getter(name="ipv4Enabled") def ipv4_enabled(self) -> bool: @@ -3384,11 +3405,13 @@ class GetDatabaseInstancesInstanceSettingIpConfigurationResult(dict): def __init__(__self__, *, allocated_ip_range: str, authorized_networks: Sequence['outputs.GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetworkResult'], + enable_private_path_for_google_cloud_services: bool, ipv4_enabled: bool, private_network: str, require_ssl: bool): pulumi.set(__self__, "allocated_ip_range", allocated_ip_range) pulumi.set(__self__, "authorized_networks", authorized_networks) + pulumi.set(__self__, "enable_private_path_for_google_cloud_services", enable_private_path_for_google_cloud_services) pulumi.set(__self__, "ipv4_enabled", ipv4_enabled) pulumi.set(__self__, "private_network", private_network) pulumi.set(__self__, "require_ssl", require_ssl) @@ -3403,6 +3426,11 @@ def allocated_ip_range(self) -> str: def authorized_networks(self) -> Sequence['outputs.GetDatabaseInstancesInstanceSettingIpConfigurationAuthorizedNetworkResult']: return pulumi.get(self, "authorized_networks") + @property + @pulumi.getter(name="enablePrivatePathForGoogleCloudServices") + def enable_private_path_for_google_cloud_services(self) -> bool: + return pulumi.get(self, "enable_private_path_for_google_cloud_services") + @property @pulumi.getter(name="ipv4Enabled") def ipv4_enabled(self) -> bool: diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store.py index e0eb189eb2..a99e4d7d60 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store.py @@ -21,6 +21,7 @@ def __init__(__self__, *, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, online_serving_config: Optional[pulumi.Input['AiFeatureStoreOnlineServingConfigArgs']] = None, + online_storage_ttl_days: Optional[pulumi.Input[int]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None): """ @@ -32,6 +33,10 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Featurestore. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. :param pulumi.Input['AiFeatureStoreOnlineServingConfigArgs'] online_serving_config: Config for online serving resources. Structure is documented below. + :param pulumi.Input[int] online_storage_ttl_days: TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region of the dataset. eg us-central1 @@ -46,6 +51,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if online_serving_config is not None: pulumi.set(__self__, "online_serving_config", online_serving_config) + if online_storage_ttl_days is not None: + pulumi.set(__self__, "online_storage_ttl_days", online_storage_ttl_days) if project is not None: pulumi.set(__self__, "project", project) if region is not None: @@ -113,6 +120,21 @@ def online_serving_config(self) -> Optional[pulumi.Input['AiFeatureStoreOnlineSe def online_serving_config(self, value: Optional[pulumi.Input['AiFeatureStoreOnlineServingConfigArgs']]): pulumi.set(self, "online_serving_config", value) + @property + @pulumi.getter(name="onlineStorageTtlDays") + def online_storage_ttl_days(self) -> Optional[pulumi.Input[int]]: + """ + TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days + """ + return pulumi.get(self, "online_storage_ttl_days") + + @online_storage_ttl_days.setter + def online_storage_ttl_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "online_storage_ttl_days", value) + @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: @@ -149,6 +171,7 @@ def __init__(__self__, *, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, online_serving_config: Optional[pulumi.Input['AiFeatureStoreOnlineServingConfigArgs']] = None, + online_storage_ttl_days: Optional[pulumi.Input[int]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None): @@ -163,6 +186,10 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Featurestore. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. :param pulumi.Input['AiFeatureStoreOnlineServingConfigArgs'] online_serving_config: Config for online serving resources. Structure is documented below. + :param pulumi.Input[int] online_storage_ttl_days: TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region of the dataset. eg us-central1 @@ -182,6 +209,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if online_serving_config is not None: pulumi.set(__self__, "online_serving_config", online_serving_config) + if online_storage_ttl_days is not None: + pulumi.set(__self__, "online_storage_ttl_days", online_storage_ttl_days) if project is not None: pulumi.set(__self__, "project", project) if region is not None: @@ -275,6 +304,21 @@ def online_serving_config(self) -> Optional[pulumi.Input['AiFeatureStoreOnlineSe def online_serving_config(self, value: Optional[pulumi.Input['AiFeatureStoreOnlineServingConfigArgs']]): pulumi.set(self, "online_serving_config", value) + @property + @pulumi.getter(name="onlineStorageTtlDays") + def online_storage_ttl_days(self) -> Optional[pulumi.Input[int]]: + """ + TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days + """ + return pulumi.get(self, "online_storage_ttl_days") + + @online_storage_ttl_days.setter + def online_storage_ttl_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "online_storage_ttl_days", value) + @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: @@ -323,6 +367,7 @@ def __init__(__self__, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, online_serving_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreOnlineServingConfigArgs']]] = None, + online_storage_ttl_days: Optional[pulumi.Input[int]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, __props__=None): @@ -355,6 +400,27 @@ def __init__(__self__, ), region="us-central1") ``` + ### Vertex Ai Featurestore With Beta Fields + + ```python + import pulumi + import pulumi_gcp as gcp + + featurestore = gcp.vertex.AiFeatureStore("featurestore", + labels={ + "foo": "bar", + }, + region="us-central1", + online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs( + fixed_node_count=2, + ), + encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs( + kms_key_name="kms-name", + ), + online_storage_ttl_days=30, + force_destroy=True, + opts=pulumi.ResourceOptions(provider=google_beta)) + ``` ### Vertex Ai Featurestore Scaling ```python @@ -407,6 +473,10 @@ def __init__(__self__, :param pulumi.Input[str] name: The name of the Featurestore. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. :param pulumi.Input[pulumi.InputType['AiFeatureStoreOnlineServingConfigArgs']] online_serving_config: Config for online serving resources. Structure is documented below. + :param pulumi.Input[int] online_storage_ttl_days: TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region of the dataset. eg us-central1 @@ -446,6 +516,27 @@ def __init__(__self__, ), region="us-central1") ``` + ### Vertex Ai Featurestore With Beta Fields + + ```python + import pulumi + import pulumi_gcp as gcp + + featurestore = gcp.vertex.AiFeatureStore("featurestore", + labels={ + "foo": "bar", + }, + region="us-central1", + online_serving_config=gcp.vertex.AiFeatureStoreOnlineServingConfigArgs( + fixed_node_count=2, + ), + encryption_spec=gcp.vertex.AiFeatureStoreEncryptionSpecArgs( + kms_key_name="kms-name", + ), + online_storage_ttl_days=30, + force_destroy=True, + opts=pulumi.ResourceOptions(provider=google_beta)) + ``` ### Vertex Ai Featurestore Scaling ```python @@ -509,6 +600,7 @@ def _internal_init(__self__, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, online_serving_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreOnlineServingConfigArgs']]] = None, + online_storage_ttl_days: Optional[pulumi.Input[int]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, __props__=None): @@ -525,6 +617,7 @@ def _internal_init(__self__, __props__.__dict__["labels"] = labels __props__.__dict__["name"] = name __props__.__dict__["online_serving_config"] = online_serving_config + __props__.__dict__["online_storage_ttl_days"] = online_storage_ttl_days __props__.__dict__["project"] = project __props__.__dict__["region"] = region __props__.__dict__["create_time"] = None @@ -547,6 +640,7 @@ def get(resource_name: str, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, online_serving_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreOnlineServingConfigArgs']]] = None, + online_storage_ttl_days: Optional[pulumi.Input[int]] = None, project: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None) -> 'AiFeatureStore': @@ -566,6 +660,10 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name of the Featurestore. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. :param pulumi.Input[pulumi.InputType['AiFeatureStoreOnlineServingConfigArgs']] online_serving_config: Config for online serving resources. Structure is documented below. + :param pulumi.Input[int] online_storage_ttl_days: TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] region: The region of the dataset. eg us-central1 @@ -582,6 +680,7 @@ def get(resource_name: str, __props__.__dict__["labels"] = labels __props__.__dict__["name"] = name __props__.__dict__["online_serving_config"] = online_serving_config + __props__.__dict__["online_storage_ttl_days"] = online_storage_ttl_days __props__.__dict__["project"] = project __props__.__dict__["region"] = region __props__.__dict__["update_time"] = update_time @@ -645,6 +744,17 @@ def online_serving_config(self) -> pulumi.Output[Optional['outputs.AiFeatureStor """ return pulumi.get(self, "online_serving_config") + @property + @pulumi.getter(name="onlineStorageTtlDays") + def online_storage_ttl_days(self) -> pulumi.Output[Optional[int]]: + """ + TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage + periodically removes obsolete feature values older than onlineStorageTtlDays since the feature generation time. Note + that onlineStorageTtlDays should be less than or equal to offlineStorageTtlDays for each EntityType under a + featurestore. If not set, default to 4000 days + """ + return pulumi.get(self, "online_storage_ttl_days") + @property @pulumi.getter def project(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py index d0e1b99cef..54b4b6028f 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_store_entity_type.py @@ -17,25 +17,35 @@ class AiFeatureStoreEntityTypeArgs: def __init__(__self__, *, featurestore: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, monitoring_config: Optional[pulumi.Input['AiFeatureStoreEntityTypeMonitoringConfigArgs']] = None, - name: Optional[pulumi.Input[str]] = None): + name: Optional[pulumi.Input[str]] = None, + offline_storage_ttl_days: Optional[pulumi.Input[int]] = None): """ The set of arguments for constructing a AiFeatureStoreEntityType resource. :param pulumi.Input[str] featurestore: The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. + :param pulumi.Input[str] description: Optional. Description of the EntityType. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to this EntityType. :param pulumi.Input['AiFeatureStoreEntityTypeMonitoringConfigArgs'] monitoring_config: The default monitoring configuration for all Features under this EntityType. If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled. Structure is documented below. :param pulumi.Input[str] name: The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. + :param pulumi.Input[int] offline_storage_ttl_days: Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. """ pulumi.set(__self__, "featurestore", featurestore) + if description is not None: + pulumi.set(__self__, "description", description) if labels is not None: pulumi.set(__self__, "labels", labels) if monitoring_config is not None: pulumi.set(__self__, "monitoring_config", monitoring_config) if name is not None: pulumi.set(__self__, "name", name) + if offline_storage_ttl_days is not None: + pulumi.set(__self__, "offline_storage_ttl_days", offline_storage_ttl_days) @property @pulumi.getter @@ -49,6 +59,18 @@ def featurestore(self) -> pulumi.Input[str]: def featurestore(self, value: pulumi.Input[str]): pulumi.set(self, "featurestore", value) + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Description of the EntityType. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + @property @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -87,21 +109,38 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="offlineStorageTtlDays") + def offline_storage_ttl_days(self) -> Optional[pulumi.Input[int]]: + """ + Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + """ + return pulumi.get(self, "offline_storage_ttl_days") + + @offline_storage_ttl_days.setter + def offline_storage_ttl_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "offline_storage_ttl_days", value) + @pulumi.input_type class _AiFeatureStoreEntityTypeState: def __init__(__self__, *, create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, etag: Optional[pulumi.Input[str]] = None, featurestore: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, monitoring_config: Optional[pulumi.Input['AiFeatureStoreEntityTypeMonitoringConfigArgs']] = None, name: Optional[pulumi.Input[str]] = None, + offline_storage_ttl_days: Optional[pulumi.Input[int]] = None, region: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering AiFeatureStoreEntityType resources. :param pulumi.Input[str] create_time: The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. + :param pulumi.Input[str] description: Optional. Description of the EntityType. :param pulumi.Input[str] etag: Used to perform consistent read-modify-write updates. :param pulumi.Input[str] featurestore: The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to this EntityType. @@ -109,11 +148,16 @@ def __init__(__self__, *, If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled. Structure is documented below. :param pulumi.Input[str] name: The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. + :param pulumi.Input[int] offline_storage_ttl_days: Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. :param pulumi.Input[str] region: The region of the EntityType. :param pulumi.Input[str] update_time: The timestamp of when the featurestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. """ if create_time is not None: pulumi.set(__self__, "create_time", create_time) + if description is not None: + pulumi.set(__self__, "description", description) if etag is not None: pulumi.set(__self__, "etag", etag) if featurestore is not None: @@ -124,6 +168,8 @@ def __init__(__self__, *, pulumi.set(__self__, "monitoring_config", monitoring_config) if name is not None: pulumi.set(__self__, "name", name) + if offline_storage_ttl_days is not None: + pulumi.set(__self__, "offline_storage_ttl_days", offline_storage_ttl_days) if region is not None: pulumi.set(__self__, "region", region) if update_time is not None: @@ -141,6 +187,18 @@ def create_time(self) -> Optional[pulumi.Input[str]]: def create_time(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "create_time", value) + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Optional. Description of the EntityType. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + @property @pulumi.getter def etag(self) -> Optional[pulumi.Input[str]]: @@ -203,6 +261,20 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="offlineStorageTtlDays") + def offline_storage_ttl_days(self) -> Optional[pulumi.Input[int]]: + """ + Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + """ + return pulumi.get(self, "offline_storage_ttl_days") + + @offline_storage_ttl_days.setter + def offline_storage_ttl_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "offline_storage_ttl_days", value) + @property @pulumi.getter def region(self) -> Optional[pulumi.Input[str]]: @@ -233,10 +305,12 @@ class AiFeatureStoreEntityType(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, featurestore: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, monitoring_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreEntityTypeMonitoringConfigArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + offline_storage_ttl_days: Optional[pulumi.Input[int]] = None, __props__=None): """ An entity type is a type of object in a system that needs to be modeled and have stored information about. For example, driver is an entity type, and driver0 is an instance of an entity type driver. @@ -269,6 +343,7 @@ def __init__(__self__, labels={ "foo": "bar", }, + description="test description", featurestore=featurestore.id, monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs( snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs( @@ -323,6 +398,7 @@ def __init__(__self__, value=0.3, ), ), + offline_storage_ttl_days=30, opts=pulumi.ResourceOptions(provider=google_beta)) ``` @@ -336,12 +412,16 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Optional. Description of the EntityType. :param pulumi.Input[str] featurestore: The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to this EntityType. :param pulumi.Input[pulumi.InputType['AiFeatureStoreEntityTypeMonitoringConfigArgs']] monitoring_config: The default monitoring configuration for all Features under this EntityType. If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled. Structure is documented below. :param pulumi.Input[str] name: The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. + :param pulumi.Input[int] offline_storage_ttl_days: Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. """ ... @overload @@ -380,6 +460,7 @@ def __init__(__self__, labels={ "foo": "bar", }, + description="test description", featurestore=featurestore.id, monitoring_config=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigArgs( snapshot_analysis=gcp.vertex.AiFeatureStoreEntityTypeMonitoringConfigSnapshotAnalysisArgs( @@ -434,6 +515,7 @@ def __init__(__self__, value=0.3, ), ), + offline_storage_ttl_days=30, opts=pulumi.ResourceOptions(provider=google_beta)) ``` @@ -460,10 +542,12 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, featurestore: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, monitoring_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreEntityTypeMonitoringConfigArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + offline_storage_ttl_days: Optional[pulumi.Input[int]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -473,12 +557,14 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = AiFeatureStoreEntityTypeArgs.__new__(AiFeatureStoreEntityTypeArgs) + __props__.__dict__["description"] = description if featurestore is None and not opts.urn: raise TypeError("Missing required property 'featurestore'") __props__.__dict__["featurestore"] = featurestore __props__.__dict__["labels"] = labels __props__.__dict__["monitoring_config"] = monitoring_config __props__.__dict__["name"] = name + __props__.__dict__["offline_storage_ttl_days"] = offline_storage_ttl_days __props__.__dict__["create_time"] = None __props__.__dict__["etag"] = None __props__.__dict__["region"] = None @@ -494,11 +580,13 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, etag: Optional[pulumi.Input[str]] = None, featurestore: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, monitoring_config: Optional[pulumi.Input[pulumi.InputType['AiFeatureStoreEntityTypeMonitoringConfigArgs']]] = None, name: Optional[pulumi.Input[str]] = None, + offline_storage_ttl_days: Optional[pulumi.Input[int]] = None, region: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None) -> 'AiFeatureStoreEntityType': """ @@ -509,6 +597,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] create_time: The timestamp of when the featurestore was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. + :param pulumi.Input[str] description: Optional. Description of the EntityType. :param pulumi.Input[str] etag: Used to perform consistent read-modify-write updates. :param pulumi.Input[str] featurestore: The name of the Featurestore to use, in the format projects/{project}/locations/{location}/featurestores/{featurestore}. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: A set of key/value label pairs to assign to this EntityType. @@ -516,6 +605,9 @@ def get(resource_name: str, If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled. Structure is documented below. :param pulumi.Input[str] name: The name of the EntityType. This value may be up to 60 characters, and valid characters are [a-z0-9_]. The first character cannot be a number. + :param pulumi.Input[int] offline_storage_ttl_days: Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. :param pulumi.Input[str] region: The region of the EntityType. :param pulumi.Input[str] update_time: The timestamp of when the featurestore was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. """ @@ -524,11 +616,13 @@ def get(resource_name: str, __props__ = _AiFeatureStoreEntityTypeState.__new__(_AiFeatureStoreEntityTypeState) __props__.__dict__["create_time"] = create_time + __props__.__dict__["description"] = description __props__.__dict__["etag"] = etag __props__.__dict__["featurestore"] = featurestore __props__.__dict__["labels"] = labels __props__.__dict__["monitoring_config"] = monitoring_config __props__.__dict__["name"] = name + __props__.__dict__["offline_storage_ttl_days"] = offline_storage_ttl_days __props__.__dict__["region"] = region __props__.__dict__["update_time"] = update_time return AiFeatureStoreEntityType(resource_name, opts=opts, __props__=__props__) @@ -541,6 +635,14 @@ def create_time(self) -> pulumi.Output[str]: """ return pulumi.get(self, "create_time") + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Optional. Description of the EntityType. + """ + return pulumi.get(self, "description") + @property @pulumi.getter def etag(self) -> pulumi.Output[str]: @@ -583,6 +685,16 @@ def name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "name") + @property + @pulumi.getter(name="offlineStorageTtlDays") + def offline_storage_ttl_days(self) -> pulumi.Output[Optional[int]]: + """ + Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline + storage. The Feature Store offline storage periodically removes obsolete feature values older than offlineStorageTtlDays + since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL. + """ + return pulumi.get(self, "offline_storage_ttl_days") + @property @pulumi.getter def region(self) -> pulumi.Output[str]: