From 198219a59711571604862f9e4bd10ba72c35e335 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 21 Aug 2024 13:01:00 -0400 Subject: [PATCH] Upstream v5.63.0 (#4378) Upgrade upstream to [5.63.0](https://github.com/hashicorp/terraform-provider-aws/releases/tag/v5.63.0) Fixes https://github.com/pulumi/pulumi-aws/issues/4373 Fixes https://github.com/pulumi/pulumi-aws/issues/4372 Fixes https://github.com/pulumi/pulumi-aws/issues/3713 Fixes https://github.com/pulumi/pulumi-aws/issues/4369 There are some changes to patches: - https://github.com/pulumi/pulumi-aws/issues/4369 is removed as it is part of upstream now - https://github.com/pulumi/pulumi-aws/issues/3713 is removed as there was no clean conflict resolution; this patch is under test so if test suite passes the removal is safe - https://github.com/pulumi/pulumi-aws/issues/2746 patch is edited to remove rds/security_group resource code that got removed upstream but was preserved in patches. This code appears to be dead / unused code but continues to generate conflicts - added a patch for gamelift.Matchmaking* resources; these are [deprecated](https://github.com/pulumi/pulumi-aws/issues/4375) but remain supported until the next major release. Upstream moved gamelift to Go SDK v2 so the patch is needed to preserve the Go SDK v1 code for these resources without re-coding them. - added a patch to fix tags for new PF-based resources; this can go away once we land https://github.com/pulumi/pulumi-aws/pull/4151 --------- Co-authored-by: Florian Stadler --- examples/go.mod | 45 +- examples/go.sum | 90 +- ...-Revert-Update-endpointHashIPAddress.patch | 4 +- ...lt-descriptions-to-Managed-by-Pulumi.patch | 342 +-- patches/0023-Provide-context-to-conns.patch | 31 - ...26-Restore-S3ConnURICleaningDisabled.patch | 10 +- ...-Do-not-compute-tags_all-at-TF-level.patch | 20 +- ...sableTagSchemaCheck-for-PF-provider.patch} | 0 .../0031-Fix-job-queue-sdkv2-migration.patch | 18 - ..._computed_only.sh-to-patch-eks-pod_.patch} | 0 ...-fast-when-PF-resources-are-dropped.patch} | 0 ...-tags_all-Computed-for-PF-resources.patch} | 2 +- ...try-for-KMS-access-denied-in-lambda.patch} | 0 ...o-not-retry-after-LimitExceededExce.patch} | 0 ...patch => 0037-Restore-legacy-bucket.patch} | 18 +- ...0038-Patch-osis_pipeline-tags-flags.patch} | 0 ...mbdas-without-code-related-properti.patch} | 8 +- ...gs_all-of-aws_bedrock_provisioned_m.patch} | 0 ...h => 0041-fix-legacy-bucket-context.patch} | 0 ...uritylake_subscriber-tags_all-patch.patch} | 0 ...-tags-ComputedOnly-for-m2-resources.patch} | 0 ...RConn.patch => 0044-restore-ECRConn.patch} | 10 +- ....patch => 0045-update-testing-types.patch} | 0 ...n.patch => 0046-restore-ecr-NewConn.patch} | 0 ...-info.patch => 0047-update-apn-info.patch} | 0 ...8-non-idempotent-sns-topic-creation.patch} | 0 ...onDays-in-aws_controltower_landing_.patch} | 2 +- ...roxy-Change-auth-from-TypeList-to-T.patch} | 2 +- ...ws_directory_service_directory-Read.patch} | 0 ...edOnly-on-bedrockagent-and-other-mo.patch} | 0 ...ll-Computed-for-aws_datazone_domain.patch} | 0 ...Lambda-Function-resource-operations.patch} | 12 +- ...ddleware-for-Lambda-service-that-do.patch} | 0 ...x-tags_all-Computed-for-PF-resources.patch | 19 + ...x-tags_all-Computed-for-PF-resources.patch | 66 +- ...x-tags_all-Computed-for-PF-resources.patch | 78 +- ...x-tags_all-Computed-for-PF-resources.patch | 19 - ...edOnly-for-appfabric-networkmonitor.patch} | 0 ...ourceMatchmakingConfigurationUpdate.patch} | 0 ...skDefinition-containerDefinitions-he.patch | 22 - ...ly-for-rekognition-stream_processor.patch} | 0 ...mputed-for-chatbot-timestreaminflux.patch} | 0 ...ll-computed-for-aws_rds_integration.patch} | 2 +- ...Adapt-gamelift-matchmaking-resources.patch | 258 ++ ...-Patch-Tags-for-bedrock-and-pinpoint.patch | 32 + .../pulumi-resource-aws/bridge-metadata.json | 154 +- .../runtime-bridge-metadata.json | 2 +- provider/cmd/pulumi-resource-aws/schema.json | 1587 +++++++++++- provider/go.mod | 45 +- provider/go.sum | 90 +- provider/resources.go | 11 +- sdk/dotnet/Alb/Listener.cs | 7 +- .../AgentAgentKnowledgeBaseAssociation.cs | 9 + sdk/dotnet/Bedrock/GetAgentAgentVersions.cs | 147 ++ sdk/dotnet/Bedrock/Guardrail.cs | 471 ++++ ...entKnowledgeBaseAssociationTimeoutsArgs.cs | 32 + ...KnowledgeBaseAssociationTimeoutsGetArgs.cs | 32 + ...etAgentAgentVersionsAgentVersionSummary.cs | 65 + ...entAgentVersionsAgentVersionSummaryArgs.cs | 65 + ...entVersionSummaryGuardrailConfiguration.cs | 32 + ...ersionSummaryGuardrailConfigurationArgs.cs | 32 + .../GuardrailContentPolicyConfigArgs.cs | 32 + ...ailContentPolicyConfigFiltersConfigArgs.cs | 38 + ...ContentPolicyConfigFiltersConfigGetArgs.cs | 38 + .../GuardrailContentPolicyConfigGetArgs.cs | 32 + ...railContextualGroundingPolicyConfigArgs.cs | 32 + ...lGroundingPolicyConfigFiltersConfigArgs.cs | 32 + ...oundingPolicyConfigFiltersConfigGetArgs.cs | 32 + ...lContextualGroundingPolicyConfigGetArgs.cs | 32 + ...ailSensitiveInformationPolicyConfigArgs.cs | 44 + ...SensitiveInformationPolicyConfigGetArgs.cs | 44 + ...mationPolicyConfigPiiEntitiesConfigArgs.cs | 32 + ...ionPolicyConfigPiiEntitiesConfigGetArgs.cs | 32 + ...nformationPolicyConfigRegexesConfigArgs.cs | 44 + ...rmationPolicyConfigRegexesConfigGetArgs.cs | 44 + .../Bedrock/Inputs/GuardrailTimeoutsArgs.cs | 38 + .../Inputs/GuardrailTimeoutsGetArgs.cs | 38 + .../Inputs/GuardrailTopicPolicyConfigArgs.cs | 32 + .../GuardrailTopicPolicyConfigGetArgs.cs | 32 + ...rdrailTopicPolicyConfigTopicsConfigArgs.cs | 50 + ...ailTopicPolicyConfigTopicsConfigGetArgs.cs | 50 + .../Inputs/GuardrailWordPolicyConfigArgs.cs | 44 + .../GuardrailWordPolicyConfigGetArgs.cs | 44 + ...dPolicyConfigManagedWordListsConfigArgs.cs | 26 + ...licyConfigManagedWordListsConfigGetArgs.cs | 26 + ...uardrailWordPolicyConfigWordsConfigArgs.cs | 26 + ...drailWordPolicyConfigWordsConfigGetArgs.cs | 26 + ...ntAgentKnowledgeBaseAssociationTimeouts.cs | 35 + ...sionSummaryGuardrailConfigurationResult.cs | 35 + ...tAgentVersionsAgentVersionSummaryResult.cs | 68 + .../Outputs/GuardrailContentPolicyConfig.cs | 27 + ...ardrailContentPolicyConfigFiltersConfig.cs | 42 + ...uardrailContextualGroundingPolicyConfig.cs | 27 + ...xtualGroundingPolicyConfigFiltersConfig.cs | 35 + ...ardrailSensitiveInformationPolicyConfig.cs | 35 + ...nformationPolicyConfigPiiEntitiesConfig.cs | 35 + ...iveInformationPolicyConfigRegexesConfig.cs | 49 + .../Bedrock/Outputs/GuardrailTimeouts.cs | 42 + .../Outputs/GuardrailTopicPolicyConfig.cs | 27 + .../GuardrailTopicPolicyConfigTopicsConfig.cs | 49 + .../Outputs/GuardrailWordPolicyConfig.cs | 35 + ...lWordPolicyConfigManagedWordListsConfig.cs | 27 + .../GuardrailWordPolicyConfigWordsConfig.cs | 27 + .../OrganizationDelegatedAdminAccount.cs | 173 ++ .../Inputs/PipelineStageActionArgs.cs | 2 +- .../Inputs/PipelineStageActionGetArgs.cs | 2 +- .../Outputs/PipelineStageAction.cs | 2 +- sdk/dotnet/DataZone/EnvironmentProfile.cs | 427 +++ sdk/dotnet/DataZone/FormType.cs | 391 +++ sdk/dotnet/DataZone/GlossaryTerm.cs | 367 +++ .../EnvironmentProfileUserParameterArgs.cs | 32 + .../EnvironmentProfileUserParameterGetArgs.cs | 32 + .../DataZone/Inputs/FormTypeImportArgs.cs | 32 + .../DataZone/Inputs/FormTypeImportGetArgs.cs | 32 + .../DataZone/Inputs/FormTypeModelArgs.cs | 28 + .../DataZone/Inputs/FormTypeModelGetArgs.cs | 28 + .../DataZone/Inputs/FormTypeTimeoutsArgs.cs | 26 + .../Inputs/FormTypeTimeoutsGetArgs.cs | 26 + .../Inputs/GlossaryTermTermRelationsArgs.cs | 40 + .../GlossaryTermTermRelationsGetArgs.cs | 40 + .../Inputs/GlossaryTermTimeoutsArgs.cs | 26 + .../Inputs/GlossaryTermTimeoutsGetArgs.cs | 26 + .../EnvironmentProfileUserParameter.cs | 35 + sdk/dotnet/DataZone/Outputs/FormTypeImport.cs | 35 + sdk/dotnet/DataZone/Outputs/FormTypeModel.cs | 29 + .../DataZone/Outputs/FormTypeTimeouts.cs | 27 + .../Outputs/GlossaryTermTermRelations.cs | 32 + .../DataZone/Outputs/GlossaryTermTimeouts.cs | 27 + sdk/dotnet/LB/Listener.cs | 7 +- .../V2modelsSlotTypeSlotTypeValuesArgs.cs | 12 +- .../V2modelsSlotTypeSlotTypeValuesGetArgs.cs | 12 +- ...sSlotTypeSlotTypeValuesSampleValueArgs.cs} | 6 +- ...otTypeSlotTypeValuesSampleValueGetArgs.cs} | 6 +- .../Outputs/V2modelsSlotTypeSlotTypeValues.cs | 8 +- ...odelsSlotTypeSlotTypeValuesSampleValue.cs} | 4 +- sdk/dotnet/Msk/Replicator.cs | 4 + ...ngConfigurationLoggingConfigurationArgs.cs | 2 +- ...onfigurationLoggingConfigurationGetArgs.cs | 2 +- ...ngConfigurationLogDestinationConfigArgs.cs | 2 +- ...onfigurationLogDestinationConfigGetArgs.cs | 2 +- .../NetworkFirewall/LoggingConfiguration.cs | 2 +- ...oggingConfigurationLoggingConfiguration.cs | 2 +- ...oggingConfigurationLogDestinationConfig.cs | 2 +- sdk/dotnet/Pinpoint/EmailChannel.cs | 6 +- sdk/dotnet/Pinpoint/EmailTemplate.cs | 210 ++ .../Inputs/EmailTemplateEmailTemplateArgs.cs | 61 + .../EmailTemplateEmailTemplateGetArgs.cs | 61 + .../EmailTemplateEmailTemplateHeaderArgs.cs | 32 + ...EmailTemplateEmailTemplateHeaderGetArgs.cs | 32 + .../Outputs/EmailTemplateEmailTemplate.cs | 64 + .../EmailTemplateEmailTemplateHeader.cs | 35 + sdk/dotnet/Pipes/Pipe.cs | 37 + sdk/dotnet/Rds/ClusterInstance.cs | 6 +- sdk/dotnet/Sagemaker/App.cs | 6 +- .../Inputs/AwsLogSourceSourceArgs.cs | 2 +- .../Inputs/AwsLogSourceSourceGetArgs.cs | 2 +- .../Outputs/AwsLogSourceSource.cs | 2 +- sdk/go/aws/alb/listener.go | 13 +- .../agentAgentKnowledgeBaseAssociation.go | 17 +- sdk/go/aws/bedrock/getAgentAgentVersions.go | 128 + sdk/go/aws/bedrock/guardrail.go | 551 ++++ sdk/go/aws/bedrock/init.go | 7 + sdk/go/aws/bedrock/pulumiTypes.go | 2288 ++++++++++++++++- sdk/go/aws/cloudtrail/init.go | 7 + .../organizationDelegatedAdminAccount.go | 304 +++ sdk/go/aws/codepipeline/pulumiTypes.go | 6 +- sdk/go/aws/datazone/environmentProfile.go | 545 ++++ sdk/go/aws/datazone/formType.go | 508 ++++ sdk/go/aws/datazone/glossaryTerm.go | 488 ++++ sdk/go/aws/datazone/init.go | 21 + sdk/go/aws/datazone/pulumiTypes.go | 807 ++++++ sdk/go/aws/lb/listener.go | 13 +- sdk/go/aws/lex/pulumiTypes2.go | 122 +- sdk/go/aws/msk/replicator.go | 3 + .../networkfirewall/loggingConfiguration.go | 2 +- sdk/go/aws/networkfirewall/pulumiTypes.go | 14 +- sdk/go/aws/pinpoint/emailChannel.go | 12 +- sdk/go/aws/pinpoint/emailTemplate.go | 311 +++ sdk/go/aws/pinpoint/init.go | 7 + sdk/go/aws/pinpoint/pulumiTypes.go | 259 ++ sdk/go/aws/pipes/pipe.go | 41 + sdk/go/aws/rds/clusterInstance.go | 12 +- sdk/go/aws/sagemaker/app.go | 12 +- sdk/go/aws/securitylake/pulumiTypes.go | 8 +- .../java/com/pulumi/aws/alb/Listener.java | 5 +- .../java/com/pulumi/aws/alb/ListenerArgs.java | 8 +- .../pulumi/aws/alb/inputs/ListenerState.java | 8 +- .../AgentAgentKnowledgeBaseAssociation.java | 8 + ...gentAgentKnowledgeBaseAssociationArgs.java | 18 + .../pulumi/aws/bedrock/BedrockFunctions.java | 179 ++ .../com/pulumi/aws/bedrock/Guardrail.java | 419 +++ .../com/pulumi/aws/bedrock/GuardrailArgs.java | 492 ++++ ...entAgentKnowledgeBaseAssociationState.java | 18 + ...tKnowledgeBaseAssociationTimeoutsArgs.java | 120 + ...AgentAgentVersionsAgentVersionSummary.java | 248 ++ ...tAgentVersionsAgentVersionSummaryArgs.java | 314 +++ ...tVersionSummaryGuardrailConfiguration.java | 104 + ...sionSummaryGuardrailConfigurationArgs.java | 125 + .../inputs/GetAgentAgentVersionsArgs.java | 136 + .../GetAgentAgentVersionsPlainArgs.java | 115 + .../GuardrailContentPolicyConfigArgs.java | 94 + ...lContentPolicyConfigFiltersConfigArgs.java | 165 ++ ...ilContextualGroundingPolicyConfigArgs.java | 94 + ...roundingPolicyConfigFiltersConfigArgs.java | 126 + ...lSensitiveInformationPolicyConfigArgs.java | 142 + ...tionPolicyConfigPiiEntitiesConfigArgs.java | 125 + ...ormationPolicyConfigRegexesConfigArgs.java | 204 ++ .../aws/bedrock/inputs/GuardrailState.java | 715 ++++++ .../bedrock/inputs/GuardrailTimeoutsArgs.java | 157 ++ .../GuardrailTopicPolicyConfigArgs.java | 94 + ...railTopicPolicyConfigTopicsConfigArgs.java | 215 ++ .../inputs/GuardrailWordPolicyConfigArgs.java | 142 + ...olicyConfigManagedWordListsConfigArgs.java | 85 + ...rdrailWordPolicyConfigWordsConfigArgs.java | 85 + ...AgentKnowledgeBaseAssociationTimeouts.java | 78 + ...AgentAgentVersionsAgentVersionSummary.java | 194 ++ ...tVersionSummaryGuardrailConfiguration.java | 81 + .../outputs/GetAgentAgentVersionsResult.java | 100 + .../outputs/GuardrailContentPolicyConfig.java | 60 + ...drailContentPolicyConfigFiltersConfig.java | 104 + ...rdrailContextualGroundingPolicyConfig.java | 60 + ...ualGroundingPolicyConfigFiltersConfig.java | 82 + ...drailSensitiveInformationPolicyConfig.java | 85 + ...ormationPolicyConfigPiiEntitiesConfig.java | 81 + ...eInformationPolicyConfigRegexesConfig.java | 127 + .../bedrock/outputs/GuardrailTimeouts.java | 99 + .../outputs/GuardrailTopicPolicyConfig.java | 60 + ...uardrailTopicPolicyConfigTopicsConfig.java | 130 + .../outputs/GuardrailWordPolicyConfig.java | 85 + ...ordPolicyConfigManagedWordListsConfig.java | 58 + .../GuardrailWordPolicyConfigWordsConfig.java | 58 + .../OrganizationDelegatedAdminAccount.java | 197 ++ ...OrganizationDelegatedAdminAccountArgs.java | 85 + ...rganizationDelegatedAdminAccountState.java | 231 ++ .../inputs/PipelineStageActionArgs.java | 8 +- .../outputs/PipelineStageAction.java | 4 +- .../aws/datazone/EnvironmentProfile.java | 393 +++ .../aws/datazone/EnvironmentProfileArgs.java | 375 +++ .../com/pulumi/aws/datazone/FormType.java | 380 +++ .../com/pulumi/aws/datazone/FormTypeArgs.java | 274 ++ .../com/pulumi/aws/datazone/GlossaryTerm.java | 346 +++ .../pulumi/aws/datazone/GlossaryTermArgs.java | 336 +++ .../inputs/EnvironmentProfileState.java | 473 ++++ .../EnvironmentProfileUserParameterArgs.java | 120 + .../datazone/inputs/FormTypeImportArgs.java | 125 + .../datazone/inputs/FormTypeModelArgs.java | 93 + .../aws/datazone/inputs/FormTypeState.java | 475 ++++ .../datazone/inputs/FormTypeTimeoutsArgs.java | 83 + .../datazone/inputs/GlossaryTermState.java | 406 +++ .../inputs/GlossaryTermTermRelationsArgs.java | 115 + .../inputs/GlossaryTermTimeoutsArgs.java | 83 + .../EnvironmentProfileUserParameter.java | 78 + .../aws/datazone/outputs/FormTypeImport.java | 81 + .../aws/datazone/outputs/FormTypeModel.java | 62 + .../datazone/outputs/FormTypeTimeouts.java | 57 + .../outputs/GlossaryTermTermRelations.java | 76 + .../outputs/GlossaryTermTimeouts.java | 57 + .../main/java/com/pulumi/aws/lb/Listener.java | 5 +- .../java/com/pulumi/aws/lb/ListenerArgs.java | 8 +- .../pulumi/aws/lb/inputs/ListenerState.java | 8 +- .../V2modelsSlotTypeSlotTypeValuesArgs.java | 38 +- ...lotTypeSlotTypeValuesSampleValueArgs.java} | 22 +- .../V2modelsSlotTypeSlotTypeValues.java | 31 +- ...elsSlotTypeSlotTypeValuesSampleValue.java} | 14 +- .../java/com/pulumi/aws/msk/Replicator.java | 3 + .../networkfirewall/LoggingConfiguration.java | 2 +- ...ConfigurationLoggingConfigurationArgs.java | 10 +- ...ConfigurationLogDestinationConfigArgs.java | 8 +- ...gingConfigurationLoggingConfiguration.java | 4 +- ...gingConfigurationLogDestinationConfig.java | 4 +- .../com/pulumi/aws/pinpoint/EmailChannel.java | 4 +- .../pulumi/aws/pinpoint/EmailChannelArgs.java | 8 +- .../pulumi/aws/pinpoint/EmailTemplate.java | 194 ++ .../aws/pinpoint/EmailTemplateArgs.java | 154 ++ .../pinpoint/inputs/EmailChannelState.java | 8 +- .../EmailTemplateEmailTemplateArgs.java | 271 ++ .../EmailTemplateEmailTemplateHeaderArgs.java | 120 + .../pinpoint/inputs/EmailTemplateState.java | 232 ++ .../outputs/EmailTemplateEmailTemplate.java | 172 ++ .../EmailTemplateEmailTemplateHeader.java | 78 + .../main/java/com/pulumi/aws/pipes/Pipe.java | 6 +- .../com/pulumi/aws/rds/ClusterInstance.java | 4 +- .../pulumi/aws/rds/ClusterInstanceArgs.java | 8 +- .../aws/rds/inputs/ClusterInstanceState.java | 8 +- .../java/com/pulumi/aws/sagemaker/App.java | 4 +- .../com/pulumi/aws/sagemaker/AppArgs.java | 8 +- .../pulumi/aws/sagemaker/inputs/AppState.java | 8 +- .../inputs/AwsLogSourceSourceArgs.java | 8 +- .../outputs/AwsLogSourceSource.java | 4 +- sdk/nodejs/alb/listener.ts | 7 +- .../agentAgentKnowledgeBaseAssociation.ts | 8 + sdk/nodejs/bedrock/getAgentAgentVersions.ts | 95 + sdk/nodejs/bedrock/guardrail.ts | 363 +++ sdk/nodejs/bedrock/index.ts | 13 + sdk/nodejs/cloudtrail/index.ts | 8 + .../organizationDelegatedAdminAccount.ts | 147 ++ sdk/nodejs/datazone/environmentProfile.ts | 333 +++ sdk/nodejs/datazone/formType.ts | 308 +++ sdk/nodejs/datazone/glossaryTerm.ts | 289 +++ sdk/nodejs/datazone/index.ts | 24 + sdk/nodejs/lb/listener.ts | 7 +- sdk/nodejs/msk/replicator.ts | 3 + .../networkfirewall/loggingConfiguration.ts | 2 +- sdk/nodejs/pinpoint/emailChannel.ts | 6 +- sdk/nodejs/pinpoint/emailTemplate.ts | 156 ++ sdk/nodejs/pinpoint/index.ts | 8 + sdk/nodejs/pipes/pipe.ts | 26 + sdk/nodejs/rds/clusterInstance.ts | 6 +- sdk/nodejs/sagemaker/app.ts | 6 +- sdk/nodejs/tsconfig.json | 7 + sdk/nodejs/types/input.ts | 341 ++- sdk/nodejs/types/output.ts | 301 ++- sdk/python/pulumi_aws/__init__.py | 48 + sdk/python/pulumi_aws/alb/listener.py | 16 +- sdk/python/pulumi_aws/bedrock/__init__.py | 2 + sdk/python/pulumi_aws/bedrock/_inputs.py | 987 ++++++- .../agent_agent_knowledge_base_association.py | 42 +- .../bedrock/get_agent_agent_versions.py | 130 + sdk/python/pulumi_aws/bedrock/guardrail.py | 953 +++++++ sdk/python/pulumi_aws/bedrock/outputs.py | 667 +++++ sdk/python/pulumi_aws/cloudtrail/__init__.py | 1 + .../organization_delegated_admin_account.py | 303 +++ sdk/python/pulumi_aws/codepipeline/_inputs.py | 6 +- sdk/python/pulumi_aws/codepipeline/outputs.py | 4 +- sdk/python/pulumi_aws/datazone/__init__.py | 3 + sdk/python/pulumi_aws/datazone/_inputs.py | 260 ++ .../datazone/environment_profile.py | 771 ++++++ sdk/python/pulumi_aws/datazone/form_type.py | 754 ++++++ .../pulumi_aws/datazone/glossary_term.py | 699 +++++ sdk/python/pulumi_aws/datazone/outputs.py | 170 ++ sdk/python/pulumi_aws/lb/listener.py | 16 +- sdk/python/pulumi_aws/lex/_inputs.py | 35 +- sdk/python/pulumi_aws/lex/outputs.py | 23 +- sdk/python/pulumi_aws/msk/replicator.py | 6 + .../pulumi_aws/networkfirewall/_inputs.py | 12 +- .../networkfirewall/logging_configuration.py | 4 +- .../pulumi_aws/networkfirewall/outputs.py | 8 +- sdk/python/pulumi_aws/pinpoint/__init__.py | 1 + sdk/python/pulumi_aws/pinpoint/_inputs.py | 194 ++ .../pulumi_aws/pinpoint/email_channel.py | 14 +- .../pulumi_aws/pinpoint/email_template.py | 339 +++ sdk/python/pulumi_aws/pinpoint/outputs.py | 140 + sdk/python/pulumi_aws/pipes/pipe.py | 50 + sdk/python/pulumi_aws/rds/cluster_instance.py | 14 +- sdk/python/pulumi_aws/sagemaker/app.py | 14 +- sdk/python/pulumi_aws/securitylake/_inputs.py | 6 +- sdk/python/pulumi_aws/securitylake/outputs.py | 4 +- upstream | 2 +- 348 files changed, 35151 insertions(+), 1260 deletions(-) rename patches/{0032-DisableTagSchemaCheck-for-PF-provider.patch => 0031-DisableTagSchemaCheck-for-PF-provider.patch} (100%) delete mode 100644 patches/0031-Fix-job-queue-sdkv2-migration.patch rename patches/{0033-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch => 0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch} (100%) rename patches/{0034-Fail-fast-when-PF-resources-are-dropped.patch => 0033-Fail-fast-when-PF-resources-are-dropped.patch} (100%) rename patches/{0035-Fix-tags_all-Computed-for-PF-resources.patch => 0034-Fix-tags_all-Computed-for-PF-resources.patch} (99%) rename patches/{0036-Disable-retry-for-KMS-access-denied-in-lambda.patch => 0035-Disable-retry-for-KMS-access-denied-in-lambda.patch} (100%) rename patches/{0037-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch => 0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch} (100%) rename patches/{0038-Restore-legacy-bucket.patch => 0037-Restore-legacy-bucket.patch} (96%) rename patches/{0039-Patch-osis_pipeline-tags-flags.patch => 0038-Patch-osis_pipeline-tags-flags.patch} (100%) rename patches/{0040-Allow-creating-lambdas-without-code-related-properti.patch => 0039-Allow-creating-lambdas-without-code-related-properti.patch} (88%) rename patches/{0041-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch => 0040-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch} (100%) rename patches/{0042-fix-legacy-bucket-context.patch => 0041-fix-legacy-bucket-context.patch} (100%) rename patches/{0043-securitylake_subscriber-tags_all-patch.patch => 0042-securitylake_subscriber-tags_all-patch.patch} (100%) rename patches/{0044-Patch-tags-ComputedOnly-for-m2-resources.patch => 0043-Patch-tags-ComputedOnly-for-m2-resources.patch} (100%) rename patches/{0045-restore-ECRConn.patch => 0044-restore-ECRConn.patch} (80%) rename patches/{0046-update-testing-types.patch => 0045-update-testing-types.patch} (100%) rename patches/{0047-restore-ecr-NewConn.patch => 0046-restore-ecr-NewConn.patch} (100%) rename patches/{0048-update-apn-info.patch => 0047-update-apn-info.patch} (100%) rename patches/{0049-non-idempotent-sns-topic-creation.patch => 0048-non-idempotent-sns-topic-creation.patch} (100%) rename patches/{0050-Normalize-retentionDays-in-aws_controltower_landing_.patch => 0049-Normalize-retentionDays-in-aws_controltower_landing_.patch} (99%) rename patches/{0051-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch => 0050-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch} (99%) rename patches/{0052-Fix-panic-in-aws_directory_service_directory-Read.patch => 0051-Fix-panic-in-aws_directory_service_directory-Read.patch} (100%) rename patches/{0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch => 0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch} (100%) rename patches/{0054-Fix-tags_all-Computed-for-aws_datazone_domain.patch => 0053-Fix-tags_all-Computed-for-aws_datazone_domain.patch} (100%) rename patches/{0055-Parallelize-Lambda-Function-resource-operations.patch => 0054-Parallelize-Lambda-Function-resource-operations.patch} (83%) rename patches/{0056-Create-Logging-Middleware-for-Lambda-service-that-do.patch => 0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch} (100%) create mode 100644 patches/0056-Fix-tags_all-Computed-for-PF-resources.patch delete mode 100644 patches/0059-Fix-tags_all-Computed-for-PF-resources.patch rename patches/{0061-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch => 0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch} (100%) rename patches/{0062-Fix-resourceMatchmakingConfigurationUpdate.patch => 0060-Fix-resourceMatchmakingConfigurationUpdate.patch} (100%) delete mode 100644 patches/0060-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch rename patches/{0063-Patch-ComputedOnly-for-rekognition-stream_processor.patch => 0061-Patch-ComputedOnly-for-rekognition-stream_processor.patch} (100%) rename patches/{0064-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch => 0062-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch} (100%) rename patches/{0065-Patch-tags_all-computed-for-aws_rds_integration.patch => 0063-Patch-tags_all-computed-for-aws_rds_integration.patch} (95%) create mode 100644 patches/0064-Adapt-gamelift-matchmaking-resources.patch create mode 100644 patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch create mode 100644 sdk/dotnet/Bedrock/GetAgentAgentVersions.cs create mode 100644 sdk/dotnet/Bedrock/Guardrail.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummary.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigArgs.cs create mode 100644 sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigGetArgs.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/AgentAgentKnowledgeBaseAssociationTimeouts.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryResult.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfigFiltersConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailTimeouts.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfigTopicsConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigManagedWordListsConfig.cs create mode 100644 sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigWordsConfig.cs create mode 100644 sdk/dotnet/CloudTrail/OrganizationDelegatedAdminAccount.cs create mode 100644 sdk/dotnet/DataZone/EnvironmentProfile.cs create mode 100644 sdk/dotnet/DataZone/FormType.cs create mode 100644 sdk/dotnet/DataZone/GlossaryTerm.cs create mode 100644 sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeImportArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeImportGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeModelArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeModelGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsArgs.cs create mode 100644 sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/DataZone/Outputs/EnvironmentProfileUserParameter.cs create mode 100644 sdk/dotnet/DataZone/Outputs/FormTypeImport.cs create mode 100644 sdk/dotnet/DataZone/Outputs/FormTypeModel.cs create mode 100644 sdk/dotnet/DataZone/Outputs/FormTypeTimeouts.cs create mode 100644 sdk/dotnet/DataZone/Outputs/GlossaryTermTermRelations.cs create mode 100644 sdk/dotnet/DataZone/Outputs/GlossaryTermTimeouts.cs rename sdk/dotnet/Lex/Inputs/{V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.cs => V2modelsSlotTypeSlotTypeValuesSampleValueArgs.cs} (65%) rename sdk/dotnet/Lex/Inputs/{V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs.cs => V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs.cs} (64%) rename sdk/dotnet/Lex/Outputs/{V2modelsSlotTypeSlotTypeValuesSlotTypeValue.cs => V2modelsSlotTypeSlotTypeValuesSampleValue.cs} (80%) create mode 100644 sdk/dotnet/Pinpoint/EmailTemplate.cs create mode 100644 sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateArgs.cs create mode 100644 sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateGetArgs.cs create mode 100644 sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderArgs.cs create mode 100644 sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderGetArgs.cs create mode 100644 sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplate.cs create mode 100644 sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplateHeader.cs create mode 100644 sdk/go/aws/bedrock/getAgentAgentVersions.go create mode 100644 sdk/go/aws/bedrock/guardrail.go create mode 100644 sdk/go/aws/cloudtrail/organizationDelegatedAdminAccount.go create mode 100644 sdk/go/aws/datazone/environmentProfile.go create mode 100644 sdk/go/aws/datazone/formType.go create mode 100644 sdk/go/aws/datazone/glossaryTerm.go create mode 100644 sdk/go/aws/pinpoint/emailTemplate.go create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/Guardrail.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummary.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigFiltersConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigWordsConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentKnowledgeBaseAssociationTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummary.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfigFiltersConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfigTopicsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigManagedWordListsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigWordsConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccount.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccountArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudtrail/inputs/OrganizationDelegatedAdminAccountState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfile.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfileArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/FormTypeArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTerm.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTermArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileUserParameterArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeImportArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeModelArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTermRelationsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/EnvironmentProfileUserParameter.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeImport.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeModel.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTermRelations.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTimeouts.java rename sdk/java/src/main/java/com/pulumi/aws/lex/inputs/{V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.java => V2modelsSlotTypeSlotTypeValuesSampleValueArgs.java} (64%) rename sdk/java/src/main/java/com/pulumi/aws/lex/outputs/{V2modelsSlotTypeSlotTypeValuesSlotTypeValue.java => V2modelsSlotTypeSlotTypeValuesSampleValue.java} (79%) create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplate.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateHeaderArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplate.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplateHeader.java create mode 100644 sdk/nodejs/bedrock/getAgentAgentVersions.ts create mode 100644 sdk/nodejs/bedrock/guardrail.ts create mode 100644 sdk/nodejs/cloudtrail/organizationDelegatedAdminAccount.ts create mode 100644 sdk/nodejs/datazone/environmentProfile.ts create mode 100644 sdk/nodejs/datazone/formType.ts create mode 100644 sdk/nodejs/datazone/glossaryTerm.ts create mode 100644 sdk/nodejs/pinpoint/emailTemplate.ts create mode 100644 sdk/python/pulumi_aws/bedrock/get_agent_agent_versions.py create mode 100644 sdk/python/pulumi_aws/bedrock/guardrail.py create mode 100644 sdk/python/pulumi_aws/cloudtrail/organization_delegated_admin_account.py create mode 100644 sdk/python/pulumi_aws/datazone/environment_profile.py create mode 100644 sdk/python/pulumi_aws/datazone/form_type.py create mode 100644 sdk/python/pulumi_aws/datazone/glossary_term.py create mode 100644 sdk/python/pulumi_aws/pinpoint/email_template.py diff --git a/examples/go.mod b/examples/go.mod index ddff887b1c5..3c9058c22ca 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -67,7 +67,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 // indirect github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4 // indirect github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/appconfig v1.31.3 // indirect @@ -79,9 +79,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3 // indirect - github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0 // indirect + github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.44.4 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.22.4 // indirect @@ -107,7 +107,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3 // indirect github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.27.3 // indirect @@ -117,9 +117,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1 // indirect github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3 // indirect - github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4 // indirect github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.16.4 // indirect @@ -144,12 +144,12 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.31.3 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.47.0 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.48.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 // indirect @@ -162,15 +162,16 @@ require ( github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 // indirect - github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fis v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2 // indirect + github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.92.0 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.94.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4 // indirect github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/identitystore v1.25.3 // indirect @@ -194,25 +195,27 @@ require ( github.com/aws/aws-sdk-go-v2/service/kinesis v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/lakeformation v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.56.3 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3 // indirect github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0 // indirect + github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/m2 v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.15.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/memorydb v1.21.5 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 // indirect - github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0 // indirect github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.13.4 // indirect @@ -221,6 +224,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/osis v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.42.3 // indirect github.com/aws/aws-sdk-go-v2/service/pricing v1.30.3 // indirect @@ -241,9 +245,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/route53 v1.42.3 // indirect github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/rum v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 // indirect github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 // indirect @@ -261,7 +270,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/signer v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/sns v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 // indirect @@ -285,7 +294,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/workspaces v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/xray v1.27.3 // indirect - github.com/aws/smithy-go v1.20.3 // indirect + github.com/aws/smithy-go v1.20.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beevik/etree v1.4.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect @@ -347,7 +356,7 @@ require ( github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/hc-install v0.7.0 // indirect + github.com/hashicorp/hc-install v0.8.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect @@ -362,7 +371,7 @@ require ( github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 // indirect - github.com/hashicorp/terraform-plugin-testing v1.9.0 // indirect + github.com/hashicorp/terraform-plugin-testing v1.10.0 // indirect github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220923175450-ca71523cdc36 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect @@ -435,7 +444,7 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect diff --git a/examples/go.sum b/examples/go.sum index c21e534a3d0..14698c71a13 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1265,8 +1265,8 @@ github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 h1:GZ7eaCsYZar0pOQPzBJeP8ImF github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 h1:o1cMErMp45oKZ2ScvBOdVXYhvu6FdUcz0Xn+JpDd408= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3/go.mod h1:TuSBSV1IedYHHrC4A3bW84WjQXNSzc6XasgvuDRDb4E= -github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 h1:Plmg9O8/Pt4SKvPtUfSqCfv+SSSllouzlISFcvHK4bM= -github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3/go.mod h1:aP9g/m4SSSWUU+htIGXJIY8qy+pGydwr3gpt3OcjBJE= +github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0 h1:AahC79lvGvneGrV4eKufnVjdUW/KySMvwsByQtkumXc= +github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0/go.mod h1:aP9g/m4SSSWUU+htIGXJIY8qy+pGydwr3gpt3OcjBJE= github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4 h1:tya0sBEw+Sb9ztjykjX+InfZLufo4v1XyXhy4uPsyW4= github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4/go.mod h1:jmTl7BrsxCEUl4HwtL9tCDVfmSmCwatcUQA7QXgtT34= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.22.4 h1:CRu+uzE4qzjJBNkcwCKdzGzx1bMPsmulB7q8qyoa6FI= @@ -1289,12 +1289,12 @@ github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3 h1:UorKcN0SsvTcL4CGZsh2xcK3 github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3/go.mod h1:Jei7cWyXVkr10MXWBHbbFDIzDWEsVRGDicGNE2Kh05M= github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3 h1:x6wptcqKbH2eQw7v43MI25ILW3OtIyYwZ9gifEM0DW8= github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3/go.mod h1:buTv8bJjlKxqALyK7/2G1206H/YYllu0R/F9Hz0rhv4= -github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0 h1:novlmw4mzemK9FHfneoni0pG0eCPISgeW72apbWSxdY= -github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0/go.mod h1:zgB9SASIAI0KWFuUSlo9pGC37f6DDjh1ZJfZEhQcPhU= +github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0 h1:fEUEq067unJlCnfcXPBAqS7ZrP4yI1Po8SB6gJsWBwE= +github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0/go.mod h1:zgB9SASIAI0KWFuUSlo9pGC37f6DDjh1ZJfZEhQcPhU= github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0 h1:JAfFXlcC/DzLu6+5QOMAHCCq0spH59Ex00idQUyWkyM= github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0/go.mod h1:1BIEiY+76rNP8PEcv/Iyt7ybml38JqitIbrHfMDEYb8= -github.com/aws/aws-sdk-go-v2/service/athena v1.44.3 h1:T2tJUqFEs8+2944NHspI3dRFELzKH4HfPXdrrIy18WA= -github.com/aws/aws-sdk-go-v2/service/athena v1.44.3/go.mod h1:Vn+X6oPpEMNBFAlGGHHNiNc+Tk10F3dPYLbtbED7fIE= +github.com/aws/aws-sdk-go-v2/service/athena v1.44.4 h1:/pKCxCslWWJpiVuYD1cF5xaklegUpG+qfAg1314DnIM= +github.com/aws/aws-sdk-go-v2/service/athena v1.44.4/go.mod h1:Vn+X6oPpEMNBFAlGGHHNiNc+Tk10F3dPYLbtbED7fIE= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3 h1:bUG4DuAXPb0inqsuG/kugMUwsJxxc2l7Sw2+jR+lvmI= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3/go.mod h1:2uO8WcgMPuckIGMQd4HpDsUFhE8G6t3MkMNnrqREnl0= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.3 h1:y4kBd6IXizNoJ1QnVa1kFFmonxnv6mm6z+q7z0Jkdhg= @@ -1345,8 +1345,8 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3 h1:pnvujeesw3tP0iDLK github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3/go.mod h1:eJZGfJNuTmvBgiy2O5XIPlHMBi4GUYoJoKZ6U6wCVVk= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3 h1:9eAjfGKFWduKyCR94Qi/JfORoJLndGydph2dcLtM7gI= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3/go.mod h1:AdirH4VV5v1ik2pOOU0WdEdojBBgzTdECBrOQl0ojOc= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3 h1:v+CiUB5RsmyRpGQ5Tddwn3prS1Y+uCIKVAzZ0Wb3Nyk= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3/go.mod h1:HDiBVjDHX2n7UGFgynZLkVGPXvEnurxlEeaxPF/Ql/0= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0 h1:6PFiOLDIeIvzBKdeIBT9ZnR+SJbEAlHV5k+wrwfzzfw= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0/go.mod h1:HDiBVjDHX2n7UGFgynZLkVGPXvEnurxlEeaxPF/Ql/0= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3 h1:Bz3QJAdZd1z1rxlllKMl0s5y8kjbryqeMhlX57XJ5q8= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3/go.mod h1:R3dXCLxoYZu1zDODLw810Je3DOydgMUC2MZqyf8Gi9g= github.com/aws/aws-sdk-go-v2/service/codecommit v1.25.0 h1:EyXii3hsD7M6mLoZjVbnIo14NI+ig8lopPGYVua/a+M= @@ -1365,12 +1365,12 @@ github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3 h1:dOpVsTQ+KP github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3/go.mod h1:jzetUSpzLqwmfFc8YWImGPkkrgNrQHR0AeDSPZBVVNY= github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5 h1:iMKC49JNJGq0MLvdKU7DSuB5uZUg33bIfcasNZjoMh4= github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5/go.mod h1:nEqtURWmhc/EXQ1yYIoEtvCqQYgl5yYKxdQU8taJnv0= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0 h1:avuVTcO5UlAqeRGgldWXHv9yvanZmC7Ss8vszi9Cc/c= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0/go.mod h1:aynIysFCBIq18wfN2GrIYAeofOnQKV3LtkjyrQKfaFY= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1 h1:sUmqM7zfIHud8iY+fTGcnJXZIVLVcepUv0Vflvmya58= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1/go.mod h1:aynIysFCBIq18wfN2GrIYAeofOnQKV3LtkjyrQKfaFY= github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3 h1:3ZaUAjyN1VEdvH8xVTu87GLDpzp/BDTb5WjqpHU8po8= github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3/go.mod h1:IKMf00PVvTyj1E/ey0MGDuI58VHdRiiMtAf/2+c74EE= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3 h1:0T+EzT9/cWUDqMmZ1Hvg7l7ZOso3satQ2T9trD8T6Ro= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3/go.mod h1:Du8rTxK7DvQDcYWZnAH2kJfCxvIwNfKcdb/1MJJzmn4= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4 h1:eTi7MoaDP2nv0cUUirWN7fduCYVIMJbYRgvVItd/D60= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4/go.mod h1:Du8rTxK7DvQDcYWZnAH2kJfCxvIwNfKcdb/1MJJzmn4= github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3 h1:Ir1tfXyCY3XE/ENEb0mRUBn6VoWb1w9SDKYFwO+otJI= github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3/go.mod h1:Z4sA07QNZ7IWEix3oW3QeiIe21jaCTTOW8ftLgeWI3s= github.com/aws/aws-sdk-go-v2/service/connectcases v1.19.3 h1:6UpDqIDPvl6j+OpjjMfAWRyAKfNvZdRp6e88/gKubis= @@ -1419,8 +1419,8 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 h1:ss4Ib/kWbYA4pveQtSOluDE/Kf0e github.com/aws/aws-sdk-go-v2/service/drs v1.28.3/go.mod h1:tjzPl3EOCkojHm9Q4y+Kuq7GGSJJw/P0UIqc4eHvtFI= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4 h1:utG3S4T+X7nONPIpRoi1tVcQdAdJxntiVS2yolPJyXc= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4/go.mod h1:q9vzW3Xr1KEXa8n4waHiFt1PrppNDlMymlYP+xpsFbY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 h1:ta62lid9JkIpKZtZZXSj6rP2AqY5x1qYGq53ffxqD9Q= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0 h1:t8ACYzijrk828orkkmk0GT+RQnB1sQ7tXBIFq58yG0M= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY= github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0 h1:lZoKOTEQUf5Oi9qVaZM/Hb0Z6SHIwwpDjbLFOVgB2t8= github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0/go.mod h1:RhaP7Wil0+uuuhiE4FzOOEFZwkmFAk1ZflXzK+O3ptU= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 h1:n2eqzO9VabUkd77b88Hos6OEtbGohB/TRrtXLTZi38Y= @@ -1429,8 +1429,8 @@ github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 h1:JkVDQ9mfUSwMOGWIEmyB74mIznjK github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3/go.mod h1:MsQWy/90Xwn3cy5u+eiiXqC521xIm21wOODIweLo4hs= github.com/aws/aws-sdk-go-v2/service/efs v1.31.3 h1:vHNTbv0pFB/E19MokZcWAxZIggWgcLlcixNePBe6iZc= github.com/aws/aws-sdk-go-v2/service/efs v1.31.3/go.mod h1:P1X7sDHKpqZCLac7bRsFF/EN2REOgmeKStQTa14FpEA= -github.com/aws/aws-sdk-go-v2/service/eks v1.47.0 h1:u0VeIQ02COfhmp37ub8zv29bdRtosCYzXoWd+QRebbY= -github.com/aws/aws-sdk-go-v2/service/eks v1.47.0/go.mod h1:awleuSoavuUt32hemzWdSrI47zq7slFtIj8St07EXpE= +github.com/aws/aws-sdk-go-v2/service/eks v1.48.0 h1:KuCjjkUNMUn8RV5ncnJ5rUlkkzKqS5qod67jgU4k/aA= +github.com/aws/aws-sdk-go-v2/service/eks v1.48.0/go.mod h1:awleuSoavuUt32hemzWdSrI47zq7slFtIj8St07EXpE= github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5 h1:SIr8tXccDSncRPMK4Fifl9r6sBqHiHSFepSdIFxSfE8= github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5/go.mod h1:OcUtpbcNsyMdA/Wv5XenKl8aG3yrqA6HVIOF7ms+Ikc= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 h1:OA2kqnEcSqpnznO4hb4MKDXxeCRuEkADGgnihLwvn4E= @@ -1455,24 +1455,26 @@ github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 h1:Y8VS/XHyeJ1cxSCtmvUOFLq github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3/go.mod h1:xbE7o+ADq+h0DeKA/05618ox75wY/jtoZTF9XuvSvnI= github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 h1:1ovnU04ZuvpaqJUGmqrcwJ9xZViHmdJpZQ0NUqMT5co= github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= -github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 h1:NwddG0xUTBM2zoq4D8rotQmT2Z/S8IGM+D2wYzKFSQs= -github.com/aws/aws-sdk-go-v2/service/fis v1.26.3/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= +github.com/aws/aws-sdk-go-v2/service/fis v1.27.0 h1:UfzjSUfxR7Suy/t1OfkExG0s1vxPgIP1//gIYutlZ9I= +github.com/aws/aws-sdk-go-v2/service/fis v1.27.0/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 h1:QeYAz3JhpkTxkS+fifDBfmgWFdSRBI21MQzN2bCO1xo= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3/go.mod h1:GXASgVouW5X/bmEgOoV/tkzJkp5ib7ZeA+YxMc5piqs= github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2 h1:EDZ4UX4c8NJl5Zm2tj1OlbVdNA0wv2xNt55L6g38Va4= github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2/go.mod h1:OKCxqzNOd8LpwsIgoWIhjTkDONHuv3uLoObiT/fbS4Q= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3 h1:VPxT+CQtkd3KB2UHF851tDSUcfExpJCY/Jc/KuuZ1x0= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3/go.mod h1:qwK24U3+b0JBk154r1NkgAJzMfV3qUVktUB2WrBtFwc= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 h1:de8RU808VMx8km6t2wY3WDWigB6GqbNEcyVQRJFaIYs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3/go.mod h1:F/qjepwnxPHHUTK9ikZp14jLyrvB18kZ/22MmaPxtHE= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 h1:nlm6tZX8gwsVktDKTQe3IOagNVK1+6CGf9IpdWM6x+E= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= -github.com/aws/aws-sdk-go-v2/service/glue v1.92.0 h1:6Ah/jvbCgwjii/37TmzYlBNmcTMIgye72GaIVqvV0dM= -github.com/aws/aws-sdk-go-v2/service/glue v1.92.0/go.mod h1:FewbVAhRiTt+/8nKDBFTY68lTmtKlI6QMPKMB6aMboQ= +github.com/aws/aws-sdk-go-v2/service/glue v1.94.0 h1:UP0b6p3uL6WzRPsBUAAEmoJLDTKJXqPbi5rJ24GLSx4= +github.com/aws/aws-sdk-go-v2/service/glue v1.94.0/go.mod h1:FewbVAhRiTt+/8nKDBFTY68lTmtKlI6QMPKMB6aMboQ= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 h1:riHLAJSqo5zczCyMSo8XDA46X2aDpQvB46F0seKuNEM= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3/go.mod h1:2ipW9QX9MlePs99Dy8ohwfdW847hMJG6BU9jvixIpxE= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 h1:5KauP/IHPWGoHni4mt2Sjp0EtHMkdWtPP3v81qaHHyg= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3/go.mod h1:Cw18f8jWmb5IQlxd48bIDSXOPfKf5am3Zr9GnOyCcTw= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 h1:qo3UtqkypEXmUSOGepFqFt1bbEi1EAsJcHm6I3WQtOk= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3/go.mod h1:upTLlgFk3Yw83uo6jNxlFD2EdU/iwZc+FM1OG+Zhikw= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4 h1:1FrnSFwFHcH3SW9yfg2HY4cQG5+IOg4/Yo9z1/BezcA= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4/go.mod h1:upTLlgFk3Yw83uo6jNxlFD2EdU/iwZc+FM1OG+Zhikw= github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3 h1:V7+xcerreGBsoLqraRPAJRCaFiN/04kP85mMeQjgRO4= github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3/go.mod h1:zjxzcOjdQYMgh90Xm5XRVbeQD7bSeD7XaPB77CNq1C8= github.com/aws/aws-sdk-go-v2/service/healthlake v1.26.3 h1:hIlZp+8MV4c5dWOelj4ygDv8w/uyuKURga1FHT8MI44= @@ -1521,6 +1523,8 @@ github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3 h1:jlRe7BuV+4SghH9 github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3/go.mod h1:qb0UKyBXIZbkXmn8M3WoRRZPyfbr1exhN1F21Od1S2o= github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2 h1:0ihcsCNzq2iuIaNEiLDFd7YcUKnuhNvKjoGWV+WaEpA= github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2/go.mod h1:MTVEJMay748rHk8FSi6SqxyOsehY0dbcG+R+KOp9Oig= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3 h1:Ag5oIVdwWHGu4Da0lNPg6iivuQJUmTzBaAyJz7eY7M8= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3/go.mod h1:ZwH9gpRAFa3TSocqR5Qm+Vb1sUBitXq0N1+n67ljqcw= github.com/aws/aws-sdk-go-v2/service/kms v1.35.3 h1:UPTdlTOwWUX49fVi7cymEN6hDqCwe3LNv1vi7TXUutk= github.com/aws/aws-sdk-go-v2/service/kms v1.35.3/go.mod h1:gjDP16zn+WWalyaUqwCCioQ8gU8lzttCCc9jYsiQI/8= github.com/aws/aws-sdk-go-v2/service/lakeformation v1.35.3 h1:Rfl7JjXVdriUprd8TTlbgcTyPU/Pl+v/O/nMD9HYpgA= @@ -1531,6 +1535,8 @@ github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3 h1:HlZn+zJoCEFuUvKLGbGX github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3/go.mod h1:IJIHGsE1X4tRCw3s+SMG0NlIQM4yM7rlj5CfUDqT/+M= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0 h1:xA65FxW3dErPwbSXxqfvS4nddclWOqSNGXfy9f32rEU= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0/go.mod h1:GE1lDQwM3Dm7Fysaet+yeNanYwwTvfLIUlK3P/owUw8= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3 h1:oUTGt/MXO80UlPnEL6vfZjsdaK+M5/kiBQueB5r3/WI= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3/go.mod h1:tIZEgscb0JE5oYdt3zbdMTiB/zZlsPW2XFCkiZnDtco= github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3 h1:dy4sbyGy7BS4c0KaPZwg1P5ZP+lW+auTVcPiwrmbn8M= github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3/go.mod h1:EMgqMhof+RuaYvQavxKC0ZWvP7yB4B4NJhP+dbm13u0= github.com/aws/aws-sdk-go-v2/service/location v1.40.3 h1:7wOe0NlRIY/BHJlMHUxkBsChapWvdiVBZQ1myhxWLhc= @@ -1543,8 +1549,8 @@ github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 h1:Y79CoATONI7M7deTCC5 github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0/go.mod h1:6cpEF3W3oCNX9shBj9N3lrehYdxLuzDbYZdhOiaoN94= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 h1:1ls4o+377rEfTuZ4YaqDrSo75qpC1ySv8m2FfVk23tw= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3/go.mod h1:JAiHALb6LfTclPNBdUUTL8xmDZcwBCTbSVgJEkgiIv4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 h1:H1cqEGQ5rFpTPZawnOH8txXm2+KksldmlaIrAGBifOc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= +github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0 h1:d4hRdipJh3IzlaxPJ5NARzGy61CmEoRwzp2wRyt0G+s= +github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 h1:fBtklFkqk6QhJBzSBgNJiwWySt1RvspmvCvY+giXgdI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3/go.mod h1:BejXbLdRRWr6uMl4wZrz3iAcJDVgJu3EEstqDq8wxEE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.15.0 h1:1uii7pAgncfem27f3/Fi86kXK0TASrbujiq1Wn0ETA0= @@ -1557,8 +1563,8 @@ github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 h1:SyRcb9GRPcoNKCuLnpj1qGIr/8stn github.com/aws/aws-sdk-go-v2/service/mq v1.25.3/go.mod h1:Xu8nT/Yj64z5Gj1ebVB3drPEIBsPNDoFhx2xZDrdGlc= github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 h1:lptYTP7Br5zll9USf2aKY1ZlN69vYAlZOSCv1Q+k1S4= github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 h1:XEbvRhi+ELazJaqh8k0KgTZrAgXM3rmR0hsGPTIpUIo= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0 h1:2x6N4qsLINDC7rWxucwNDe61WWqKLBnjNksLqHA+s9w= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0 h1:mvbaX3/zHNXRHqHNuk6NOS3JkaxqxPYLqWC4v7tObTI= github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 h1:I+m+rITTdVA9BNJeuCzYgMQjqbUE10xcY0OqgBvFEFE= @@ -1575,6 +1581,8 @@ github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3 h1:9oQMCF4oLvWS github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3/go.mod h1:NNyvgUO7XweCVxGTSnllS6XdsD/9Il6Kc63D/stKgiM= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3 h1:xKVSPlN0K1r9VBe6MaKHgUi3EvJotLE9s4etstJq0jw= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3/go.mod h1:4Lk91jzPQQKOzml7LHOR/zAE5FF4+mL0CPrArI8vnCY= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3 h1:uBukpBpEOhnT/iWfhiunEjbPTWXgurgLUr5NJlk7yJk= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3/go.mod h1:yv43WVYryFKJFbThuv8mHV3zGt4RfnzB/+Om7iwRyxs= github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3 h1:fYZlFa1OvrgaFODrdf0KVDp4qCRHMZNr8S/F3aGNuno= github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3/go.mod h1:S0g2KF8IpU6Ptn46eSywrS+w1PMUwrf/xWF8szcTZ2Q= github.com/aws/aws-sdk-go-v2/service/polly v1.42.3 h1:MuoVKFJr/TUimLdT6nvio+OehAPM7kILgNLF3rYcaP0= @@ -1615,12 +1623,22 @@ github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3 h1:VGLIgiClxmwxBpGzH github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3/go.mod h1:Kgq5O7ZaDk0mTZmX6YCL+ZtZ1YcJHtGsVubp0OT77MA= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3 h1:N4f5sliNiWcp3abC+8YpcaVjXuaNJIlz/dBd+saimm0= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3/go.mod h1:r2B4BvTn3zSMK+BFHGl0q63B/nJMOk9/NukLZzqO8sY= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3 h1:apYav6exfbLJ+kRGPa27GTrUuCS4ctI0mJEeiDxSeDE= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3/go.mod h1:citOcziml/EM6I2ycb7XHuBw0whC8jVD2y+vU7wQD4k= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3 h1:M6D+IRT6YdeL+qLIdy4u4zEoMOqq3lJnNUGt0cxEI04= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3/go.mod h1:y4m7VlTWV77mBzMdAZWjudnobe0E77tKy5Z9+IQIku0= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3 h1:qbQ9OMsuBvjTfSiY8S7/mxezvSRtjyqcZcoBtPN4sqo= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3/go.mod h1:BQBJkxokRLgXiBgHDYichq3aNynMRSqXu26Z2Fd8bao= github.com/aws/aws-sdk-go-v2/service/rum v1.19.3 h1:DR+GYJRPL7eEZknnGdwm+lH686LmUBB/X2YVQDHLNY4= github.com/aws/aws-sdk-go-v2/service/rum v1.19.3/go.mod h1:5jFxbuc05P/+BbJvVbBspMbzDR2IFU0LegQG3iUvj8g= github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 h1:hT8ZAZRIfqBqHbzKTII+CIiY8G2oC9OpLedkZ51DWl8= github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3/go.mod h1:Lcxzg5rojyVPU/0eFwLtcyTaek/6Mtic5B1gJo7e/zE= github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 h1:3De8/YQpup0mLNKh0G9JHWJLEkWNdghd5z84vw4v+yw= github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3/go.mod h1:sUA7DOI2fdRHQQUpvRVfYKTo9P0+UAsWYBHvyqFHcC0= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3 h1:Hg1FVxD9pelFS8j3ilHJDUe6J/Q/VVwzWaNtN8vyNUQ= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3/go.mod h1:GVq0lM4BUD3GyiLzlNWXUq9U/H5t+2eytsEDirQSAn4= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0 h1:daHocIfZjMiDNghao41FO0QqFf6J71aGmxl1+nXQ5PU= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0/go.mod h1:lDmK3DHWV6Y6hpzeUAaXq4w+ks6fFYXdkjavIe8STCE= github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 h1:gmpU7E0ntMzXr+yQQIXbiiueOewf/1BQ9WgeaXo6BcQ= github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3/go.mod h1:jnQp5kPPvEgPmVPm0h/XZPmlx7DQ0pqUiISRO4s6U3s= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 h1:ZJW2OQNpkR8P7URtISmF8twpvz2V0tUN/OgMenlxkao= @@ -1655,8 +1673,8 @@ github.com/aws/aws-sdk-go-v2/service/sns v1.31.3 h1:eSTEdxkfle2G98FE+Xl3db/XAXXV github.com/aws/aws-sdk-go-v2/service/sns v1.31.3/go.mod h1:1dn0delSO3J69THuty5iwP0US2Glt0mx2qBBlI13pvw= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3 h1:Vjqy5BZCOIsn4Pj8xzyqgGmsSqzz7y/WXbN3RgOoVrc= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3/go.mod h1:L0enV3GCRd5iG9B64W35C4/hwsCB00Ib+DKVGTadKHI= -github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3 h1:iu53lwRKbZOGCVUH09g3J0xU8A+bAGVo09VR9K4d0Yg= -github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3/go.mod h1:v7NIzEFIHBiicOMaMTuEmbnzGnqW0d+6ulNALul6fYE= +github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4 h1:hgSBvRT7JEWx2+vEGI9/Ld5rZtl7M5lu8PqdvOmbRHw= +github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4/go.mod h1:v7NIzEFIHBiicOMaMTuEmbnzGnqW0d+6ulNALul6fYE= github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 h1:j2hdqn1dz8FPePLCQNXtDMd/6URmRya2Ys3Um78a1Es= github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3/go.mod h1:jTZ3loeBr6JRNIhq7C24OwjtzEaV9tAJUtWjLIKoin8= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 h1:IXODiFsgKoyW7QVWWHoIjdBB2dWPRFPT5KREfBxHoQ8= @@ -1703,8 +1721,8 @@ github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3 h1:fZVJVU+fgDbHDZpHv4 github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3/go.mod h1:CWln0RlRf0Cc4Csr4HkyXI6BkkIujyTeWuwTo3hijP0= github.com/aws/aws-sdk-go-v2/service/xray v1.27.3 h1:0jSgvovW7R95P8XJiGxYfrnxdryQyClvebJeYbUlecw= github.com/aws/aws-sdk-go-v2/service/xray v1.27.3/go.mod h1:yKewwhgsy9idJZ7oJLrFleYmy2oq/JSLQWdHNgLUYMM= -github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= -github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/beevik/etree v1.4.1 h1:PmQJDDYahBGNKDcpdX8uPy1xRCwoCGVUiW669MEirVI= @@ -2095,8 +2113,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hc-install v0.6.2/go.mod h1:2JBpd+NCFKiHiu/yYCGaPyPHhZLxXTpz8oreHa/a3Ps= github.com/hashicorp/hc-install v0.6.3/go.mod h1:KamGdbodYzlufbWh4r9NRo8y6GLHWZP2GBtdnms1Ln0= -github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= -github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI= +github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -2133,8 +2151,8 @@ github.com/hashicorp/terraform-plugin-mux v0.16.0/go.mod h1:PF79mAsPc8CpusXPfEVa github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-plugin-testing v1.9.0 h1:xOsQRqqlHKXpFq6etTxih3ubdK3HVDtfE1IY7Rpd37o= -github.com/hashicorp/terraform-plugin-testing v1.9.0/go.mod h1:fhhVx/8+XNJZTD5o3b4stfZ6+q7z9+lIWigIYdT6/44= +github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw= +github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= @@ -2530,8 +2548,8 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.14.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= diff --git a/patches/0016-Revert-Update-endpointHashIPAddress.patch b/patches/0016-Revert-Update-endpointHashIPAddress.patch index a07fb0e1ccd..404b3104b3d 100644 --- a/patches/0016-Revert-Update-endpointHashIPAddress.patch +++ b/patches/0016-Revert-Update-endpointHashIPAddress.patch @@ -9,10 +9,10 @@ This commit causes never-converging diffs due to incorrect use of a computed property in hashing. diff --git a/internal/service/route53resolver/endpoint.go b/internal/service/route53resolver/endpoint.go -index 36d7a6477b..62449e6e0f 100644 +index 8bbcf1a699..a36639de0a 100644 --- a/internal/service/route53resolver/endpoint.go +++ b/internal/service/route53resolver/endpoint.go -@@ -435,7 +435,7 @@ func waitEndpointDeleted(ctx context.Context, conn *route53resolver.Route53Resol +@@ -433,7 +433,7 @@ func waitEndpointDeleted(ctx context.Context, conn *route53resolver.Client, id s func endpointHashIPAddress(v interface{}) int { var buf bytes.Buffer m := v.(map[string]interface{}) diff --git a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch index 0e59fb59641..4c615bb3164 100644 --- a/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0018-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -255,10 +255,10 @@ index 961d1f0438..710fd0b998 100644 "hls_ingest": { Type: schema.TypeList, diff --git a/internal/service/memorydb/cluster.go b/internal/service/memorydb/cluster.go -index 2949e693d0..41e116d86e 100644 +index 57542e6c86..9d63e79904 100644 --- a/internal/service/memorydb/cluster.go +++ b/internal/service/memorydb/cluster.go -@@ -74,7 +74,7 @@ func ResourceCluster() *schema.Resource { +@@ -74,7 +74,7 @@ func resourceCluster() *schema.Resource { names.AttrDescription: { Type: schema.TypeString, Optional: true, @@ -268,10 +268,10 @@ index 2949e693d0..41e116d86e 100644 "engine_patch_version": { Type: schema.TypeString, diff --git a/internal/service/memorydb/parameter_group.go b/internal/service/memorydb/parameter_group.go -index bb5a2aa140..c7b0e542f1 100644 +index 0444678df5..f788d07914 100644 --- a/internal/service/memorydb/parameter_group.go +++ b/internal/service/memorydb/parameter_group.go -@@ -53,7 +53,7 @@ func ResourceParameterGroup() *schema.Resource { +@@ -53,7 +53,7 @@ func resourceParameterGroup() *schema.Resource { Type: schema.TypeString, Optional: true, ForceNew: true, @@ -281,10 +281,10 @@ index bb5a2aa140..c7b0e542f1 100644 names.AttrFamily: { Type: schema.TypeString, diff --git a/internal/service/memorydb/subnet_group.go b/internal/service/memorydb/subnet_group.go -index e0793679f8..f187f9c2c8 100644 +index c4c6f7c64b..df3d2d3544 100644 --- a/internal/service/memorydb/subnet_group.go +++ b/internal/service/memorydb/subnet_group.go -@@ -47,7 +47,7 @@ func ResourceSubnetGroup() *schema.Resource { +@@ -47,7 +47,7 @@ func resourceSubnetGroup() *schema.Resource { names.AttrDescription: { Type: schema.TypeString, Optional: true, @@ -333,7 +333,7 @@ index fc60010e7d..0b213b1bf7 100644 names.AttrName: { Type: schema.TypeString, diff --git a/internal/service/rds/cluster_parameter_group.go b/internal/service/rds/cluster_parameter_group.go -index 4cdc5534b8..027f57f753 100644 +index ccfdc6bfcd..609718eef3 100644 --- a/internal/service/rds/cluster_parameter_group.go +++ b/internal/service/rds/cluster_parameter_group.go @@ -51,7 +51,7 @@ func resourceClusterParameterGroup() *schema.Resource { @@ -346,7 +346,7 @@ index 4cdc5534b8..027f57f753 100644 names.AttrFamily: { Type: schema.TypeString, diff --git a/internal/service/rds/option_group.go b/internal/service/rds/option_group.go -index 1cadaf1754..7ddd71cbe5 100644 +index d19358fa76..b13859ab8e 100644 --- a/internal/service/rds/option_group.go +++ b/internal/service/rds/option_group.go @@ -127,7 +127,7 @@ func resourceOptionGroup() *schema.Resource { @@ -359,7 +359,7 @@ index 1cadaf1754..7ddd71cbe5 100644 names.AttrSkipDestroy: { Type: schema.TypeBool, diff --git a/internal/service/rds/parameter_group.go b/internal/service/rds/parameter_group.go -index 7f88932b6f..e5d014a8c8 100644 +index 8c49d1133c..17c729d305 100644 --- a/internal/service/rds/parameter_group.go +++ b/internal/service/rds/parameter_group.go @@ -53,7 +53,7 @@ func resourceParameterGroup() *schema.Resource { @@ -371,330 +371,8 @@ index 7f88932b6f..e5d014a8c8 100644 }, names.AttrFamily: { Type: schema.TypeString, -diff --git a/internal/service/rds/security_group.go b/internal/service/rds/security_group.go -new file mode 100644 -index 0000000000..54d4e61495 ---- /dev/null -+++ b/internal/service/rds/security_group.go -@@ -0,0 +1,316 @@ -+package rds -+ -+import ( -+ "bytes" -+ "context" -+ "fmt" -+ "log" -+ -+ "github.com/aws/aws-sdk-go/aws" -+ "github.com/aws/aws-sdk-go/service/rds" -+ "github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr" -+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag" -+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" -+ "github.com/hashicorp/terraform-provider-aws/internal/conns" -+ "github.com/hashicorp/terraform-provider-aws/internal/create" -+ "github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag" -+ tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" -+ "github.com/hashicorp/terraform-provider-aws/internal/verify" -+ "github.com/hashicorp/terraform-provider-aws/names" -+) -+ -+// @SDKResource("aws_db_security_group", name="DB Security Group") -+// @Tags(identifierAttribute="arn") -+func ResourceSecurityGroup() *schema.Resource { -+ return &schema.Resource{ -+ CreateWithoutTimeout: resourceSecurityGroupCreate, -+ ReadWithoutTimeout: resourceSecurityGroupRead, -+ UpdateWithoutTimeout: resourceSecurityGroupUpdate, -+ DeleteWithoutTimeout: resourceSecurityGroupDelete, -+ Importer: &schema.ResourceImporter{ -+ StateContext: schema.ImportStatePassthroughContext, -+ }, -+ -+ Schema: map[string]*schema.Schema{ -+ "arn": { -+ Type: schema.TypeString, -+ Computed: true, -+ }, -+ -+ "name": { -+ Type: schema.TypeString, -+ Required: true, -+ ForceNew: true, -+ }, -+ -+ "description": { -+ Type: schema.TypeString, -+ Optional: true, -+ ForceNew: true, -+ Default: "Managed by Pulumi", -+ }, -+ -+ "ingress": { -+ Type: schema.TypeSet, -+ Required: true, -+ Elem: &schema.Resource{ -+ Schema: map[string]*schema.Schema{ -+ "cidr": { -+ Type: schema.TypeString, -+ Optional: true, -+ }, -+ -+ "security_group_name": { -+ Type: schema.TypeString, -+ Optional: true, -+ Computed: true, -+ }, -+ -+ "security_group_id": { -+ Type: schema.TypeString, -+ Optional: true, -+ Computed: true, -+ }, -+ -+ "security_group_owner_id": { -+ Type: schema.TypeString, -+ Optional: true, -+ Computed: true, -+ }, -+ }, -+ }, -+ Set: resourceSecurityGroupIngressHash, -+ }, -+ -+ names.AttrTags: tftags.TagsSchema(), -+ names.AttrTagsAll: tftags.TagsSchemaComputed(), -+ }, -+ -+ CustomizeDiff: verify.SetTagsDiff, -+ -+ DeprecationMessage: `With the retirement of EC2-Classic the aws_db_security_group resource has been deprecated and will be removed in a future version.`, -+ } -+} -+ -+func resourceSecurityGroupCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { -+ var diags diag.Diagnostics -+ return sdkdiag.AppendErrorf(diags, `with the retirement of EC2-Classic no new RDS DB Security Groups can be created`) -+} -+ -+func resourceSecurityGroupRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { -+ var diags diag.Diagnostics -+ -+ sg, err := resourceSecurityGroupRetrieve(ctx, d, meta) -+ if err != nil { -+ return sdkdiag.AppendErrorf(diags, "reading RDS DB Security Group (%s): %s", d.Id(), err) -+ } -+ -+ d.Set("name", sg.DBSecurityGroupName) -+ d.Set("description", sg.DBSecurityGroupDescription) -+ -+ // Create an empty schema.Set to hold all ingress rules -+ rules := &schema.Set{ -+ F: resourceSecurityGroupIngressHash, -+ } -+ -+ for _, v := range sg.IPRanges { -+ rule := map[string]interface{}{"cidr": *v.CIDRIP} -+ rules.Add(rule) -+ } -+ -+ for _, g := range sg.EC2SecurityGroups { -+ rule := map[string]interface{}{} -+ if g.EC2SecurityGroupId != nil { -+ rule["security_group_id"] = aws.StringValue(g.EC2SecurityGroupId) -+ } -+ if g.EC2SecurityGroupName != nil { -+ rule["security_group_name"] = aws.StringValue(g.EC2SecurityGroupName) -+ } -+ if g.EC2SecurityGroupOwnerId != nil { -+ rule["security_group_owner_id"] = aws.StringValue(g.EC2SecurityGroupOwnerId) -+ } -+ rules.Add(rule) -+ } -+ -+ d.Set("ingress", rules) -+ -+ arn := aws.StringValue(sg.DBSecurityGroupArn) -+ d.Set("arn", arn) -+ -+ return diags -+} -+ -+func resourceSecurityGroupUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { -+ var diags diag.Diagnostics -+ conn := meta.(*conns.AWSClient).RDSConn() -+ -+ if d.HasChange("ingress") { -+ sg, err := resourceSecurityGroupRetrieve(ctx, d, meta) -+ if err != nil { -+ return sdkdiag.AppendErrorf(diags, "updating RDS DB Security Group (%s): %s", d.Id(), err) -+ } -+ -+ oi, ni := d.GetChange("ingress") -+ if oi == nil { -+ oi = new(schema.Set) -+ } -+ if ni == nil { -+ ni = new(schema.Set) -+ } -+ -+ ois := oi.(*schema.Set) -+ nis := ni.(*schema.Set) -+ removeIngress := ois.Difference(nis).List() -+ newIngress := nis.Difference(ois).List() -+ -+ // DELETE old Ingress rules -+ for _, ing := range removeIngress { -+ err := resourceSecurityGroupRevokeRule(ctx, ing, *sg.DBSecurityGroupName, conn) -+ if err != nil { -+ return sdkdiag.AppendErrorf(diags, "updating RDS DB Security Group (%s): revoking ingress: %s", d.Id(), err) -+ } -+ } -+ -+ // ADD new/updated Ingress rules -+ for _, ing := range newIngress { -+ err := resourceSecurityGroupAuthorizeRule(ctx, ing, *sg.DBSecurityGroupName, conn) -+ if err != nil { -+ return sdkdiag.AppendErrorf(diags, "updating RDS DB Security Group (%s): authorizing ingress: %s", d.Id(), err) -+ } -+ } -+ } -+ -+ return append(diags, resourceSecurityGroupRead(ctx, d, meta)...) -+} -+ -+func resourceSecurityGroupDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { -+ var diags diag.Diagnostics -+ conn := meta.(*conns.AWSClient).RDSConn() -+ -+ log.Printf("[DEBUG] DB Security Group destroy: %v", d.Id()) -+ -+ opts := rds.DeleteDBSecurityGroupInput{DBSecurityGroupName: aws.String(d.Id())} -+ -+ _, err := conn.DeleteDBSecurityGroupWithContext(ctx, &opts) -+ if err != nil { -+ if tfawserr.ErrCodeEquals(err, "InvalidDBSecurityGroup.NotFound") { -+ return diags -+ } -+ return sdkdiag.AppendErrorf(diags, "deleting RDS DB Security Group (%s): %s", d.Id(), err) -+ } -+ -+ return diags -+} -+ -+func resourceSecurityGroupRetrieve(ctx context.Context, d *schema.ResourceData, meta interface{}) (*rds.DBSecurityGroup, error) { -+ conn := meta.(*conns.AWSClient).RDSConn() -+ -+ opts := rds.DescribeDBSecurityGroupsInput{ -+ DBSecurityGroupName: aws.String(d.Id()), -+ } -+ -+ log.Printf("[DEBUG] DB Security Group describe configuration: %#v", opts) -+ -+ resp, err := conn.DescribeDBSecurityGroupsWithContext(ctx, &opts) -+ if err != nil { -+ return nil, fmt.Errorf("Error retrieving DB Security Groups: %s", err) -+ } -+ -+ if len(resp.DBSecurityGroups) != 1 || -+ aws.StringValue(resp.DBSecurityGroups[0].DBSecurityGroupName) != d.Id() { -+ return nil, fmt.Errorf("Unable to find DB Security Group: %#v", resp.DBSecurityGroups) -+ } -+ -+ return resp.DBSecurityGroups[0], nil -+} -+ -+// Authorizes the ingress rule on the db security group -+func resourceSecurityGroupAuthorizeRule(ctx context.Context, ingress interface{}, dbSecurityGroupName string, conn *rds.RDS) error { -+ ing := ingress.(map[string]interface{}) -+ -+ opts := rds.AuthorizeDBSecurityGroupIngressInput{ -+ DBSecurityGroupName: aws.String(dbSecurityGroupName), -+ } -+ -+ if attr, ok := ing["cidr"]; ok && attr != "" { -+ opts.CIDRIP = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_name"]; ok && attr != "" { -+ opts.EC2SecurityGroupName = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_id"]; ok && attr != "" { -+ opts.EC2SecurityGroupId = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_owner_id"]; ok && attr != "" { -+ opts.EC2SecurityGroupOwnerId = aws.String(attr.(string)) -+ } -+ -+ log.Printf("[DEBUG] Authorize ingress rule configuration: %#v", opts) -+ -+ _, err := conn.AuthorizeDBSecurityGroupIngressWithContext(ctx, &opts) -+ if err != nil { -+ return fmt.Errorf("Error authorizing security group ingress: %s", err) -+ } -+ -+ return nil -+} -+ -+// Revokes the ingress rule on the db security group -+func resourceSecurityGroupRevokeRule(ctx context.Context, ingress interface{}, dbSecurityGroupName string, conn *rds.RDS) error { -+ ing := ingress.(map[string]interface{}) -+ -+ opts := rds.RevokeDBSecurityGroupIngressInput{ -+ DBSecurityGroupName: aws.String(dbSecurityGroupName), -+ } -+ -+ if attr, ok := ing["cidr"]; ok && attr != "" { -+ opts.CIDRIP = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_name"]; ok && attr != "" { -+ opts.EC2SecurityGroupName = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_id"]; ok && attr != "" { -+ opts.EC2SecurityGroupId = aws.String(attr.(string)) -+ } -+ -+ if attr, ok := ing["security_group_owner_id"]; ok && attr != "" { -+ opts.EC2SecurityGroupOwnerId = aws.String(attr.(string)) -+ } -+ -+ log.Printf("[DEBUG] Revoking ingress rule configuration: %#v", opts) -+ -+ _, err := conn.RevokeDBSecurityGroupIngressWithContext(ctx, &opts) -+ if err != nil { -+ return fmt.Errorf("Error revoking security group ingress: %s", err) -+ } -+ -+ return nil -+} -+ -+func resourceSecurityGroupIngressHash(v interface{}) int { -+ var buf bytes.Buffer -+ m := v.(map[string]interface{}) -+ -+ if v, ok := m["cidr"]; ok { -+ buf.WriteString(fmt.Sprintf("%s-", v.(string))) -+ } -+ -+ if v, ok := m["security_group_name"]; ok { -+ buf.WriteString(fmt.Sprintf("%s-", v.(string))) -+ } -+ -+ if v, ok := m["security_group_id"]; ok { -+ buf.WriteString(fmt.Sprintf("%s-", v.(string))) -+ } -+ -+ if v, ok := m["security_group_owner_id"]; ok { -+ buf.WriteString(fmt.Sprintf("%s-", v.(string))) -+ } -+ -+ return create.StringHashcode(buf.String()) -+} diff --git a/internal/service/rds/subnet_group.go b/internal/service/rds/subnet_group.go -index c29b2a0f74..ccf853d04b 100644 +index 646add5ad8..2731f4e425 100644 --- a/internal/service/rds/subnet_group.go +++ b/internal/service/rds/subnet_group.go @@ -48,7 +48,7 @@ func resourceSubnetGroup() *schema.Resource { diff --git a/patches/0023-Provide-context-to-conns.patch b/patches/0023-Provide-context-to-conns.patch index c32e1eeffd2..ada240245cd 100644 --- a/patches/0023-Provide-context-to-conns.patch +++ b/patches/0023-Provide-context-to-conns.patch @@ -275,37 +275,6 @@ index 54b86a0426..d9f2424b7a 100644 log.Printf("[INFO] Deleting GameLift Matchmaking Rule Set: %s", d.Id()) _, err := conn.DeleteMatchmakingRuleSet(&gamelift.DeleteMatchmakingRuleSetInput{ Name: aws.String(d.Id()), -diff --git a/internal/service/rds/security_group.go b/internal/service/rds/security_group.go -index 54d4e61495..4f04bdc861 100644 ---- a/internal/service/rds/security_group.go -+++ b/internal/service/rds/security_group.go -@@ -142,7 +142,7 @@ func resourceSecurityGroupRead(ctx context.Context, d *schema.ResourceData, meta - - func resourceSecurityGroupUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - var diags diag.Diagnostics -- conn := meta.(*conns.AWSClient).RDSConn() -+ conn := meta.(*conns.AWSClient).RDSConn(ctx) - - if d.HasChange("ingress") { - sg, err := resourceSecurityGroupRetrieve(ctx, d, meta) -@@ -185,7 +185,7 @@ func resourceSecurityGroupUpdate(ctx context.Context, d *schema.ResourceData, me - - func resourceSecurityGroupDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - var diags diag.Diagnostics -- conn := meta.(*conns.AWSClient).RDSConn() -+ conn := meta.(*conns.AWSClient).RDSConn(ctx) - - log.Printf("[DEBUG] DB Security Group destroy: %v", d.Id()) - -@@ -203,7 +203,7 @@ func resourceSecurityGroupDelete(ctx context.Context, d *schema.ResourceData, me - } - - func resourceSecurityGroupRetrieve(ctx context.Context, d *schema.ResourceData, meta interface{}) (*rds.DBSecurityGroup, error) { -- conn := meta.(*conns.AWSClient).RDSConn() -+ conn := meta.(*conns.AWSClient).RDSConn(ctx) - - opts := rds.DescribeDBSecurityGroupsInput{ - DBSecurityGroupName: aws.String(d.Id()), diff --git a/internal/service/redshift/security_group.go b/internal/service/redshift/security_group.go index 47b5d7cda2..050fee663a 100644 --- a/internal/service/redshift/security_group.go diff --git a/patches/0026-Restore-S3ConnURICleaningDisabled.patch b/patches/0026-Restore-S3ConnURICleaningDisabled.patch index bd29b084e70..10e0d4f4943 100644 --- a/patches/0026-Restore-S3ConnURICleaningDisabled.patch +++ b/patches/0026-Restore-S3ConnURICleaningDisabled.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Restore S3ConnURICleaningDisabled diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go -index 976b936ef7..f39e2c713c 100644 +index f2a8e40182..f4d8ef520e 100644 --- a/internal/conns/awsclient.go +++ b/internal/conns/awsclient.go -@@ -20,6 +20,7 @@ import ( +@@ -19,6 +19,7 @@ import ( + aws_sdkv1 "github.com/aws/aws-sdk-go/aws" session_sdkv1 "github.com/aws/aws-sdk-go/aws/session" opsworks_sdkv1 "github.com/aws/aws-sdk-go/service/opsworks" - rds_sdkv1 "github.com/aws/aws-sdk-go/service/rds" + s3_sdkv1 "github.com/aws/aws-sdk-go/service/s3" baselogging "github.com/hashicorp/aws-sdk-go-base/v2/logging" "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/hashicorp/terraform-provider-aws/internal/errs" -@@ -123,6 +124,13 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { +@@ -112,6 +113,13 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { return c.s3UsePathStyle } @@ -30,7 +30,7 @@ index 976b936ef7..f39e2c713c 100644 // SetHTTPClient sets the http.Client used for AWS API calls. // To have effect it must be called before the AWS SDK v1 Session is created. func (c *AWSClient) SetHTTPClient(_ context.Context, httpClient *http.Client) { -@@ -188,7 +196,7 @@ func (c *AWSClient) DefaultKMSKeyPolicy(context.Context) string { +@@ -177,7 +185,7 @@ func (c *AWSClient) DefaultKMSKeyPolicy(context.Context) string { "Resource": "*" } ] diff --git a/patches/0027-Do-not-compute-tags_all-at-TF-level.patch b/patches/0027-Do-not-compute-tags_all-at-TF-level.patch index 4642b6984e9..6c67fa5ed56 100644 --- a/patches/0027-Do-not-compute-tags_all-at-TF-level.patch +++ b/patches/0027-Do-not-compute-tags_all-at-TF-level.patch @@ -88,24 +88,24 @@ index ffa236c568..5733dd6110 100644 Blocks: map[string]schema.Block{ "control_sets": schema.SetNestedBlock{ diff --git a/internal/service/batch/job_queue.go b/internal/service/batch/job_queue.go -index 9e41a479d9..98ca3ae16c 100644 +index 6a3347c16c..daad08c471 100644 --- a/internal/service/batch/job_queue.go +++ b/internal/service/batch/job_queue.go -@@ -109,7 +109,7 @@ func (r *resourceJobQueue) Schema(ctx context.Context, request resource.SchemaRe +@@ -95,7 +95,7 @@ func (r *jobQueueResource) Schema(ctx context.Context, request resource.SchemaRe }, }, names.AttrTags: tftags.TagsAttribute(), - names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), + names.AttrTagsAll: tftags.TagsAttribute(), }, - } - -diff --git a/internal/service/batch/job_queue_schema.go b/internal/service/batch/job_queue_schema.go -index e8e1a272eb..a4a1625554 100644 ---- a/internal/service/batch/job_queue_schema.go -+++ b/internal/service/batch/job_queue_schema.go -@@ -58,7 +58,7 @@ func jobQueueSchema0(ctx context.Context) schema.Schema { - }, + Blocks: map[string]schema.Block{ + names.AttrTimeouts: timeouts.Block(ctx, timeouts.Opts{ +diff --git a/internal/service/batch/job_queue_migrate.go b/internal/service/batch/job_queue_migrate.go +index 4c20570739..2338b2a656 100644 +--- a/internal/service/batch/job_queue_migrate.go ++++ b/internal/service/batch/job_queue_migrate.go +@@ -39,7 +39,7 @@ func jobQueueSchema0(ctx context.Context) schema.Schema { + Required: true, }, names.AttrTags: tftags.TagsAttribute(), - names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), diff --git a/patches/0032-DisableTagSchemaCheck-for-PF-provider.patch b/patches/0031-DisableTagSchemaCheck-for-PF-provider.patch similarity index 100% rename from patches/0032-DisableTagSchemaCheck-for-PF-provider.patch rename to patches/0031-DisableTagSchemaCheck-for-PF-provider.patch diff --git a/patches/0031-Fix-job-queue-sdkv2-migration.patch b/patches/0031-Fix-job-queue-sdkv2-migration.patch deleted file mode 100644 index 0f6f943307c..00000000000 --- a/patches/0031-Fix-job-queue-sdkv2-migration.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Anton Tayanovskyy -Date: Wed, 6 Dec 2023 23:41:21 -0500 -Subject: [PATCH] Fix job queue sdkv2 migration - - -diff --git a/internal/service/batch/job_queue_schema.go b/internal/service/batch/job_queue_schema.go -index a4a1625554..8057006cad 100644 ---- a/internal/service/batch/job_queue_schema.go -+++ b/internal/service/batch/job_queue_schema.go -@@ -93,6 +93,7 @@ func upgradeJobQueueResourceStateV0toV1(ctx context.Context, req resource.Upgrad - ceo := fwtypes.NewListNestedObjectValueOfNull[computeEnvironmentOrder](ctx) - - jobQueueDataV2 := resourceJobQueueData{ -+ ARN: jobQueueDataV0.ARN, - ComputeEnvironments: jobQueueDataV0.ComputeEnvironments, - ComputeEnvironmentOrder: ceo, - ID: jobQueueDataV0.ID, diff --git a/patches/0033-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch b/patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch similarity index 100% rename from patches/0033-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch rename to patches/0032-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch diff --git a/patches/0034-Fail-fast-when-PF-resources-are-dropped.patch b/patches/0033-Fail-fast-when-PF-resources-are-dropped.patch similarity index 100% rename from patches/0034-Fail-fast-when-PF-resources-are-dropped.patch rename to patches/0033-Fail-fast-when-PF-resources-are-dropped.patch diff --git a/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch similarity index 99% rename from patches/0035-Fix-tags_all-Computed-for-PF-resources.patch rename to patches/0034-Fix-tags_all-Computed-for-PF-resources.patch index 6f472ede12e..7e359a29bb9 100644 --- a/patches/0035-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0034-Fix-tags_all-Computed-for-PF-resources.patch @@ -96,7 +96,7 @@ index 9ff71fe5d7..faba601773 100644 Blocks: map[string]schema.Block{ names.AttrConfiguration: schema.ListNestedBlock{ diff --git a/internal/service/ssmcontacts/rotation.go b/internal/service/ssmcontacts/rotation.go -index b3e48d3f85..e0357dbfd6 100644 +index a9bf12da5f..05403ea048 100644 --- a/internal/service/ssmcontacts/rotation.go +++ b/internal/service/ssmcontacts/rotation.go @@ -70,7 +70,7 @@ func (r *resourceRotation) Schema(ctx context.Context, request resource.SchemaRe diff --git a/patches/0036-Disable-retry-for-KMS-access-denied-in-lambda.patch b/patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch similarity index 100% rename from patches/0036-Disable-retry-for-KMS-access-denied-in-lambda.patch rename to patches/0035-Disable-retry-for-KMS-access-denied-in-lambda.patch diff --git a/patches/0037-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch b/patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch similarity index 100% rename from patches/0037-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch rename to patches/0036-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch diff --git a/patches/0038-Restore-legacy-bucket.patch b/patches/0037-Restore-legacy-bucket.patch similarity index 96% rename from patches/0038-Restore-legacy-bucket.patch rename to patches/0037-Restore-legacy-bucket.patch index 71184c53a53..a66ff64dcb6 100644 --- a/patches/0038-Restore-legacy-bucket.patch +++ b/patches/0037-Restore-legacy-bucket.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Restore legacy bucket diff --git a/go.mod b/go.mod -index ebe45e7ddd..9a7ca645cf 100644 +index bf320606b6..c0c3b81ffc 100644 --- a/go.mod +++ b/go.mod -@@ -238,6 +238,7 @@ require ( +@@ -247,6 +247,7 @@ require ( github.com/gertd/go-pluralize v0.2.1 github.com/google/go-cmp v0.6.0 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 @@ -17,10 +17,10 @@ index ebe45e7ddd..9a7ca645cf 100644 github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.55 github.com/hashicorp/awspolicyequivalence v1.6.0 diff --git a/go.sum b/go.sum -index a3e8359f1b..0d04f41f45 100644 +index 577bb88f9f..3d4c9c102b 100644 --- a/go.sum +++ b/go.sum -@@ -539,6 +539,7 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +@@ -557,6 +557,7 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= @@ -28,7 +28,7 @@ index a3e8359f1b..0d04f41f45 100644 github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -@@ -558,6 +559,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +@@ -576,6 +577,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 h1:l16/Vrl0+x+HjHJWEjcKPwHYoxN9EC78gAFXKlH6m84= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0/go.mod h1:HAmscHyzSOfB1Dr16KLc177KNbn83wscnZC+N7WyaM8= @@ -37,7 +37,7 @@ index a3e8359f1b..0d04f41f45 100644 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.54 h1:O37FpbmkDSmSPgukMJLAzJzo5WBSFQx0iwn4PlY6BKI= github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.54/go.mod h1:TJ+Mz49cn0zKURLX5haphWDbmGWz15OsEiLp1CcXDwY= github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.55 h1:7izXD15MCmPcWbKJ5qAwcSlnWvTwkioIJkq0+OJIJG0= -@@ -633,6 +636,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i +@@ -653,6 +656,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= @@ -45,7 +45,7 @@ index a3e8359f1b..0d04f41f45 100644 github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -@@ -745,6 +749,7 @@ golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +@@ -765,6 +769,7 @@ golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -54,10 +54,10 @@ index a3e8359f1b..0d04f41f45 100644 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go -index f39e2c713c..4584a178b4 100644 +index f4d8ef520e..44b7bedd57 100644 --- a/internal/conns/awsclient.go +++ b/internal/conns/awsclient.go -@@ -124,6 +124,10 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { +@@ -113,6 +113,10 @@ func (c *AWSClient) S3UsePathStyle(context.Context) bool { return c.s3UsePathStyle } diff --git a/patches/0039-Patch-osis_pipeline-tags-flags.patch b/patches/0038-Patch-osis_pipeline-tags-flags.patch similarity index 100% rename from patches/0039-Patch-osis_pipeline-tags-flags.patch rename to patches/0038-Patch-osis_pipeline-tags-flags.patch diff --git a/patches/0040-Allow-creating-lambdas-without-code-related-properti.patch b/patches/0039-Allow-creating-lambdas-without-code-related-properti.patch similarity index 88% rename from patches/0040-Allow-creating-lambdas-without-code-related-properti.patch rename to patches/0039-Allow-creating-lambdas-without-code-related-properti.patch index 72d752cfce3..0c4a0844d61 100644 --- a/patches/0040-Allow-creating-lambdas-without-code-related-properti.patch +++ b/patches/0039-Allow-creating-lambdas-without-code-related-properti.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow creating lambdas without code related properties diff --git a/internal/service/lambda/function.go b/internal/service/lambda/function.go -index 4d25e0e549..ac27e24a03 100644 +index 8cbc84239c..cd8f37d3cd 100644 --- a/internal/service/lambda/function.go +++ b/internal/service/lambda/function.go -@@ -172,9 +172,9 @@ func resourceFunction() *schema.Resource { +@@ -171,9 +171,9 @@ func resourceFunction() *schema.Resource { }, }, "filename": { @@ -21,7 +21,7 @@ index 4d25e0e549..ac27e24a03 100644 }, "function_name": { Type: schema.TypeString, -@@ -211,9 +211,9 @@ func resourceFunction() *schema.Resource { +@@ -210,9 +210,9 @@ func resourceFunction() *schema.Resource { }, }, "image_uri": { @@ -34,7 +34,7 @@ index 4d25e0e549..ac27e24a03 100644 }, "invoke_arn": { Type: schema.TypeString, -@@ -325,10 +325,10 @@ func resourceFunction() *schema.Resource { +@@ -324,10 +324,10 @@ func resourceFunction() *schema.Resource { ValidateDiagFunc: enum.Validate[awstypes.Runtime](), }, names.AttrS3Bucket: { diff --git a/patches/0041-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch b/patches/0040-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch similarity index 100% rename from patches/0041-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch rename to patches/0040-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch diff --git a/patches/0042-fix-legacy-bucket-context.patch b/patches/0041-fix-legacy-bucket-context.patch similarity index 100% rename from patches/0042-fix-legacy-bucket-context.patch rename to patches/0041-fix-legacy-bucket-context.patch diff --git a/patches/0043-securitylake_subscriber-tags_all-patch.patch b/patches/0042-securitylake_subscriber-tags_all-patch.patch similarity index 100% rename from patches/0043-securitylake_subscriber-tags_all-patch.patch rename to patches/0042-securitylake_subscriber-tags_all-patch.patch diff --git a/patches/0044-Patch-tags-ComputedOnly-for-m2-resources.patch b/patches/0043-Patch-tags-ComputedOnly-for-m2-resources.patch similarity index 100% rename from patches/0044-Patch-tags-ComputedOnly-for-m2-resources.patch rename to patches/0043-Patch-tags-ComputedOnly-for-m2-resources.patch diff --git a/patches/0045-restore-ECRConn.patch b/patches/0044-restore-ECRConn.patch similarity index 80% rename from patches/0045-restore-ECRConn.patch rename to patches/0044-restore-ECRConn.patch index 680aa61b02e..4c3057c0839 100644 --- a/patches/0045-restore-ECRConn.patch +++ b/patches/0044-restore-ECRConn.patch @@ -5,18 +5,18 @@ Subject: [PATCH] restore ECRConn diff --git a/internal/conns/awsclient_gen.go b/internal/conns/awsclient_gen.go -index 320b1d884b..dffbdea2db 100644 +index 8cc66cce0a..cb5d50fc52 100644 --- a/internal/conns/awsclient_gen.go +++ b/internal/conns/awsclient_gen.go -@@ -224,6 +224,7 @@ import ( +@@ -232,6 +232,7 @@ import ( + workspacesweb_sdkv2 "github.com/aws/aws-sdk-go-v2/service/workspacesweb" xray_sdkv2 "github.com/aws/aws-sdk-go-v2/service/xray" - batch_sdkv1 "github.com/aws/aws-sdk-go/service/batch" connect_sdkv1 "github.com/aws/aws-sdk-go/service/connect" + ecr_sdkv1 "github.com/aws/aws-sdk-go/service/ecr" elasticsearchservice_sdkv1 "github.com/aws/aws-sdk-go/service/elasticsearchservice" emr_sdkv1 "github.com/aws/aws-sdk-go/service/emr" - gamelift_sdkv1 "github.com/aws/aws-sdk-go/service/gamelift" -@@ -589,6 +590,10 @@ func (c *AWSClient) EC2Client(ctx context.Context) *ec2_sdkv2.Client { + imagebuilder_sdkv1 "github.com/aws/aws-sdk-go/service/imagebuilder" +@@ -582,6 +583,10 @@ func (c *AWSClient) EC2Client(ctx context.Context) *ec2_sdkv2.Client { return errs.Must(client[*ec2_sdkv2.Client](ctx, c, names.EC2, make(map[string]any))) } diff --git a/patches/0046-update-testing-types.patch b/patches/0045-update-testing-types.patch similarity index 100% rename from patches/0046-update-testing-types.patch rename to patches/0045-update-testing-types.patch diff --git a/patches/0047-restore-ecr-NewConn.patch b/patches/0046-restore-ecr-NewConn.patch similarity index 100% rename from patches/0047-restore-ecr-NewConn.patch rename to patches/0046-restore-ecr-NewConn.patch diff --git a/patches/0048-update-apn-info.patch b/patches/0047-update-apn-info.patch similarity index 100% rename from patches/0048-update-apn-info.patch rename to patches/0047-update-apn-info.patch diff --git a/patches/0049-non-idempotent-sns-topic-creation.patch b/patches/0048-non-idempotent-sns-topic-creation.patch similarity index 100% rename from patches/0049-non-idempotent-sns-topic-creation.patch rename to patches/0048-non-idempotent-sns-topic-creation.patch diff --git a/patches/0050-Normalize-retentionDays-in-aws_controltower_landing_.patch b/patches/0049-Normalize-retentionDays-in-aws_controltower_landing_.patch similarity index 99% rename from patches/0050-Normalize-retentionDays-in-aws_controltower_landing_.patch rename to patches/0049-Normalize-retentionDays-in-aws_controltower_landing_.patch index 6e89198d09e..e4327673466 100644 --- a/patches/0050-Normalize-retentionDays-in-aws_controltower_landing_.patch +++ b/patches/0049-Normalize-retentionDays-in-aws_controltower_landing_.patch @@ -14,7 +14,7 @@ According to https://docs.aws.amazon.com/controltower/latest/userguide/lz-api-la preferred one. diff --git a/internal/service/controltower/landing_zone.go b/internal/service/controltower/landing_zone.go -index c2f2830b9c..299e7653c1 100644 +index de5706bba9..c213c677f8 100644 --- a/internal/service/controltower/landing_zone.go +++ b/internal/service/controltower/landing_zone.go @@ -5,8 +5,10 @@ package controltower diff --git a/patches/0051-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch b/patches/0050-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch similarity index 99% rename from patches/0051-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch rename to patches/0050-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch index 106bed02d42..69e9760a0d3 100644 --- a/patches/0051-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch +++ b/patches/0050-Revert-r-aws_db_proxy-Change-auth-from-TypeList-to-T.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Revert "r/aws_db_proxy: Change `auth` from `TypeList` to This reverts commit 2db643f461c058fb7a9e9940afef240016412050. diff --git a/internal/service/rds/proxy.go b/internal/service/rds/proxy.go -index 93b0f2a4d6..8ba13b8354 100644 +index 008ebc180f..c326774548 100644 --- a/internal/service/rds/proxy.go +++ b/internal/service/rds/proxy.go @@ -19,7 +19,6 @@ import ( diff --git a/patches/0052-Fix-panic-in-aws_directory_service_directory-Read.patch b/patches/0051-Fix-panic-in-aws_directory_service_directory-Read.patch similarity index 100% rename from patches/0052-Fix-panic-in-aws_directory_service_directory-Read.patch rename to patches/0051-Fix-panic-in-aws_directory_service_directory-Read.patch diff --git a/patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch b/patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch similarity index 100% rename from patches/0053-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch rename to patches/0052-Patch-tags-ComputedOnly-on-bedrockagent-and-other-mo.patch diff --git a/patches/0054-Fix-tags_all-Computed-for-aws_datazone_domain.patch b/patches/0053-Fix-tags_all-Computed-for-aws_datazone_domain.patch similarity index 100% rename from patches/0054-Fix-tags_all-Computed-for-aws_datazone_domain.patch rename to patches/0053-Fix-tags_all-Computed-for-aws_datazone_domain.patch diff --git a/patches/0055-Parallelize-Lambda-Function-resource-operations.patch b/patches/0054-Parallelize-Lambda-Function-resource-operations.patch similarity index 83% rename from patches/0055-Parallelize-Lambda-Function-resource-operations.patch rename to patches/0054-Parallelize-Lambda-Function-resource-operations.patch index 8515481d10d..fb70a955a57 100644 --- a/patches/0055-Parallelize-Lambda-Function-resource-operations.patch +++ b/patches/0054-Parallelize-Lambda-Function-resource-operations.patch @@ -10,10 +10,10 @@ We think this was an optimization for a special edge case that drastically worsens the UX for the majority of users. diff --git a/internal/service/lambda/function.go b/internal/service/lambda/function.go -index ac27e24a03..192bb39a99 100644 +index cd8f37d3cd..1fe6a73785 100644 --- a/internal/service/lambda/function.go +++ b/internal/service/lambda/function.go -@@ -36,7 +36,6 @@ import ( +@@ -35,7 +35,6 @@ import ( const ( FunctionVersionLatest = "$LATEST" @@ -21,7 +21,7 @@ index ac27e24a03..192bb39a99 100644 listVersionsMaxItems = 10000 ) -@@ -484,11 +483,6 @@ func resourceFunctionCreate(ctx context.Context, d *schema.ResourceData, meta in +@@ -483,11 +482,6 @@ func resourceFunctionCreate(ctx context.Context, d *schema.ResourceData, meta in } if v, ok := d.GetOk("filename"); ok { @@ -30,10 +30,10 @@ index ac27e24a03..192bb39a99 100644 - conns.GlobalMutexKV.Lock(mutexKey) - defer conns.GlobalMutexKV.Unlock(mutexKey) - - zipFile, err := readFileContents(v.(string)) + zipFile, err := tfio.ReadFileContents(v.(string)) if err != nil { -@@ -946,11 +940,6 @@ func resourceFunctionUpdate(ctx context.Context, d *schema.ResourceData, meta in +@@ -945,11 +939,6 @@ func resourceFunctionUpdate(ctx context.Context, d *schema.ResourceData, meta in } if v, ok := d.GetOk("filename"); ok { @@ -42,6 +42,6 @@ index ac27e24a03..192bb39a99 100644 - conns.GlobalMutexKV.Lock(mutexKey) - defer conns.GlobalMutexKV.Unlock(mutexKey) - - zipFile, err := readFileContents(v.(string)) + zipFile, err := tfio.ReadFileContents(v.(string)) if err != nil { diff --git a/patches/0056-Create-Logging-Middleware-for-Lambda-service-that-do.patch b/patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch similarity index 100% rename from patches/0056-Create-Logging-Middleware-for-Lambda-service-that-do.patch rename to patches/0055-Create-Logging-Middleware-for-Lambda-service-that-do.patch diff --git a/patches/0056-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0056-Fix-tags_all-Computed-for-PF-resources.patch new file mode 100644 index 00000000000..a231e24e03a --- /dev/null +++ b/patches/0056-Fix-tags_all-Computed-for-PF-resources.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Florian Stadler +Date: Tue, 11 Jun 2024 14:02:40 +0200 +Subject: [PATCH] Fix tags_all Computed for PF resources + + +diff --git a/internal/service/paymentcryptography/key.go b/internal/service/paymentcryptography/key.go +index 78d09e04e2..1673889cda 100644 +--- a/internal/service/paymentcryptography/key.go ++++ b/internal/service/paymentcryptography/key.go +@@ -117,7 +117,7 @@ func (r *resourceKey) Schema(ctx context.Context, request resource.SchemaRequest + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "key_attributes": schema.SingleNestedBlock{ diff --git a/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch index a231e24e03a..cf56d9ad34a 100644 --- a/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0057-Fix-tags_all-Computed-for-PF-resources.patch @@ -1,19 +1,71 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Stadler -Date: Tue, 11 Jun 2024 14:02:40 +0200 +Date: Tue, 18 Jun 2024 10:24:51 +0200 Subject: [PATCH] Fix tags_all Computed for PF resources -diff --git a/internal/service/paymentcryptography/key.go b/internal/service/paymentcryptography/key.go -index 78d09e04e2..1673889cda 100644 ---- a/internal/service/paymentcryptography/key.go -+++ b/internal/service/paymentcryptography/key.go -@@ -117,7 +117,7 @@ func (r *resourceKey) Schema(ctx context.Context, request resource.SchemaRequest +diff --git a/internal/service/appfabric/app_authorization.go b/internal/service/appfabric/app_authorization.go +index 2bdf7ddb0d..0aa1395160 100644 +--- a/internal/service/appfabric/app_authorization.go ++++ b/internal/service/appfabric/app_authorization.go +@@ -105,7 +105,7 @@ func (r *appAuthorizationResource) Schema(ctx context.Context, request resource. }, }, names.AttrTags: tftags.TagsAttribute(), - names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + "updated_at": schema.StringAttribute{ + CustomType: timetypes.RFC3339Type{}, + Computed: true, +diff --git a/internal/service/appfabric/app_bundle.go b/internal/service/appfabric/app_bundle.go +index 98a55920b8..e1085f4cc4 100644 +--- a/internal/service/appfabric/app_bundle.go ++++ b/internal/service/appfabric/app_bundle.go +@@ -58,7 +58,7 @@ func (r *appBundleResource) Schema(ctx context.Context, request resource.SchemaR + }, + names.AttrID: framework.IDAttribute(), + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + } + } +diff --git a/internal/service/ec2/ec2_capacity_block_reservation.go b/internal/service/ec2/ec2_capacity_block_reservation.go +index 23cb4def0e..627614e82a 100644 +--- a/internal/service/ec2/ec2_capacity_block_reservation.go ++++ b/internal/service/ec2/ec2_capacity_block_reservation.go +@@ -146,7 +146,7 @@ func (r *capacityBlockReservationResource) Schema(ctx context.Context, _ resourc + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + "tenancy": schema.StringAttribute{ + Computed: true, + PlanModifiers: []planmodifier.String{ +diff --git a/internal/service/fms/resource_set.go b/internal/service/fms/resource_set.go +index 8722e6a2b6..09293cdecc 100644 +--- a/internal/service/fms/resource_set.go ++++ b/internal/service/fms/resource_set.go +@@ -103,7 +103,7 @@ func (r *resourceResourceSet) Schema(ctx context.Context, req resource.SchemaReq + names.AttrID: framework.IDAttribute(), + names.AttrARN: framework.ARNAttributeComputedOnly(), + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "resource_set": resourceSetLNB, +diff --git a/internal/service/guardduty/malware_protection_plan.go b/internal/service/guardduty/malware_protection_plan.go +index 540f3a58f5..80ce86a332 100644 +--- a/internal/service/guardduty/malware_protection_plan.go ++++ b/internal/service/guardduty/malware_protection_plan.go +@@ -88,7 +88,7 @@ func (r *resourceMalwareProtectionPlan) Schema(ctx context.Context, req resource + Computed: true, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), + names.AttrTagsAll: tftags.TagsAttribute(), }, Blocks: map[string]schema.Block{ - "key_attributes": schema.SingleNestedBlock{ + "protected_resource": schema.ListNestedBlock{ diff --git a/patches/0058-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0058-Fix-tags_all-Computed-for-PF-resources.patch index 7f1532389c6..3bc95524440 100644 --- a/patches/0058-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0058-Fix-tags_all-Computed-for-PF-resources.patch @@ -1,71 +1,19 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Florian Stadler -Date: Tue, 18 Jun 2024 10:24:51 +0200 +Date: Mon, 24 Jun 2024 12:21:45 +0200 Subject: [PATCH] Fix tags_all Computed for PF resources -diff --git a/internal/service/appfabric/app_authorization.go b/internal/service/appfabric/app_authorization.go -index 07bafd3e84..df82b14d52 100644 ---- a/internal/service/appfabric/app_authorization.go -+++ b/internal/service/appfabric/app_authorization.go -@@ -105,7 +105,7 @@ func (r *appAuthorizationResource) Schema(ctx context.Context, request resource. - }, - }, - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), +diff --git a/internal/service/drs/replication_configuration_template.go b/internal/service/drs/replication_configuration_template.go +index 8c08dee0b2..75eb1266a5 100644 +--- a/internal/service/drs/replication_configuration_template.go ++++ b/internal/service/drs/replication_configuration_template.go +@@ -106,7 +106,7 @@ func (r *replicationConfigurationTemplateResource) Schema(ctx context.Context, r + + "staging_area_tags": tftags.TagsAttribute(), + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), + names.AttrTagsAll: tftags.TagsAttribute(), - "updated_at": schema.StringAttribute{ - CustomType: timetypes.RFC3339Type{}, - Computed: true, -diff --git a/internal/service/appfabric/app_bundle.go b/internal/service/appfabric/app_bundle.go -index 98a55920b8..e1085f4cc4 100644 ---- a/internal/service/appfabric/app_bundle.go -+++ b/internal/service/appfabric/app_bundle.go -@@ -58,7 +58,7 @@ func (r *appBundleResource) Schema(ctx context.Context, request resource.SchemaR - }, - names.AttrID: framework.IDAttribute(), - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), -+ names.AttrTagsAll: tftags.TagsAttribute(), - }, - } - } -diff --git a/internal/service/ec2/ec2_capacity_block_reservation.go b/internal/service/ec2/ec2_capacity_block_reservation.go -index 23cb4def0e..627614e82a 100644 ---- a/internal/service/ec2/ec2_capacity_block_reservation.go -+++ b/internal/service/ec2/ec2_capacity_block_reservation.go -@@ -146,7 +146,7 @@ func (r *capacityBlockReservationResource) Schema(ctx context.Context, _ resourc - }, - }, - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), -+ names.AttrTagsAll: tftags.TagsAttribute(), - "tenancy": schema.StringAttribute{ - Computed: true, - PlanModifiers: []planmodifier.String{ -diff --git a/internal/service/fms/resource_set.go b/internal/service/fms/resource_set.go -index 8722e6a2b6..09293cdecc 100644 ---- a/internal/service/fms/resource_set.go -+++ b/internal/service/fms/resource_set.go -@@ -103,7 +103,7 @@ func (r *resourceResourceSet) Schema(ctx context.Context, req resource.SchemaReq - names.AttrID: framework.IDAttribute(), - names.AttrARN: framework.ARNAttributeComputedOnly(), - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), -+ names.AttrTagsAll: tftags.TagsAttribute(), - }, - Blocks: map[string]schema.Block{ - "resource_set": resourceSetLNB, -diff --git a/internal/service/guardduty/malware_protection_plan.go b/internal/service/guardduty/malware_protection_plan.go -index 540f3a58f5..80ce86a332 100644 ---- a/internal/service/guardduty/malware_protection_plan.go -+++ b/internal/service/guardduty/malware_protection_plan.go -@@ -88,7 +88,7 @@ func (r *resourceMalwareProtectionPlan) Schema(ctx context.Context, req resource - Computed: true, - }, - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), -+ names.AttrTagsAll: tftags.TagsAttribute(), - }, - Blocks: map[string]schema.Block{ - "protected_resource": schema.ListNestedBlock{ + + "use_dedicated_replication_server": schema.BoolAttribute{ + Required: true, diff --git a/patches/0059-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0059-Fix-tags_all-Computed-for-PF-resources.patch deleted file mode 100644 index 3bc95524440..00000000000 --- a/patches/0059-Fix-tags_all-Computed-for-PF-resources.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Florian Stadler -Date: Mon, 24 Jun 2024 12:21:45 +0200 -Subject: [PATCH] Fix tags_all Computed for PF resources - - -diff --git a/internal/service/drs/replication_configuration_template.go b/internal/service/drs/replication_configuration_template.go -index 8c08dee0b2..75eb1266a5 100644 ---- a/internal/service/drs/replication_configuration_template.go -+++ b/internal/service/drs/replication_configuration_template.go -@@ -106,7 +106,7 @@ func (r *replicationConfigurationTemplateResource) Schema(ctx context.Context, r - - "staging_area_tags": tftags.TagsAttribute(), - names.AttrTags: tftags.TagsAttribute(), -- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), -+ names.AttrTagsAll: tftags.TagsAttribute(), - - "use_dedicated_replication_server": schema.BoolAttribute{ - Required: true, diff --git a/patches/0061-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch b/patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch similarity index 100% rename from patches/0061-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch rename to patches/0059-Patch-tags-ComputedOnly-for-appfabric-networkmonitor.patch diff --git a/patches/0062-Fix-resourceMatchmakingConfigurationUpdate.patch b/patches/0060-Fix-resourceMatchmakingConfigurationUpdate.patch similarity index 100% rename from patches/0062-Fix-resourceMatchmakingConfigurationUpdate.patch rename to patches/0060-Fix-resourceMatchmakingConfigurationUpdate.patch diff --git a/patches/0060-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch b/patches/0060-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch deleted file mode 100644 index 114ae015a53..00000000000 --- a/patches/0060-Normalize-ecs.TaskDefinition-containerDefinitions-he.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Anton Tayanovskyy -Date: Thu, 27 Jun 2024 16:20:44 -0400 -Subject: [PATCH] Normalize ecs.TaskDefinition containerDefinitions - healthCheck.timeout - - -diff --git a/internal/service/ecs/task_definition_equivalency.go b/internal/service/ecs/task_definition_equivalency.go -index 6947d99a88..e4b67eb1ba 100644 ---- a/internal/service/ecs/task_definition_equivalency.go -+++ b/internal/service/ecs/task_definition_equivalency.go -@@ -50,6 +50,10 @@ func (cd containerDefinitions) reduce(isAWSVPC bool) { - if def.Essential == nil { - cd[i].Essential = aws.Bool(true) - } -+ if def.HealthCheck != nil && def.HealthCheck.Timeout == nil { -+ five := int32(5) -+ def.HealthCheck.Timeout = &five -+ } - for j, pm := range def.PortMappings { - if pm.Protocol == awstypes.TransportProtocolTcp { - cd[i].PortMappings[j].Protocol = "" diff --git a/patches/0063-Patch-ComputedOnly-for-rekognition-stream_processor.patch b/patches/0061-Patch-ComputedOnly-for-rekognition-stream_processor.patch similarity index 100% rename from patches/0063-Patch-ComputedOnly-for-rekognition-stream_processor.patch rename to patches/0061-Patch-ComputedOnly-for-rekognition-stream_processor.patch diff --git a/patches/0064-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch b/patches/0062-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch similarity index 100% rename from patches/0064-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch rename to patches/0062-Patch-tags_all-Computed-for-chatbot-timestreaminflux.patch diff --git a/patches/0065-Patch-tags_all-computed-for-aws_rds_integration.patch b/patches/0063-Patch-tags_all-computed-for-aws_rds_integration.patch similarity index 95% rename from patches/0065-Patch-tags_all-computed-for-aws_rds_integration.patch rename to patches/0063-Patch-tags_all-computed-for-aws_rds_integration.patch index 0bb21ffae04..2a7f3ea048c 100644 --- a/patches/0065-Patch-tags_all-computed-for-aws_rds_integration.patch +++ b/patches/0063-Patch-tags_all-computed-for-aws_rds_integration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Patch tags_all computed for aws_rds_integration diff --git a/internal/service/rds/integration.go b/internal/service/rds/integration.go -index 11d794634a..7058e1b0ff 100644 +index 882d6c8ce9..903c441350 100644 --- a/internal/service/rds/integration.go +++ b/internal/service/rds/integration.go @@ -100,7 +100,7 @@ func (r *integrationResource) Schema(ctx context.Context, request resource.Schem diff --git a/patches/0064-Adapt-gamelift-matchmaking-resources.patch b/patches/0064-Adapt-gamelift-matchmaking-resources.patch new file mode 100644 index 00000000000..b11f07f7749 --- /dev/null +++ b/patches/0064-Adapt-gamelift-matchmaking-resources.patch @@ -0,0 +1,258 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Fri, 16 Aug 2024 09:46:57 -0400 +Subject: [PATCH] Adapt gamelift matchmaking* resources + +Upstream continues to move away from Go SDKv2, but the matchmaking resources are maintained through patches in Pulumi +are written against Go SDK v1. This patch is needed to preserve these resources vis upstream changes. + +diff --git a/internal/conns/awsclient_extra.go b/internal/conns/awsclient_extra.go +new file mode 100644 +index 0000000000..b81d6239a7 +--- /dev/null ++++ b/internal/conns/awsclient_extra.go +@@ -0,0 +1,14 @@ ++// Code was removed upstream but is retained for backwards-compat in the pulumi-aws provider. ++package conns ++ ++import ( ++ "context" ++ ++ gamelift_sdkv1 "github.com/aws/aws-sdk-go/service/gamelift" ++ "github.com/hashicorp/terraform-provider-aws/internal/errs" ++ "github.com/hashicorp/terraform-provider-aws/names" ++) ++ ++func (c *AWSClient) GameLiftConn(ctx context.Context) *gamelift_sdkv1.GameLift { ++ return errs.Must(conn[*gamelift_sdkv1.GameLift](ctx, c, names.GameLift, make(map[string]any))) ++} +diff --git a/internal/service/gamelift/matchmaking_configuration.go b/internal/service/gamelift/matchmaking_configuration.go +index 89ecad9db0..9138a2d741 100644 +--- a/internal/service/gamelift/matchmaking_configuration.go ++++ b/internal/service/gamelift/matchmaking_configuration.go +@@ -5,8 +5,10 @@ import ( + "log" + "regexp" + ++ types2 "github.com/aws/aws-sdk-go-v2/service/gamelift/types" + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" ++ types1 "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +@@ -155,7 +157,7 @@ func resourceMatchmakingConfigurationCreate(ctx context.Context, d *schema.Resou + Name: aws.String(d.Get("name").(string)), + RequestTimeoutSeconds: aws.Int64(int64(d.Get("request_timeout_seconds").(int))), + RuleSetName: aws.String(d.Get("rule_set_name").(string)), +- Tags: Tags(tags.IgnoreAWS()), ++ Tags: downgradeTagsToSDKv1(Tags(tags.IgnoreAWS())), + } + + if v, ok := d.GetOk("acceptance_timeout_seconds"); ok { +@@ -202,6 +204,7 @@ func resourceMatchmakingConfigurationCreate(ctx context.Context, d *schema.Resou + + func resourceMatchmakingConfigurationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + conn := meta.(*conns.AWSClient).GameLiftConn(ctx) ++ conn2 := meta.(*conns.AWSClient).GameLiftClient(ctx) + defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig + ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig + +@@ -249,7 +252,7 @@ func resourceMatchmakingConfigurationRead(ctx context.Context, d *schema.Resourc + d.Set("rule_set_arn", configuration.RuleSetArn) + d.Set("rule_set_name", configuration.RuleSetName) + +- tags, err := listTags(ctx, conn, arn) ++ tags, err := listTags(ctx, conn2, arn) + + if err != nil { + return diag.Errorf("error listing tags for GameLift Matchmaking Configuration (%s): %s", arn, err) +@@ -271,6 +274,7 @@ func resourceMatchmakingConfigurationRead(ctx context.Context, d *schema.Resourc + + func resourceMatchmakingConfigurationUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + conn := meta.(*conns.AWSClient).GameLiftConn(ctx) ++ conn2 := meta.(*conns.AWSClient).GameLiftClient(ctx) + + log.Printf("[INFO] Updating GameLift Matchmaking Configuration: %s", d.Id()) + +@@ -325,7 +329,7 @@ func resourceMatchmakingConfigurationUpdate(ctx context.Context, d *schema.Resou + if d.HasChange("tags_all") { + o, n := d.GetChange("tags_all") + +- if err := updateTags(ctx, conn, arn, o, n); err != nil { ++ if err := updateTags(ctx, conn2, arn, o, n); err != nil { + return diag.Errorf("error updating GameLift Matchmaking Configuration (%s) tags: %s", arn, err) + } + } +@@ -384,3 +388,18 @@ func expandStringList(tfList []interface{}) []*string { + + return result + } ++ ++func downgradeTagsToSDKv1(tags []types2.Tag) []*types1.Tag { ++ res := []*types1.Tag{} ++ for _, t := range tags { ++ res = append(res, downgradeTagToSDKv1(t)) ++ } ++ return res ++} ++ ++func downgradeTagToSDKv1(tag types2.Tag) *types1.Tag { ++ return &types1.Tag{ ++ Key: tag.Key, ++ Value: tag.Value, ++ } ++} +diff --git a/internal/service/gamelift/matchmaking_rule_set.go b/internal/service/gamelift/matchmaking_rule_set.go +index d9f2424b7a..3e2b08ed08 100644 +--- a/internal/service/gamelift/matchmaking_rule_set.go ++++ b/internal/service/gamelift/matchmaking_rule_set.go +@@ -65,7 +65,7 @@ func resourceMatchmakingRuleSetCreate(ctx context.Context, d *schema.ResourceDat + input := gamelift.CreateMatchmakingRuleSetInput{ + Name: aws.String(d.Get("name").(string)), + RuleSetBody: aws.String(d.Get("rule_set_body").(string)), +- Tags: Tags(tags.IgnoreAWS()), ++ Tags: downgradeTagsToSDKv1(Tags(tags.IgnoreAWS())), + } + log.Printf("[INFO] Creating GameLift Matchmaking Rule Set: %s", input) + out, err := conn.CreateMatchmakingRuleSet(&input) +@@ -80,6 +80,7 @@ func resourceMatchmakingRuleSetCreate(ctx context.Context, d *schema.ResourceDat + + func resourceMatchmakingRuleSetRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + conn := meta.(*conns.AWSClient).GameLiftConn(ctx) ++ conn2 := meta.(*conns.AWSClient).GameLiftClient(ctx) + defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig + + log.Printf("[INFO] Describing GameLift Matchmaking Rule Set: %s", d.Id()) +@@ -112,7 +113,7 @@ func resourceMatchmakingRuleSetRead(ctx context.Context, d *schema.ResourceData, + d.Set("name", ruleSet.RuleSetName) + d.Set("rule_set_body", ruleSet.RuleSetBody) + +- tags, err := listTags(ctx, conn, arn) ++ tags, err := listTags(ctx, conn2, arn) + + if err != nil { + return diag.Errorf("error listing tags for GameLift Matchmaking Rule Set (%s): %s", arn, err) +@@ -130,7 +131,7 @@ func resourceMatchmakingRuleSetRead(ctx context.Context, d *schema.ResourceData, + } + + func resourceMatchmakingRuleSetUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { +- conn := meta.(*conns.AWSClient).GameLiftConn(ctx) ++ conn := meta.(*conns.AWSClient).GameLiftClient(ctx) + + log.Printf("[INFO] Updating GameLift Matchmaking Rule Set: %s", d.Id()) + +diff --git a/internal/service/gamelift/service_package_extra.go b/internal/service/gamelift/service_package_extra.go +new file mode 100644 +index 0000000000..dc4c9b2230 +--- /dev/null ++++ b/internal/service/gamelift/service_package_extra.go +@@ -0,0 +1,95 @@ ++package gamelift ++ ++import ( ++ "context" ++ "fmt" ++ aws_sdkv1 "github.com/aws/aws-sdk-go/aws" ++ endpoints_sdkv1 "github.com/aws/aws-sdk-go/aws/endpoints" ++ session_sdkv1 "github.com/aws/aws-sdk-go/aws/session" ++ gamelift_sdkv1 "github.com/aws/aws-sdk-go/service/gamelift" ++ "github.com/hashicorp/terraform-plugin-log/tflog" ++ "github.com/hashicorp/terraform-provider-aws/internal/errs" ++ "github.com/hashicorp/terraform-provider-aws/names" ++ "net" ++ "net/url" ++) ++ ++// NewConn returns a new AWS SDK for Go v1 client for this service package's AWS API. ++func (p *servicePackage) NewConn(ctx context.Context, config map[string]any) (*gamelift_sdkv1.GameLift, error) { ++ sess := config[names.AttrSession].(*session_sdkv1.Session) ++ ++ cfg := aws_sdkv1.Config{} ++ ++ if endpoint := config[names.AttrEndpoint].(string); endpoint != "" { ++ tflog.Debug(ctx, "setting endpoint", map[string]any{ ++ "tf_aws.endpoint": endpoint, ++ }) ++ cfg.Endpoint = aws_sdkv1.String(endpoint) ++ } else { ++ cfg.EndpointResolver = newEndpointResolverSDKv1(ctx) ++ } ++ ++ return gamelift_sdkv1.New(sess.Copy(&cfg)), nil ++} ++ ++var _ endpoints_sdkv1.Resolver = resolverSDKv1{} ++ ++type resolverSDKv1 struct { ++ ctx context.Context ++} ++ ++func newEndpointResolverSDKv1(ctx context.Context) resolverSDKv1 { ++ return resolverSDKv1{ ++ ctx: ctx, ++ } ++} ++ ++func (r resolverSDKv1) EndpointFor(service, region string, opts ...func(*endpoints_sdkv1.Options)) (endpoint endpoints_sdkv1.ResolvedEndpoint, err error) { ++ ctx := r.ctx ++ ++ var opt endpoints_sdkv1.Options ++ opt.Set(opts...) ++ ++ useFIPS := opt.UseFIPSEndpoint == endpoints_sdkv1.FIPSEndpointStateEnabled ++ ++ defaultResolver := endpoints_sdkv1.DefaultResolver() ++ ++ if useFIPS { ++ ctx = tflog.SetField(ctx, "tf_aws.use_fips", useFIPS) ++ ++ endpoint, err = defaultResolver.EndpointFor(service, region, opts...) ++ if err != nil { ++ return endpoint, err ++ } ++ ++ tflog.Debug(ctx, "endpoint resolved", map[string]any{ ++ "tf_aws.endpoint": endpoint.URL, ++ }) ++ ++ var endpointURL *url.URL ++ endpointURL, err = url.Parse(endpoint.URL) ++ if err != nil { ++ return endpoint, err ++ } ++ ++ hostname := endpointURL.Hostname() ++ _, err = net.LookupHost(hostname) ++ if err != nil { ++ if dnsErr, ok := errs.As[*net.DNSError](err); ok && dnsErr.IsNotFound { ++ tflog.Debug(ctx, "default endpoint host not found, disabling FIPS", map[string]any{ ++ "tf_aws.hostname": hostname, ++ }) ++ opts = append(opts, func(o *endpoints_sdkv1.Options) { ++ o.UseFIPSEndpoint = endpoints_sdkv1.FIPSEndpointStateDisabled ++ }) ++ } else { ++ err = fmt.Errorf("looking up accessanalyzer endpoint %q: %s", hostname, err) ++ return ++ } ++ } else { ++ return endpoint, err ++ } ++ } ++ ++ return defaultResolver.EndpointFor(service, region, opts...) ++} +diff --git a/names/data/names_data.hcl b/names/data/names_data.hcl +index ffacb154d8..1ce9328e2c 100644 +--- a/names/data/names_data.hcl ++++ b/names/data/names_data.hcl +@@ -4146,7 +4146,7 @@ service "gamelift" { + + sdk { + id = "GameLift" +- client_version = [2] ++ client_version = [1, 2] + } + + names { diff --git a/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch b/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch new file mode 100644 index 00000000000..59203fb62f8 --- /dev/null +++ b/patches/0065-Patch-Tags-for-bedrock-and-pinpoint.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Florian Stadler +Date: Tue, 20 Aug 2024 14:14:42 +0200 +Subject: [PATCH] Patch Tags for bedrock and pinpoint + + +diff --git a/internal/service/bedrock/guardrail.go b/internal/service/bedrock/guardrail.go +index b9cc4faf9e..4b31484d95 100644 +--- a/internal/service/bedrock/guardrail.go ++++ b/internal/service/bedrock/guardrail.go +@@ -119,7 +119,7 @@ func (r *resourceGuardrail) Schema(ctx context.Context, req resource.SchemaReque + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + names.AttrVersion: schema.StringAttribute{ + Computed: true, + PlanModifiers: []planmodifier.String{ +diff --git a/internal/service/pinpoint/email_template.go b/internal/service/pinpoint/email_template.go +index 44556ded18..d741c07425 100644 +--- a/internal/service/pinpoint/email_template.go ++++ b/internal/service/pinpoint/email_template.go +@@ -63,7 +63,7 @@ func (r *resourceEmailTemplate) Schema(ctx context.Context, req resource.SchemaR + Required: true, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "email_template": schema.ListNestedBlock{ diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index 38454707aed..26a1f809931 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -4040,6 +4040,75 @@ } } }, + "aws_bedrock_guardrail": { + "current": "aws:bedrock/guardrail:Guardrail", + "majorVersion": 6, + "fields": { + "content_policy_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "filters_config": { + "maxItemsOne": false + } + } + } + }, + "contextual_grounding_policy_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "filters_config": { + "maxItemsOne": false + } + } + } + }, + "sensitive_information_policy_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "pii_entities_config": { + "maxItemsOne": false + }, + "regexes_config": { + "maxItemsOne": false + } + } + } + }, + "topic_policy_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "topics_config": { + "maxItemsOne": false, + "elem": { + "fields": { + "examples": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "word_policy_config": { + "maxItemsOne": true, + "elem": { + "fields": { + "managed_word_lists_config": { + "maxItemsOne": false + }, + "words_config": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_bedrock_model_invocation_logging_configuration": { "current": "aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration", "majorVersion": 6 @@ -6247,6 +6316,10 @@ } } }, + "aws_cloudtrail_organization_delegated_admin_account": { + "current": "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", + "majorVersion": 6 + }, "aws_cloudwatch_composite_alarm": { "current": "aws:cloudwatch/compositeAlarm:CompositeAlarm", "majorVersion": 6, @@ -8493,10 +8566,50 @@ } } }, + "aws_datazone_environment_profile": { + "current": "aws:datazone/environmentProfile:EnvironmentProfile", + "majorVersion": 6, + "fields": { + "user_parameters": { + "maxItemsOne": false + } + } + }, + "aws_datazone_form_type": { + "current": "aws:datazone/formType:FormType", + "majorVersion": 6, + "fields": { + "imports": { + "maxItemsOne": false + }, + "model": { + "maxItemsOne": true + } + } + }, "aws_datazone_glossary": { "current": "aws:datazone/glossary:Glossary", "majorVersion": 6 }, + "aws_datazone_glossary_term": { + "current": "aws:datazone/glossaryTerm:GlossaryTerm", + "majorVersion": 6, + "fields": { + "term_relations": { + "maxItemsOne": true, + "elem": { + "fields": { + "classifies": { + "maxItemsOne": false + }, + "is_a": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_datazone_project": { "current": "aws:datazone/project:Project", "majorVersion": 6, @@ -22020,7 +22133,7 @@ "maxItemsOne": true, "elem": { "fields": { - "slot_type_values": { + "sample_value": { "maxItemsOne": false }, "synonyms": { @@ -26061,6 +26174,22 @@ "current": "aws:pinpoint/emailChannel:EmailChannel", "majorVersion": 6 }, + "aws_pinpoint_email_template": { + "current": "aws:pinpoint/emailTemplate:EmailTemplate", + "majorVersion": 6, + "fields": { + "email_template": { + "maxItemsOne": false, + "elem": { + "fields": { + "header": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_pinpoint_event_stream": { "current": "aws:pinpoint/eventStream:EventStream", "majorVersion": 6 @@ -222486,6 +222615,22 @@ } } }, + "aws_bedrockagent_agent_versions": { + "current": "aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", + "majorVersion": 6, + "fields": { + "agent_version_summaries": { + "maxItemsOne": false, + "elem": { + "fields": { + "guardrail_configuration": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_billing_service_account": { "current": "aws:index/getBillingServiceAccount:getBillingServiceAccount", "majorVersion": 6 @@ -232231,6 +232376,7 @@ "aws:bedrock/agentDataSource:AgentDataSource": 1, "aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase": 1, "aws:bedrock/customModel:CustomModel": 1, + "aws:bedrock/guardrail:Guardrail": 1, "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": 1, "aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration": 1, "aws:budgets/budget:Budget": 0, @@ -232292,6 +232438,7 @@ "aws:cloudsearch/domain:Domain": 0, "aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy": 0, "aws:cloudtrail/eventDataStore:EventDataStore": 0, + "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount": 1, "aws:cloudtrail/trail:Trail": 0, "aws:cloudwatch/compositeAlarm:CompositeAlarm": 0, "aws:cloudwatch/dashboard:Dashboard": 0, @@ -232404,7 +232551,10 @@ "aws:datasync/task:Task": 0, "aws:datazone/domain:Domain": 1, "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": 1, + "aws:datazone/environmentProfile:EnvironmentProfile": 1, + "aws:datazone/formType:FormType": 1, "aws:datazone/glossary:Glossary": 1, + "aws:datazone/glossaryTerm:GlossaryTerm": 1, "aws:datazone/project:Project": 1, "aws:dax/cluster:Cluster": 0, "aws:dax/parameterGroup:ParameterGroup": 0, @@ -233047,6 +233197,7 @@ "aws:pinpoint/app:App": 0, "aws:pinpoint/baiduChannel:BaiduChannel": 0, "aws:pinpoint/emailChannel:EmailChannel": 0, + "aws:pinpoint/emailTemplate:EmailTemplate": 1, "aws:pinpoint/eventStream:EventStream": 0, "aws:pinpoint/gcmChannel:GcmChannel": 0, "aws:pinpoint/smsChannel:SmsChannel": 0, @@ -233527,6 +233678,7 @@ "aws:batch/getJobDefinition:getJobDefinition": 1, "aws:batch/getJobQueue:getJobQueue": 0, "aws:batch/getSchedulingPolicy:getSchedulingPolicy": 0, + "aws:bedrock/getAgentAgentVersions:getAgentAgentVersions": 1, "aws:bedrock/getCustomModel:getCustomModel": 1, "aws:bedrock/getCustomModels:getCustomModels": 1, "aws:bedrockfoundation/getModel:getModel": 1, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index 98793d1c1e5..a95018cd195 100644 --- a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json @@ -1 +1 @@ -{"auto-settings":{"resources":{"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}}},"datasources":{"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":0,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chatbot/slackChannelConfiguration:SlackChannelConfiguration":1,"aws:chatbot/teamsChannelConfiguration:TeamsChannelConfiguration":1,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/domain:Domain":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:datazone/glossary:Glossary":1,"aws:datazone/project:Project":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryCreationTemplate:RepositoryCreationTemplate":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount":1,"aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken":1,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":0,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/integration:Integration":1,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:shield/subscription:Subscription":1,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreaminfluxdb/dbInstance:DbInstance":1,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file +{"auto-settings":{"resources":{"aws_eks_cluster":{"maxItemsOneOverrides":{"certificate_authority":true}},"aws_lexv2models_slot":{"maxItemsOneOverrides":{"value_elicitation_setting.$.prompt_specification.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.prompt_specification.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.continue_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.still_waiting_response.$.message_group.$.variation.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.message.$.custom_payload":false,"value_elicitation_setting.$.wait_and_continue_specification.$.waiting_response.$.message_group.$.variation.$.custom_payload":false}},"aws_sagemaker_app_image_config":{"maxItemsOneOverrides":{"kernel_gateway_image_config.$.kernel_spec":true}},"aws_securitylake_subscriber":{"maxItemsOneOverrides":{"source":true}}},"datasources":{"aws_vpc_ipam_pool":{"renames":["aws:ec2/getVpcIamPool:getVpcIamPool"]},"aws_vpc_ipam_pool_cidrs":{"renames":["aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs"]},"aws_vpc_ipam_pools":{"renames":["aws:ec2/getVpcIamPools:getVpcIamPools"]}}},"mux":{"resources":{"aws:accessanalyzer/analyzer:Analyzer":0,"aws:accessanalyzer/archiveRule:ArchiveRule":0,"aws:account/alternativeContact:AlternativeContact":0,"aws:account/primaryContact:PrimaryContact":0,"aws:account/region:Region":0,"aws:acm/certificate:Certificate":0,"aws:acm/certificateValidation:CertificateValidation":0,"aws:acmpca/certificate:Certificate":0,"aws:acmpca/certificateAuthority:CertificateAuthority":0,"aws:acmpca/certificateAuthorityCertificate:CertificateAuthorityCertificate":0,"aws:acmpca/permission:Permission":0,"aws:acmpca/policy:Policy":0,"aws:alb/listener:Listener":0,"aws:alb/listenerCertificate:ListenerCertificate":0,"aws:alb/listenerRule:ListenerRule":0,"aws:alb/loadBalancer:LoadBalancer":0,"aws:alb/targetGroup:TargetGroup":0,"aws:alb/targetGroupAttachment:TargetGroupAttachment":0,"aws:amp/alertManagerDefinition:AlertManagerDefinition":0,"aws:amp/ruleGroupNamespace:RuleGroupNamespace":0,"aws:amp/scraper:Scraper":1,"aws:amp/workspace:Workspace":0,"aws:amplify/app:App":0,"aws:amplify/backendEnvironment:BackendEnvironment":0,"aws:amplify/branch:Branch":0,"aws:amplify/domainAssociation:DomainAssociation":0,"aws:amplify/webhook:Webhook":0,"aws:apigateway/account:Account":0,"aws:apigateway/apiKey:ApiKey":0,"aws:apigateway/authorizer:Authorizer":0,"aws:apigateway/basePathMapping:BasePathMapping":0,"aws:apigateway/clientCertificate:ClientCertificate":0,"aws:apigateway/deployment:Deployment":0,"aws:apigateway/documentationPart:DocumentationPart":0,"aws:apigateway/documentationVersion:DocumentationVersion":0,"aws:apigateway/domainName:DomainName":0,"aws:apigateway/integration:Integration":0,"aws:apigateway/integrationResponse:IntegrationResponse":0,"aws:apigateway/method:Method":0,"aws:apigateway/methodResponse:MethodResponse":0,"aws:apigateway/methodSettings:MethodSettings":0,"aws:apigateway/model:Model":0,"aws:apigateway/requestValidator:RequestValidator":0,"aws:apigateway/resource:Resource":0,"aws:apigateway/response:Response":0,"aws:apigateway/restApi:RestApi":0,"aws:apigateway/restApiPolicy:RestApiPolicy":0,"aws:apigateway/stage:Stage":0,"aws:apigateway/usagePlan:UsagePlan":0,"aws:apigateway/usagePlanKey:UsagePlanKey":0,"aws:apigateway/vpcLink:VpcLink":0,"aws:apigatewayv2/api:Api":0,"aws:apigatewayv2/apiMapping:ApiMapping":0,"aws:apigatewayv2/authorizer:Authorizer":0,"aws:apigatewayv2/deployment:Deployment":0,"aws:apigatewayv2/domainName:DomainName":0,"aws:apigatewayv2/integration:Integration":0,"aws:apigatewayv2/integrationResponse:IntegrationResponse":0,"aws:apigatewayv2/model:Model":0,"aws:apigatewayv2/route:Route":0,"aws:apigatewayv2/routeResponse:RouteResponse":0,"aws:apigatewayv2/stage:Stage":0,"aws:apigatewayv2/vpcLink:VpcLink":0,"aws:appautoscaling/policy:Policy":0,"aws:appautoscaling/scheduledAction:ScheduledAction":0,"aws:appautoscaling/target:Target":0,"aws:appconfig/application:Application":0,"aws:appconfig/configurationProfile:ConfigurationProfile":0,"aws:appconfig/deployment:Deployment":0,"aws:appconfig/deploymentStrategy:DeploymentStrategy":0,"aws:appconfig/environment:Environment":1,"aws:appconfig/eventIntegration:EventIntegration":0,"aws:appconfig/extension:Extension":0,"aws:appconfig/extensionAssociation:ExtensionAssociation":0,"aws:appconfig/hostedConfigurationVersion:HostedConfigurationVersion":0,"aws:appfabric/appAuthorization:AppAuthorization":1,"aws:appfabric/appAuthorizationConnection:AppAuthorizationConnection":1,"aws:appfabric/appBundle:AppBundle":1,"aws:appfabric/ingestion:Ingestion":1,"aws:appfabric/ingestionDestination:IngestionDestination":1,"aws:appflow/connectorProfile:ConnectorProfile":0,"aws:appflow/flow:Flow":0,"aws:appintegrations/dataIntegration:DataIntegration":0,"aws:applicationinsights/application:Application":0,"aws:appmesh/gatewayRoute:GatewayRoute":0,"aws:appmesh/mesh:Mesh":0,"aws:appmesh/route:Route":0,"aws:appmesh/virtualGateway:VirtualGateway":0,"aws:appmesh/virtualNode:VirtualNode":0,"aws:appmesh/virtualRouter:VirtualRouter":0,"aws:appmesh/virtualService:VirtualService":0,"aws:apprunner/autoScalingConfigurationVersion:AutoScalingConfigurationVersion":0,"aws:apprunner/connection:Connection":0,"aws:apprunner/customDomainAssociation:CustomDomainAssociation":0,"aws:apprunner/defaultAutoScalingConfigurationVersion:DefaultAutoScalingConfigurationVersion":1,"aws:apprunner/deployment:Deployment":1,"aws:apprunner/observabilityConfiguration:ObservabilityConfiguration":0,"aws:apprunner/service:Service":0,"aws:apprunner/vpcConnector:VpcConnector":0,"aws:apprunner/vpcIngressConnection:VpcIngressConnection":0,"aws:appstream/directoryConfig:DirectoryConfig":0,"aws:appstream/fleet:Fleet":0,"aws:appstream/fleetStackAssociation:FleetStackAssociation":0,"aws:appstream/imageBuilder:ImageBuilder":0,"aws:appstream/stack:Stack":0,"aws:appstream/user:User":0,"aws:appstream/userStackAssociation:UserStackAssociation":0,"aws:appsync/apiCache:ApiCache":0,"aws:appsync/apiKey:ApiKey":0,"aws:appsync/dataSource:DataSource":0,"aws:appsync/domainName:DomainName":0,"aws:appsync/domainNameApiAssociation:DomainNameApiAssociation":0,"aws:appsync/function:Function":0,"aws:appsync/graphQLApi:GraphQLApi":0,"aws:appsync/resolver:Resolver":0,"aws:appsync/type:Type":0,"aws:athena/dataCatalog:DataCatalog":0,"aws:athena/database:Database":0,"aws:athena/namedQuery:NamedQuery":0,"aws:athena/preparedStatement:PreparedStatement":0,"aws:athena/workgroup:Workgroup":0,"aws:auditmanager/accountRegistration:AccountRegistration":1,"aws:auditmanager/assessment:Assessment":1,"aws:auditmanager/assessmentDelegation:AssessmentDelegation":1,"aws:auditmanager/assessmentReport:AssessmentReport":1,"aws:auditmanager/control:Control":1,"aws:auditmanager/framework:Framework":1,"aws:auditmanager/frameworkShare:FrameworkShare":1,"aws:auditmanager/organizationAdminAccountRegistration:OrganizationAdminAccountRegistration":1,"aws:autoscaling/attachment:Attachment":0,"aws:autoscaling/group:Group":0,"aws:autoscaling/lifecycleHook:LifecycleHook":0,"aws:autoscaling/notification:Notification":0,"aws:autoscaling/policy:Policy":0,"aws:autoscaling/schedule:Schedule":0,"aws:autoscaling/tag:Tag":0,"aws:autoscaling/trafficSourceAttachment:TrafficSourceAttachment":0,"aws:autoscalingplans/scalingPlan:ScalingPlan":0,"aws:backup/framework:Framework":0,"aws:backup/globalSettings:GlobalSettings":0,"aws:backup/plan:Plan":0,"aws:backup/regionSettings:RegionSettings":0,"aws:backup/reportPlan:ReportPlan":0,"aws:backup/selection:Selection":0,"aws:backup/vault:Vault":0,"aws:backup/vaultLockConfiguration:VaultLockConfiguration":0,"aws:backup/vaultNotifications:VaultNotifications":0,"aws:backup/vaultPolicy:VaultPolicy":0,"aws:batch/computeEnvironment:ComputeEnvironment":0,"aws:batch/jobDefinition:JobDefinition":0,"aws:batch/jobQueue:JobQueue":1,"aws:batch/schedulingPolicy:SchedulingPolicy":0,"aws:bcmdata/export:Export":1,"aws:bedrock/agentAgent:AgentAgent":1,"aws:bedrock/agentAgentActionGroup:AgentAgentActionGroup":1,"aws:bedrock/agentAgentAlias:AgentAgentAlias":1,"aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation":1,"aws:bedrock/agentDataSource:AgentDataSource":1,"aws:bedrock/agentKnowledgeBase:AgentKnowledgeBase":1,"aws:bedrock/customModel:CustomModel":1,"aws:bedrock/guardrail:Guardrail":1,"aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput":1,"aws:bedrockmodel/invocationLoggingConfiguration:InvocationLoggingConfiguration":1,"aws:budgets/budget:Budget":0,"aws:budgets/budgetAction:BudgetAction":0,"aws:cfg/aggregateAuthorization:AggregateAuthorization":0,"aws:cfg/configurationAggregator:ConfigurationAggregator":0,"aws:cfg/conformancePack:ConformancePack":0,"aws:cfg/deliveryChannel:DeliveryChannel":0,"aws:cfg/organizationConformancePack:OrganizationConformancePack":0,"aws:cfg/organizationCustomPolicyRule:OrganizationCustomPolicyRule":0,"aws:cfg/organizationCustomRule:OrganizationCustomRule":0,"aws:cfg/organizationManagedRule:OrganizationManagedRule":0,"aws:cfg/recorder:Recorder":0,"aws:cfg/recorderStatus:RecorderStatus":0,"aws:cfg/remediationConfiguration:RemediationConfiguration":0,"aws:cfg/retentionConfiguration:RetentionConfiguration":1,"aws:cfg/rule:Rule":0,"aws:chatbot/slackChannelConfiguration:SlackChannelConfiguration":1,"aws:chatbot/teamsChannelConfiguration:TeamsChannelConfiguration":1,"aws:chime/sdkvoiceGlobalSettings:SdkvoiceGlobalSettings":0,"aws:chime/sdkvoiceSipMediaApplication:SdkvoiceSipMediaApplication":0,"aws:chime/sdkvoiceSipRule:SdkvoiceSipRule":0,"aws:chime/sdkvoiceVoiceProfileDomain:SdkvoiceVoiceProfileDomain":0,"aws:chime/voiceConnector:VoiceConnector":0,"aws:chime/voiceConnectorGroup:VoiceConnectorGroup":0,"aws:chime/voiceConnectorLogging:VoiceConnectorLogging":0,"aws:chime/voiceConnectorOrganization:VoiceConnectorOrganization":0,"aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming":0,"aws:chime/voiceConnectorTermination:VoiceConnectorTermination":0,"aws:chime/voiceConnectorTerminationCredentials:VoiceConnectorTerminationCredentials":0,"aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration":0,"aws:cleanrooms/collaboration:Collaboration":0,"aws:cleanrooms/configuredTable:ConfiguredTable":0,"aws:cloud9/environmentEC2:EnvironmentEC2":0,"aws:cloud9/environmentMembership:EnvironmentMembership":0,"aws:cloudcontrol/resource:Resource":0,"aws:cloudformation/cloudFormationType:CloudFormationType":0,"aws:cloudformation/stack:Stack":0,"aws:cloudformation/stackSet:StackSet":0,"aws:cloudformation/stackSetInstance:StackSetInstance":0,"aws:cloudfront/cachePolicy:CachePolicy":0,"aws:cloudfront/continuousDeploymentPolicy:ContinuousDeploymentPolicy":1,"aws:cloudfront/distribution:Distribution":0,"aws:cloudfront/fieldLevelEncryptionConfig:FieldLevelEncryptionConfig":0,"aws:cloudfront/fieldLevelEncryptionProfile:FieldLevelEncryptionProfile":0,"aws:cloudfront/function:Function":0,"aws:cloudfront/keyGroup:KeyGroup":0,"aws:cloudfront/keyValueStore:KeyValueStore":1,"aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey":1,"aws:cloudfront/monitoringSubscription:MonitoringSubscription":0,"aws:cloudfront/originAccessControl:OriginAccessControl":0,"aws:cloudfront/originAccessIdentity:OriginAccessIdentity":0,"aws:cloudfront/originRequestPolicy:OriginRequestPolicy":0,"aws:cloudfront/publicKey:PublicKey":0,"aws:cloudfront/realtimeLogConfig:RealtimeLogConfig":0,"aws:cloudfront/responseHeadersPolicy:ResponseHeadersPolicy":0,"aws:cloudhsmv2/cluster:Cluster":0,"aws:cloudhsmv2/hsm:Hsm":0,"aws:cloudsearch/domain:Domain":0,"aws:cloudsearch/domainServiceAccessPolicy:DomainServiceAccessPolicy":0,"aws:cloudtrail/eventDataStore:EventDataStore":0,"aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount":1,"aws:cloudtrail/trail:Trail":0,"aws:cloudwatch/compositeAlarm:CompositeAlarm":0,"aws:cloudwatch/dashboard:Dashboard":0,"aws:cloudwatch/eventApiDestination:EventApiDestination":0,"aws:cloudwatch/eventArchive:EventArchive":0,"aws:cloudwatch/eventBus:EventBus":0,"aws:cloudwatch/eventBusPolicy:EventBusPolicy":0,"aws:cloudwatch/eventConnection:EventConnection":0,"aws:cloudwatch/eventEndpoint:EventEndpoint":0,"aws:cloudwatch/eventPermission:EventPermission":0,"aws:cloudwatch/eventRule:EventRule":0,"aws:cloudwatch/eventTarget:EventTarget":0,"aws:cloudwatch/internetMonitor:InternetMonitor":0,"aws:cloudwatch/logAccountPolicy:LogAccountPolicy":0,"aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy":0,"aws:cloudwatch/logDestination:LogDestination":0,"aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy":0,"aws:cloudwatch/logGroup:LogGroup":0,"aws:cloudwatch/logMetricFilter:LogMetricFilter":0,"aws:cloudwatch/logResourcePolicy:LogResourcePolicy":0,"aws:cloudwatch/logStream:LogStream":0,"aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter":0,"aws:cloudwatch/metricAlarm:MetricAlarm":0,"aws:cloudwatch/metricStream:MetricStream":0,"aws:cloudwatch/queryDefinition:QueryDefinition":0,"aws:codeartifact/domain:Domain":0,"aws:codeartifact/domainPermissions:DomainPermissions":0,"aws:codeartifact/repository:Repository":0,"aws:codeartifact/repositoryPermissionsPolicy:RepositoryPermissionsPolicy":0,"aws:codebuild/project:Project":0,"aws:codebuild/reportGroup:ReportGroup":0,"aws:codebuild/resourcePolicy:ResourcePolicy":0,"aws:codebuild/sourceCredential:SourceCredential":0,"aws:codebuild/webhook:Webhook":0,"aws:codecatalyst/devEnvironment:DevEnvironment":0,"aws:codecatalyst/project:Project":0,"aws:codecatalyst/sourceRepository:SourceRepository":0,"aws:codecommit/approvalRuleTemplate:ApprovalRuleTemplate":0,"aws:codecommit/approvalRuleTemplateAssociation:ApprovalRuleTemplateAssociation":0,"aws:codecommit/repository:Repository":0,"aws:codecommit/trigger:Trigger":0,"aws:codedeploy/application:Application":0,"aws:codedeploy/deploymentConfig:DeploymentConfig":0,"aws:codedeploy/deploymentGroup:DeploymentGroup":0,"aws:codeguruprofiler/profilingGroup:ProfilingGroup":1,"aws:codegurureviewer/repositoryAssociation:RepositoryAssociation":0,"aws:codepipeline/customActionType:CustomActionType":0,"aws:codepipeline/pipeline:Pipeline":0,"aws:codepipeline/webhook:Webhook":0,"aws:codestarconnections/connection:Connection":0,"aws:codestarconnections/host:Host":0,"aws:codestarnotifications/notificationRule:NotificationRule":0,"aws:cognito/identityPool:IdentityPool":0,"aws:cognito/identityPoolProviderPrincipalTag:IdentityPoolProviderPrincipalTag":0,"aws:cognito/identityPoolRoleAttachment:IdentityPoolRoleAttachment":0,"aws:cognito/identityProvider:IdentityProvider":0,"aws:cognito/managedUserPoolClient:ManagedUserPoolClient":1,"aws:cognito/resourceServer:ResourceServer":0,"aws:cognito/riskConfiguration:RiskConfiguration":0,"aws:cognito/user:User":0,"aws:cognito/userGroup:UserGroup":0,"aws:cognito/userInGroup:UserInGroup":0,"aws:cognito/userPool:UserPool":0,"aws:cognito/userPoolClient:UserPoolClient":1,"aws:cognito/userPoolDomain:UserPoolDomain":0,"aws:cognito/userPoolUICustomization:UserPoolUICustomization":0,"aws:comprehend/documentClassifier:DocumentClassifier":0,"aws:comprehend/entityRecognizer:EntityRecognizer":0,"aws:connect/botAssociation:BotAssociation":0,"aws:connect/contactFlow:ContactFlow":0,"aws:connect/contactFlowModule:ContactFlowModule":0,"aws:connect/hoursOfOperation:HoursOfOperation":0,"aws:connect/instance:Instance":0,"aws:connect/instanceStorageConfig:InstanceStorageConfig":0,"aws:connect/lambdaFunctionAssociation:LambdaFunctionAssociation":0,"aws:connect/phoneNumber:PhoneNumber":0,"aws:connect/queue:Queue":0,"aws:connect/quickConnect:QuickConnect":0,"aws:connect/routingProfile:RoutingProfile":0,"aws:connect/securityProfile:SecurityProfile":0,"aws:connect/user:User":0,"aws:connect/userHierarchyGroup:UserHierarchyGroup":0,"aws:connect/userHierarchyStructure:UserHierarchyStructure":0,"aws:connect/vocabulary:Vocabulary":0,"aws:controltower/controlTowerControl:ControlTowerControl":0,"aws:controltower/landingZone:LandingZone":0,"aws:costexplorer/anomalyMonitor:AnomalyMonitor":0,"aws:costexplorer/anomalySubscription:AnomalySubscription":0,"aws:costexplorer/costAllocationTag:CostAllocationTag":0,"aws:costexplorer/costCategory:CostCategory":0,"aws:cur/reportDefinition:ReportDefinition":0,"aws:customerprofiles/domain:Domain":0,"aws:customerprofiles/profile:Profile":0,"aws:dataexchange/dataSet:DataSet":0,"aws:dataexchange/revision:Revision":0,"aws:datapipeline/pipeline:Pipeline":0,"aws:datapipeline/pipelineDefinition:PipelineDefinition":0,"aws:datasync/agent:Agent":0,"aws:datasync/efsLocation:EfsLocation":0,"aws:datasync/fsxOpenZfsFileSystem:FsxOpenZfsFileSystem":0,"aws:datasync/locationAzureBlob:LocationAzureBlob":0,"aws:datasync/locationFsxLustre:LocationFsxLustre":0,"aws:datasync/locationFsxOntapFileSystem:LocationFsxOntapFileSystem":0,"aws:datasync/locationFsxWindows:LocationFsxWindows":0,"aws:datasync/locationHdfs:LocationHdfs":0,"aws:datasync/locationObjectStorage:LocationObjectStorage":0,"aws:datasync/locationSmb:LocationSmb":0,"aws:datasync/nfsLocation:NfsLocation":0,"aws:datasync/s3Location:S3Location":0,"aws:datasync/task:Task":0,"aws:datazone/domain:Domain":1,"aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration":1,"aws:datazone/environmentProfile:EnvironmentProfile":1,"aws:datazone/formType:FormType":1,"aws:datazone/glossary:Glossary":1,"aws:datazone/glossaryTerm:GlossaryTerm":1,"aws:datazone/project:Project":1,"aws:dax/cluster:Cluster":0,"aws:dax/parameterGroup:ParameterGroup":0,"aws:dax/subnetGroup:SubnetGroup":0,"aws:detective/graph:Graph":0,"aws:detective/invitationAccepter:InvitationAccepter":0,"aws:detective/member:Member":0,"aws:detective/organizationAdminAccount:OrganizationAdminAccount":0,"aws:detective/organizationConfiguration:OrganizationConfiguration":0,"aws:devicefarm/devicePool:DevicePool":0,"aws:devicefarm/instanceProfile:InstanceProfile":0,"aws:devicefarm/networkProfile:NetworkProfile":0,"aws:devicefarm/project:Project":0,"aws:devicefarm/testGridProject:TestGridProject":0,"aws:devicefarm/upload:Upload":0,"aws:devopsguru/eventSourcesConfig:EventSourcesConfig":1,"aws:devopsguru/notificationChannel:NotificationChannel":1,"aws:devopsguru/resourceCollection:ResourceCollection":1,"aws:devopsguru/serviceIntegration:ServiceIntegration":1,"aws:directconnect/bgpPeer:BgpPeer":0,"aws:directconnect/connection:Connection":0,"aws:directconnect/connectionAssociation:ConnectionAssociation":0,"aws:directconnect/connectionConfirmation:ConnectionConfirmation":0,"aws:directconnect/gateway:Gateway":0,"aws:directconnect/gatewayAssociation:GatewayAssociation":0,"aws:directconnect/gatewayAssociationProposal:GatewayAssociationProposal":0,"aws:directconnect/hostedConnection:HostedConnection":0,"aws:directconnect/hostedPrivateVirtualInterface:HostedPrivateVirtualInterface":0,"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter":0,"aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface":0,"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter":0,"aws:directconnect/hostedTransitVirtualInterface:HostedTransitVirtualInterface":0,"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor":0,"aws:directconnect/linkAggregationGroup:LinkAggregationGroup":0,"aws:directconnect/macsecKeyAssociation:MacsecKeyAssociation":0,"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface":0,"aws:directconnect/publicVirtualInterface:PublicVirtualInterface":0,"aws:directconnect/transitVirtualInterface:TransitVirtualInterface":0,"aws:directoryservice/conditionalForwader:ConditionalForwader":0,"aws:directoryservice/directory:Directory":0,"aws:directoryservice/logService:LogService":0,"aws:directoryservice/radiusSettings:RadiusSettings":0,"aws:directoryservice/serviceRegion:ServiceRegion":0,"aws:directoryservice/sharedDirectory:SharedDirectory":0,"aws:directoryservice/sharedDirectoryAccepter:SharedDirectoryAccepter":0,"aws:directoryservice/trust:Trust":1,"aws:dlm/lifecyclePolicy:LifecyclePolicy":0,"aws:dms/certificate:Certificate":0,"aws:dms/endpoint:Endpoint":0,"aws:dms/eventSubscription:EventSubscription":0,"aws:dms/replicationConfig:ReplicationConfig":0,"aws:dms/replicationInstance:ReplicationInstance":0,"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup":0,"aws:dms/replicationTask:ReplicationTask":0,"aws:dms/s3Endpoint:S3Endpoint":0,"aws:docdb/cluster:Cluster":0,"aws:docdb/clusterInstance:ClusterInstance":0,"aws:docdb/clusterParameterGroup:ClusterParameterGroup":0,"aws:docdb/clusterSnapshot:ClusterSnapshot":0,"aws:docdb/elasticCluster:ElasticCluster":1,"aws:docdb/eventSubscription:EventSubscription":0,"aws:docdb/globalCluster:GlobalCluster":0,"aws:docdb/subnetGroup:SubnetGroup":0,"aws:drs/replicationConfigurationTemplate:ReplicationConfigurationTemplate":1,"aws:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"aws:dynamodb/resourcePolicy:ResourcePolicy":1,"aws:dynamodb/table:Table":0,"aws:dynamodb/tableExport:TableExport":0,"aws:dynamodb/tableItem:TableItem":0,"aws:dynamodb/tableReplica:TableReplica":0,"aws:dynamodb/tag:Tag":0,"aws:ebs/defaultKmsKey:DefaultKmsKey":0,"aws:ebs/encryptionByDefault:EncryptionByDefault":0,"aws:ebs/fastSnapshotRestore:FastSnapshotRestore":1,"aws:ebs/snapshot:Snapshot":0,"aws:ebs/snapshotBlockPublicAccess:SnapshotBlockPublicAccess":0,"aws:ebs/snapshotCopy:SnapshotCopy":0,"aws:ebs/snapshotImport:SnapshotImport":0,"aws:ebs/volume:Volume":0,"aws:ec2/ami:Ami":0,"aws:ec2/amiCopy:AmiCopy":0,"aws:ec2/amiFromInstance:AmiFromInstance":0,"aws:ec2/amiLaunchPermission:AmiLaunchPermission":0,"aws:ec2/availabilityZoneGroup:AvailabilityZoneGroup":0,"aws:ec2/capacityBlockReservation:CapacityBlockReservation":1,"aws:ec2/capacityReservation:CapacityReservation":0,"aws:ec2/carrierGateway:CarrierGateway":0,"aws:ec2/customerGateway:CustomerGateway":0,"aws:ec2/dedicatedHost:DedicatedHost":0,"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl":0,"aws:ec2/defaultRouteTable:DefaultRouteTable":0,"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup":0,"aws:ec2/defaultSubnet:DefaultSubnet":0,"aws:ec2/defaultVpc:DefaultVpc":0,"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions":0,"aws:ec2/egressOnlyInternetGateway:EgressOnlyInternetGateway":0,"aws:ec2/eip:Eip":0,"aws:ec2/eipAssociation:EipAssociation":0,"aws:ec2/eipDomainName:EipDomainName":1,"aws:ec2/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults":1,"aws:ec2/internetGateway:InternetGateway":0,"aws:ec2/internetGatewayAttachment:InternetGatewayAttachment":0,"aws:ec2/keyPair:KeyPair":0,"aws:ec2/launchConfiguration:LaunchConfiguration":0,"aws:ec2/launchTemplate:LaunchTemplate":0,"aws:ec2/localGatewayRoute:LocalGatewayRoute":0,"aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation":0,"aws:ec2/mainRouteTableAssociation:MainRouteTableAssociation":0,"aws:ec2/managedPrefixList:ManagedPrefixList":0,"aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry":0,"aws:ec2/natGateway:NatGateway":0,"aws:ec2/networkAcl:NetworkAcl":0,"aws:ec2/networkAclAssociation:NetworkAclAssociation":0,"aws:ec2/networkAclRule:NetworkAclRule":0,"aws:ec2/networkInsightsAnalysis:NetworkInsightsAnalysis":0,"aws:ec2/networkInsightsPath:NetworkInsightsPath":0,"aws:ec2/networkInterface:NetworkInterface":0,"aws:ec2/networkInterfaceAttachment:NetworkInterfaceAttachment":0,"aws:ec2/networkInterfaceSecurityGroupAttachment:NetworkInterfaceSecurityGroupAttachment":0,"aws:ec2/peeringConnectionOptions:PeeringConnectionOptions":0,"aws:ec2/placementGroup:PlacementGroup":0,"aws:ec2/proxyProtocolPolicy:ProxyProtocolPolicy":0,"aws:ec2/route:Route":0,"aws:ec2/routeTable:RouteTable":0,"aws:ec2/routeTableAssociation:RouteTableAssociation":0,"aws:ec2/securityGroup:SecurityGroup":0,"aws:ec2/securityGroupAssociation:SecurityGroupAssociation":0,"aws:ec2/securityGroupRule:SecurityGroupRule":0,"aws:ec2/serialConsoleAccess:SerialConsoleAccess":0,"aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission":0,"aws:ec2/spotDatafeedSubscription:SpotDatafeedSubscription":0,"aws:ec2/spotFleetRequest:SpotFleetRequest":0,"aws:ec2/spotInstanceRequest:SpotInstanceRequest":0,"aws:ec2/subnet:Subnet":0,"aws:ec2/subnetCidrReservation:SubnetCidrReservation":0,"aws:ec2/tag:Tag":0,"aws:ec2/trafficMirrorFilter:TrafficMirrorFilter":0,"aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule":0,"aws:ec2/trafficMirrorSession:TrafficMirrorSession":0,"aws:ec2/trafficMirrorTarget:TrafficMirrorTarget":0,"aws:ec2/volumeAttachment:VolumeAttachment":0,"aws:ec2/vpc:Vpc":0,"aws:ec2/vpcDhcpOptions:VpcDhcpOptions":0,"aws:ec2/vpcDhcpOptionsAssociation:VpcDhcpOptionsAssociation":0,"aws:ec2/vpcEndpoint:VpcEndpoint":0,"aws:ec2/vpcEndpointConnectionAccepter:VpcEndpointConnectionAccepter":0,"aws:ec2/vpcEndpointConnectionNotification:VpcEndpointConnectionNotification":0,"aws:ec2/vpcEndpointPolicy:VpcEndpointPolicy":0,"aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation":0,"aws:ec2/vpcEndpointService:VpcEndpointService":0,"aws:ec2/vpcEndpointServiceAllowedPrinciple:VpcEndpointServiceAllowedPrinciple":0,"aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation":0,"aws:ec2/vpcIpam:VpcIpam":0,"aws:ec2/vpcIpamOrganizationAdminAccount:VpcIpamOrganizationAdminAccount":0,"aws:ec2/vpcIpamPool:VpcIpamPool":0,"aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr":0,"aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation":0,"aws:ec2/vpcIpamPreviewNextCidr:VpcIpamPreviewNextCidr":0,"aws:ec2/vpcIpamResourceDiscovery:VpcIpamResourceDiscovery":0,"aws:ec2/vpcIpamResourceDiscoveryAssociation:VpcIpamResourceDiscoveryAssociation":0,"aws:ec2/vpcIpamScope:VpcIpamScope":0,"aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation":0,"aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation":0,"aws:ec2/vpcNetworkPerformanceMetricSubscription:VpcNetworkPerformanceMetricSubscription":0,"aws:ec2/vpcPeeringConnection:VpcPeeringConnection":0,"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter":0,"aws:ec2/vpnConnection:VpnConnection":0,"aws:ec2/vpnConnectionRoute:VpnConnectionRoute":0,"aws:ec2/vpnGateway:VpnGateway":0,"aws:ec2/vpnGatewayAttachment:VpnGatewayAttachment":0,"aws:ec2/vpnGatewayRoutePropagation:VpnGatewayRoutePropagation":0,"aws:ec2clientvpn/authorizationRule:AuthorizationRule":0,"aws:ec2clientvpn/endpoint:Endpoint":0,"aws:ec2clientvpn/networkAssociation:NetworkAssociation":0,"aws:ec2clientvpn/route:Route":0,"aws:ec2transitgateway/connect:Connect":0,"aws:ec2transitgateway/connectPeer:ConnectPeer":0,"aws:ec2transitgateway/instanceConnectEndpoint:InstanceConnectEndpoint":1,"aws:ec2transitgateway/instanceState:InstanceState":0,"aws:ec2transitgateway/multicastDomain:MulticastDomain":0,"aws:ec2transitgateway/multicastDomainAssociation:MulticastDomainAssociation":0,"aws:ec2transitgateway/multicastGroupMember:MulticastGroupMember":0,"aws:ec2transitgateway/multicastGroupSource:MulticastGroupSource":0,"aws:ec2transitgateway/peeringAttachment:PeeringAttachment":0,"aws:ec2transitgateway/peeringAttachmentAccepter:PeeringAttachmentAccepter":0,"aws:ec2transitgateway/policyTable:PolicyTable":0,"aws:ec2transitgateway/policyTableAssociation:PolicyTableAssociation":0,"aws:ec2transitgateway/prefixListReference:PrefixListReference":0,"aws:ec2transitgateway/route:Route":0,"aws:ec2transitgateway/routeTable:RouteTable":0,"aws:ec2transitgateway/routeTableAssociation:RouteTableAssociation":0,"aws:ec2transitgateway/routeTablePropagation:RouteTablePropagation":0,"aws:ec2transitgateway/transitGateway:TransitGateway":0,"aws:ec2transitgateway/vpcAttachment:VpcAttachment":0,"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter":0,"aws:ecr/lifecyclePolicy:LifecyclePolicy":0,"aws:ecr/pullThroughCacheRule:PullThroughCacheRule":0,"aws:ecr/registryPolicy:RegistryPolicy":0,"aws:ecr/registryScanningConfiguration:RegistryScanningConfiguration":0,"aws:ecr/replicationConfiguration:ReplicationConfiguration":0,"aws:ecr/repository:Repository":0,"aws:ecr/repositoryCreationTemplate:RepositoryCreationTemplate":0,"aws:ecr/repositoryPolicy:RepositoryPolicy":0,"aws:ecrpublic/repository:Repository":0,"aws:ecrpublic/repositoryPolicy:RepositoryPolicy":0,"aws:ecs/accountSettingDefault:AccountSettingDefault":0,"aws:ecs/capacityProvider:CapacityProvider":0,"aws:ecs/cluster:Cluster":0,"aws:ecs/clusterCapacityProviders:ClusterCapacityProviders":0,"aws:ecs/service:Service":0,"aws:ecs/tag:Tag":0,"aws:ecs/taskDefinition:TaskDefinition":0,"aws:ecs/taskSet:TaskSet":0,"aws:efs/accessPoint:AccessPoint":0,"aws:efs/backupPolicy:BackupPolicy":0,"aws:efs/fileSystem:FileSystem":0,"aws:efs/fileSystemPolicy:FileSystemPolicy":0,"aws:efs/mountTarget:MountTarget":0,"aws:efs/replicationConfiguration:ReplicationConfiguration":0,"aws:eks/accessEntry:AccessEntry":0,"aws:eks/accessPolicyAssociation:AccessPolicyAssociation":0,"aws:eks/addon:Addon":0,"aws:eks/cluster:Cluster":0,"aws:eks/fargateProfile:FargateProfile":0,"aws:eks/identityProviderConfig:IdentityProviderConfig":0,"aws:eks/nodeGroup:NodeGroup":0,"aws:eks/podIdentityAssociation:PodIdentityAssociation":1,"aws:elasticache/cluster:Cluster":0,"aws:elasticache/globalReplicationGroup:GlobalReplicationGroup":0,"aws:elasticache/parameterGroup:ParameterGroup":0,"aws:elasticache/replicationGroup:ReplicationGroup":0,"aws:elasticache/serverlessCache:ServerlessCache":1,"aws:elasticache/subnetGroup:SubnetGroup":0,"aws:elasticache/user:User":0,"aws:elasticache/userGroup:UserGroup":0,"aws:elasticache/userGroupAssociation:UserGroupAssociation":0,"aws:elasticbeanstalk/application:Application":0,"aws:elasticbeanstalk/applicationVersion:ApplicationVersion":0,"aws:elasticbeanstalk/configurationTemplate:ConfigurationTemplate":0,"aws:elasticbeanstalk/environment:Environment":0,"aws:elasticsearch/domain:Domain":0,"aws:elasticsearch/domainPolicy:DomainPolicy":0,"aws:elasticsearch/domainSamlOptions:DomainSamlOptions":0,"aws:elasticsearch/vpcEndpoint:VpcEndpoint":0,"aws:elastictranscoder/pipeline:Pipeline":0,"aws:elastictranscoder/preset:Preset":0,"aws:elb/appCookieStickinessPolicy:AppCookieStickinessPolicy":0,"aws:elb/attachment:Attachment":0,"aws:elb/listenerPolicy:ListenerPolicy":0,"aws:elb/loadBalancer:LoadBalancer":0,"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy":0,"aws:elb/loadBalancerCookieStickinessPolicy:LoadBalancerCookieStickinessPolicy":0,"aws:elb/loadBalancerPolicy:LoadBalancerPolicy":0,"aws:elb/sslNegotiationPolicy:SslNegotiationPolicy":0,"aws:emr/blockPublicAccessConfiguration:BlockPublicAccessConfiguration":0,"aws:emr/cluster:Cluster":0,"aws:emr/instanceFleet:InstanceFleet":0,"aws:emr/instanceGroup:InstanceGroup":0,"aws:emr/managedScalingPolicy:ManagedScalingPolicy":0,"aws:emr/securityConfiguration:SecurityConfiguration":0,"aws:emr/studio:Studio":0,"aws:emr/studioSessionMapping:StudioSessionMapping":0,"aws:emrcontainers/jobTemplate:JobTemplate":0,"aws:emrcontainers/virtualCluster:VirtualCluster":0,"aws:emrserverless/application:Application":0,"aws:evidently/feature:Feature":0,"aws:evidently/launch:Launch":0,"aws:evidently/project:Project":0,"aws:evidently/segment:Segment":0,"aws:finspace/kxCluster:KxCluster":0,"aws:finspace/kxDatabase:KxDatabase":0,"aws:finspace/kxDataview:KxDataview":0,"aws:finspace/kxEnvironment:KxEnvironment":0,"aws:finspace/kxScalingGroup:KxScalingGroup":0,"aws:finspace/kxUser:KxUser":0,"aws:finspace/kxVolume:KxVolume":0,"aws:fis/experimentTemplate:ExperimentTemplate":0,"aws:fms/adminAccount:AdminAccount":0,"aws:fms/policy:Policy":0,"aws:fms/resourceSet:ResourceSet":1,"aws:fsx/backup:Backup":0,"aws:fsx/dataRepositoryAssociation:DataRepositoryAssociation":0,"aws:fsx/fileCache:FileCache":0,"aws:fsx/lustreFileSystem:LustreFileSystem":0,"aws:fsx/ontapFileSystem:OntapFileSystem":0,"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine":0,"aws:fsx/ontapVolume:OntapVolume":0,"aws:fsx/openZfsFileSystem:OpenZfsFileSystem":0,"aws:fsx/openZfsSnapshot:OpenZfsSnapshot":0,"aws:fsx/openZfsVolume:OpenZfsVolume":0,"aws:fsx/windowsFileSystem:WindowsFileSystem":0,"aws:gamelift/alias:Alias":0,"aws:gamelift/build:Build":0,"aws:gamelift/fleet:Fleet":0,"aws:gamelift/gameServerGroup:GameServerGroup":0,"aws:gamelift/gameSessionQueue:GameSessionQueue":0,"aws:gamelift/matchmakingConfiguration:MatchmakingConfiguration":0,"aws:gamelift/matchmakingRuleSet:MatchmakingRuleSet":0,"aws:gamelift/script:Script":0,"aws:glacier/vault:Vault":0,"aws:glacier/vaultLock:VaultLock":0,"aws:globalaccelerator/accelerator:Accelerator":0,"aws:globalaccelerator/crossAccountAttachment:CrossAccountAttachment":1,"aws:globalaccelerator/customRoutingAccelerator:CustomRoutingAccelerator":0,"aws:globalaccelerator/customRoutingEndpointGroup:CustomRoutingEndpointGroup":0,"aws:globalaccelerator/customRoutingListener:CustomRoutingListener":0,"aws:globalaccelerator/endpointGroup:EndpointGroup":0,"aws:globalaccelerator/listener:Listener":0,"aws:glue/catalogDatabase:CatalogDatabase":0,"aws:glue/catalogTable:CatalogTable":0,"aws:glue/classifier:Classifier":0,"aws:glue/connection:Connection":0,"aws:glue/crawler:Crawler":0,"aws:glue/dataCatalogEncryptionSettings:DataCatalogEncryptionSettings":0,"aws:glue/dataQualityRuleset:DataQualityRuleset":0,"aws:glue/devEndpoint:DevEndpoint":0,"aws:glue/job:Job":0,"aws:glue/mLTransform:MLTransform":0,"aws:glue/partition:Partition":0,"aws:glue/partitionIndex:PartitionIndex":0,"aws:glue/registry:Registry":0,"aws:glue/resourcePolicy:ResourcePolicy":0,"aws:glue/schema:Schema":0,"aws:glue/securityConfiguration:SecurityConfiguration":0,"aws:glue/trigger:Trigger":0,"aws:glue/userDefinedFunction:UserDefinedFunction":0,"aws:glue/workflow:Workflow":0,"aws:grafana/licenseAssociation:LicenseAssociation":0,"aws:grafana/roleAssociation:RoleAssociation":0,"aws:grafana/workspace:Workspace":0,"aws:grafana/workspaceApiKey:WorkspaceApiKey":0,"aws:grafana/workspaceSamlConfiguration:WorkspaceSamlConfiguration":0,"aws:grafana/workspaceServiceAccount:WorkspaceServiceAccount":1,"aws:grafana/workspaceServiceAccountToken:WorkspaceServiceAccountToken":1,"aws:guardduty/detector:Detector":0,"aws:guardduty/detectorFeature:DetectorFeature":0,"aws:guardduty/filter:Filter":0,"aws:guardduty/iPSet:IPSet":0,"aws:guardduty/inviteAccepter:InviteAccepter":0,"aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan":1,"aws:guardduty/member:Member":0,"aws:guardduty/organizationAdminAccount:OrganizationAdminAccount":0,"aws:guardduty/organizationConfiguration:OrganizationConfiguration":0,"aws:guardduty/organizationConfigurationFeature:OrganizationConfigurationFeature":0,"aws:guardduty/publishingDestination:PublishingDestination":0,"aws:guardduty/threatIntelSet:ThreatIntelSet":0,"aws:iam/accessKey:AccessKey":0,"aws:iam/accountAlias:AccountAlias":0,"aws:iam/accountPasswordPolicy:AccountPasswordPolicy":0,"aws:iam/group:Group":0,"aws:iam/groupMembership:GroupMembership":0,"aws:iam/groupPolicy:GroupPolicy":0,"aws:iam/groupPolicyAttachment:GroupPolicyAttachment":0,"aws:iam/instanceProfile:InstanceProfile":0,"aws:iam/openIdConnectProvider:OpenIdConnectProvider":0,"aws:iam/policy:Policy":0,"aws:iam/policyAttachment:PolicyAttachment":0,"aws:iam/role:Role":0,"aws:iam/rolePolicy:RolePolicy":0,"aws:iam/rolePolicyAttachment:RolePolicyAttachment":0,"aws:iam/samlProvider:SamlProvider":0,"aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences":0,"aws:iam/serverCertificate:ServerCertificate":0,"aws:iam/serviceLinkedRole:ServiceLinkedRole":0,"aws:iam/serviceSpecificCredential:ServiceSpecificCredential":0,"aws:iam/signingCertificate:SigningCertificate":0,"aws:iam/sshKey:SshKey":0,"aws:iam/user:User":0,"aws:iam/userGroupMembership:UserGroupMembership":0,"aws:iam/userLoginProfile:UserLoginProfile":0,"aws:iam/userPolicy:UserPolicy":0,"aws:iam/userPolicyAttachment:UserPolicyAttachment":0,"aws:iam/virtualMfaDevice:VirtualMfaDevice":0,"aws:identitystore/group:Group":0,"aws:identitystore/groupMembership:GroupMembership":0,"aws:identitystore/user:User":0,"aws:imagebuilder/component:Component":0,"aws:imagebuilder/containerRecipe:ContainerRecipe":0,"aws:imagebuilder/distributionConfiguration:DistributionConfiguration":0,"aws:imagebuilder/image:Image":0,"aws:imagebuilder/imagePipeline:ImagePipeline":0,"aws:imagebuilder/imageRecipe:ImageRecipe":0,"aws:imagebuilder/infrastructureConfiguration:InfrastructureConfiguration":0,"aws:imagebuilder/workflow:Workflow":0,"aws:inspector/assessmentTarget:AssessmentTarget":0,"aws:inspector/assessmentTemplate:AssessmentTemplate":0,"aws:inspector/resourceGroup:ResourceGroup":0,"aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount":0,"aws:inspector2/enabler:Enabler":0,"aws:inspector2/memberAssociation:MemberAssociation":0,"aws:inspector2/organizationConfiguration:OrganizationConfiguration":0,"aws:iot/authorizer:Authorizer":0,"aws:iot/billingGroup:BillingGroup":0,"aws:iot/caCertificate:CaCertificate":0,"aws:iot/certificate:Certificate":0,"aws:iot/domainConfiguration:DomainConfiguration":0,"aws:iot/eventConfigurations:EventConfigurations":0,"aws:iot/indexingConfiguration:IndexingConfiguration":0,"aws:iot/loggingOptions:LoggingOptions":0,"aws:iot/policy:Policy":0,"aws:iot/policyAttachment:PolicyAttachment":0,"aws:iot/provisioningTemplate:ProvisioningTemplate":0,"aws:iot/roleAlias:RoleAlias":0,"aws:iot/thing:Thing":0,"aws:iot/thingGroup:ThingGroup":0,"aws:iot/thingGroupMembership:ThingGroupMembership":0,"aws:iot/thingPrincipalAttachment:ThingPrincipalAttachment":0,"aws:iot/thingType:ThingType":0,"aws:iot/topicRule:TopicRule":0,"aws:iot/topicRuleDestination:TopicRuleDestination":0,"aws:ivs/channel:Channel":0,"aws:ivs/playbackKeyPair:PlaybackKeyPair":0,"aws:ivs/recordingConfiguration:RecordingConfiguration":0,"aws:ivschat/loggingConfiguration:LoggingConfiguration":0,"aws:ivschat/room:Room":0,"aws:kendra/dataSource:DataSource":0,"aws:kendra/experience:Experience":0,"aws:kendra/faq:Faq":0,"aws:kendra/index:Index":0,"aws:kendra/querySuggestionsBlockList:QuerySuggestionsBlockList":0,"aws:kendra/thesaurus:Thesaurus":0,"aws:keyspaces/keyspace:Keyspace":0,"aws:keyspaces/table:Table":0,"aws:kinesis/analyticsApplication:AnalyticsApplication":0,"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream":0,"aws:kinesis/resourcePolicy:ResourcePolicy":1,"aws:kinesis/stream:Stream":0,"aws:kinesis/streamConsumer:StreamConsumer":0,"aws:kinesis/videoStream:VideoStream":0,"aws:kinesisanalyticsv2/application:Application":0,"aws:kinesisanalyticsv2/applicationSnapshot:ApplicationSnapshot":0,"aws:kms/alias:Alias":0,"aws:kms/ciphertext:Ciphertext":0,"aws:kms/customKeyStore:CustomKeyStore":0,"aws:kms/externalKey:ExternalKey":0,"aws:kms/grant:Grant":0,"aws:kms/key:Key":0,"aws:kms/keyPolicy:KeyPolicy":0,"aws:kms/replicaExternalKey:ReplicaExternalKey":0,"aws:kms/replicaKey:ReplicaKey":0,"aws:lakeformation/dataCellsFilter:DataCellsFilter":1,"aws:lakeformation/dataLakeSettings:DataLakeSettings":0,"aws:lakeformation/lfTag:LfTag":0,"aws:lakeformation/permissions:Permissions":0,"aws:lakeformation/resource:Resource":0,"aws:lakeformation/resourceLfTag:ResourceLfTag":1,"aws:lakeformation/resourceLfTags:ResourceLfTags":0,"aws:lambda/alias:Alias":0,"aws:lambda/codeSigningConfig:CodeSigningConfig":0,"aws:lambda/eventSourceMapping:EventSourceMapping":0,"aws:lambda/function:Function":0,"aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig":0,"aws:lambda/functionUrl:FunctionUrl":0,"aws:lambda/invocation:Invocation":0,"aws:lambda/layerVersion:LayerVersion":0,"aws:lambda/layerVersionPermission:LayerVersionPermission":0,"aws:lambda/permission:Permission":0,"aws:lambda/provisionedConcurrencyConfig:ProvisionedConcurrencyConfig":0,"aws:lambda/runtimeManagementConfig:RuntimeManagementConfig":1,"aws:lb/listener:Listener":0,"aws:lb/listenerCertificate:ListenerCertificate":0,"aws:lb/listenerRule:ListenerRule":0,"aws:lb/loadBalancer:LoadBalancer":0,"aws:lb/targetGroup:TargetGroup":0,"aws:lb/targetGroupAttachment:TargetGroupAttachment":0,"aws:lb/trustStore:TrustStore":0,"aws:lb/trustStoreRevocation:TrustStoreRevocation":0,"aws:lex/bot:Bot":0,"aws:lex/botAlias:BotAlias":0,"aws:lex/intent:Intent":0,"aws:lex/slotType:SlotType":0,"aws:lex/v2modelsBot:V2modelsBot":1,"aws:lex/v2modelsBotLocale:V2modelsBotLocale":1,"aws:lex/v2modelsBotVersion:V2modelsBotVersion":1,"aws:lex/v2modelsIntent:V2modelsIntent":1,"aws:lex/v2modelsSlot:V2modelsSlot":1,"aws:lex/v2modelsSlotType:V2modelsSlotType":1,"aws:licensemanager/association:Association":0,"aws:licensemanager/licenseConfiguration:LicenseConfiguration":0,"aws:licensemanager/licenseGrant:LicenseGrant":0,"aws:licensemanager/licenseGrantAccepter:LicenseGrantAccepter":0,"aws:lightsail/bucket:Bucket":0,"aws:lightsail/bucketAccessKey:BucketAccessKey":0,"aws:lightsail/bucketResourceAccess:BucketResourceAccess":0,"aws:lightsail/certificate:Certificate":0,"aws:lightsail/containerService:ContainerService":0,"aws:lightsail/containerServiceDeploymentVersion:ContainerServiceDeploymentVersion":0,"aws:lightsail/database:Database":0,"aws:lightsail/disk:Disk":0,"aws:lightsail/disk_attachment:Disk_attachment":0,"aws:lightsail/distribution:Distribution":0,"aws:lightsail/domain:Domain":0,"aws:lightsail/domainEntry:DomainEntry":0,"aws:lightsail/instance:Instance":0,"aws:lightsail/instancePublicPorts:InstancePublicPorts":0,"aws:lightsail/keyPair:KeyPair":0,"aws:lightsail/lb:Lb":0,"aws:lightsail/lbAttachment:LbAttachment":0,"aws:lightsail/lbCertificate:LbCertificate":0,"aws:lightsail/lbCertificateAttachment:LbCertificateAttachment":0,"aws:lightsail/lbHttpsRedirectionPolicy:LbHttpsRedirectionPolicy":0,"aws:lightsail/lbStickinessPolicy:LbStickinessPolicy":0,"aws:lightsail/staticIp:StaticIp":0,"aws:lightsail/staticIpAttachment:StaticIpAttachment":0,"aws:location/geofenceCollection:GeofenceCollection":0,"aws:location/map:Map":0,"aws:location/placeIndex:PlaceIndex":0,"aws:location/routeCalculation:RouteCalculation":0,"aws:location/tracker:Tracker":0,"aws:location/trackerAssociation:TrackerAssociation":0,"aws:m2/application:Application":1,"aws:m2/deployment:Deployment":1,"aws:m2/environment:Environment":1,"aws:macie/customDataIdentifier:CustomDataIdentifier":0,"aws:macie/findingsFilter:FindingsFilter":0,"aws:macie2/account:Account":0,"aws:macie2/classificationExportConfiguration:ClassificationExportConfiguration":0,"aws:macie2/classificationJob:ClassificationJob":0,"aws:macie2/invitationAccepter:InvitationAccepter":0,"aws:macie2/member:Member":0,"aws:macie2/organizationAdminAccount:OrganizationAdminAccount":0,"aws:mediaconvert/queue:Queue":0,"aws:medialive/channel:Channel":0,"aws:medialive/input:Input":0,"aws:medialive/inputSecurityGroup:InputSecurityGroup":0,"aws:medialive/multiplex:Multiplex":0,"aws:medialive/multiplexProgram:MultiplexProgram":1,"aws:mediapackage/channel:Channel":0,"aws:mediastore/container:Container":0,"aws:mediastore/containerPolicy:ContainerPolicy":0,"aws:memorydb/acl:Acl":0,"aws:memorydb/cluster:Cluster":0,"aws:memorydb/parameterGroup:ParameterGroup":0,"aws:memorydb/snapshot:Snapshot":0,"aws:memorydb/subnetGroup:SubnetGroup":0,"aws:memorydb/user:User":0,"aws:mq/broker:Broker":0,"aws:mq/configuration:Configuration":0,"aws:msk/cluster:Cluster":0,"aws:msk/clusterPolicy:ClusterPolicy":0,"aws:msk/configuration:Configuration":0,"aws:msk/replicator:Replicator":0,"aws:msk/scramSecretAssociation:ScramSecretAssociation":0,"aws:msk/serverlessCluster:ServerlessCluster":0,"aws:msk/vpcConnection:VpcConnection":0,"aws:mskconnect/connector:Connector":0,"aws:mskconnect/customPlugin:CustomPlugin":0,"aws:mskconnect/workerConfiguration:WorkerConfiguration":0,"aws:mwaa/environment:Environment":0,"aws:neptune/cluster:Cluster":0,"aws:neptune/clusterEndpoint:ClusterEndpoint":0,"aws:neptune/clusterInstance:ClusterInstance":0,"aws:neptune/clusterParameterGroup:ClusterParameterGroup":0,"aws:neptune/clusterSnapshot:ClusterSnapshot":0,"aws:neptune/eventSubscription:EventSubscription":0,"aws:neptune/globalCluster:GlobalCluster":0,"aws:neptune/parameterGroup:ParameterGroup":0,"aws:neptune/subnetGroup:SubnetGroup":0,"aws:networkfirewall/firewall:Firewall":0,"aws:networkfirewall/firewallPolicy:FirewallPolicy":0,"aws:networkfirewall/loggingConfiguration:LoggingConfiguration":0,"aws:networkfirewall/resourcePolicy:ResourcePolicy":0,"aws:networkfirewall/ruleGroup:RuleGroup":0,"aws:networkfirewall/tlsInspectionConfiguration:TlsInspectionConfiguration":1,"aws:networkmanager/attachmentAccepter:AttachmentAccepter":0,"aws:networkmanager/connectAttachment:ConnectAttachment":0,"aws:networkmanager/connectPeer:ConnectPeer":0,"aws:networkmanager/connection:Connection":0,"aws:networkmanager/coreNetwork:CoreNetwork":0,"aws:networkmanager/coreNetworkPolicyAttachment:CoreNetworkPolicyAttachment":0,"aws:networkmanager/customerGatewayAssociation:CustomerGatewayAssociation":0,"aws:networkmanager/device:Device":0,"aws:networkmanager/globalNetwork:GlobalNetwork":0,"aws:networkmanager/link:Link":0,"aws:networkmanager/linkAssociation:LinkAssociation":0,"aws:networkmanager/site:Site":0,"aws:networkmanager/siteToSiteVpnAttachment:SiteToSiteVpnAttachment":0,"aws:networkmanager/transitGatewayConnectPeerAssociation:TransitGatewayConnectPeerAssociation":0,"aws:networkmanager/transitGatewayPeering:TransitGatewayPeering":0,"aws:networkmanager/transitGatewayRegistration:TransitGatewayRegistration":0,"aws:networkmanager/transitGatewayRouteTableAttachment:TransitGatewayRouteTableAttachment":0,"aws:networkmanager/vpcAttachment:VpcAttachment":0,"aws:networkmonitor/monitor:Monitor":1,"aws:networkmonitor/probe:Probe":1,"aws:oam/link:Link":0,"aws:oam/sink:Sink":0,"aws:oam/sinkPolicy:SinkPolicy":0,"aws:opensearch/domain:Domain":0,"aws:opensearch/domainPolicy:DomainPolicy":0,"aws:opensearch/domainSamlOptions:DomainSamlOptions":0,"aws:opensearch/inboundConnectionAccepter:InboundConnectionAccepter":0,"aws:opensearch/outboundConnection:OutboundConnection":0,"aws:opensearch/package:Package":0,"aws:opensearch/packageAssociation:PackageAssociation":0,"aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy":1,"aws:opensearch/serverlessCollection:ServerlessCollection":1,"aws:opensearch/serverlessLifecyclePolicy:ServerlessLifecyclePolicy":1,"aws:opensearch/serverlessSecurityConfig:ServerlessSecurityConfig":1,"aws:opensearch/serverlessSecurityPolicy:ServerlessSecurityPolicy":1,"aws:opensearch/serverlessVpcEndpoint:ServerlessVpcEndpoint":1,"aws:opensearch/vpcEndpoint:VpcEndpoint":0,"aws:opensearchingest/pipeline:Pipeline":1,"aws:opsworks/application:Application":0,"aws:opsworks/customLayer:CustomLayer":0,"aws:opsworks/ecsClusterLayer:EcsClusterLayer":0,"aws:opsworks/gangliaLayer:GangliaLayer":0,"aws:opsworks/haproxyLayer:HaproxyLayer":0,"aws:opsworks/instance:Instance":0,"aws:opsworks/javaAppLayer:JavaAppLayer":0,"aws:opsworks/memcachedLayer:MemcachedLayer":0,"aws:opsworks/mysqlLayer:MysqlLayer":0,"aws:opsworks/nodejsAppLayer:NodejsAppLayer":0,"aws:opsworks/permission:Permission":0,"aws:opsworks/phpAppLayer:PhpAppLayer":0,"aws:opsworks/railsAppLayer:RailsAppLayer":0,"aws:opsworks/rdsDbInstance:RdsDbInstance":0,"aws:opsworks/stack:Stack":0,"aws:opsworks/staticWebLayer:StaticWebLayer":0,"aws:opsworks/userProfile:UserProfile":0,"aws:organizations/account:Account":0,"aws:organizations/delegatedAdministrator:DelegatedAdministrator":0,"aws:organizations/organization:Organization":0,"aws:organizations/organizationalUnit:OrganizationalUnit":0,"aws:organizations/policy:Policy":0,"aws:organizations/policyAttachment:PolicyAttachment":0,"aws:organizations/resourcePolicy:ResourcePolicy":0,"aws:paymentcryptography/key:Key":1,"aws:paymentcryptography/keyAlias:KeyAlias":1,"aws:pinpoint/admChannel:AdmChannel":0,"aws:pinpoint/apnsChannel:ApnsChannel":0,"aws:pinpoint/apnsSandboxChannel:ApnsSandboxChannel":0,"aws:pinpoint/apnsVoipChannel:ApnsVoipChannel":0,"aws:pinpoint/apnsVoipSandboxChannel:ApnsVoipSandboxChannel":0,"aws:pinpoint/app:App":0,"aws:pinpoint/baiduChannel:BaiduChannel":0,"aws:pinpoint/emailChannel:EmailChannel":0,"aws:pinpoint/emailTemplate:EmailTemplate":1,"aws:pinpoint/eventStream:EventStream":0,"aws:pinpoint/gcmChannel:GcmChannel":0,"aws:pinpoint/smsChannel:SmsChannel":0,"aws:pipes/pipe:Pipe":0,"aws:qldb/ledger:Ledger":0,"aws:qldb/stream:Stream":0,"aws:quicksight/accountSubscription:AccountSubscription":0,"aws:quicksight/analysis:Analysis":0,"aws:quicksight/dashboard:Dashboard":0,"aws:quicksight/dataSet:DataSet":0,"aws:quicksight/dataSource:DataSource":0,"aws:quicksight/folder:Folder":0,"aws:quicksight/folderMembership:FolderMembership":1,"aws:quicksight/group:Group":0,"aws:quicksight/groupMembership:GroupMembership":0,"aws:quicksight/iamPolicyAssignment:IamPolicyAssignment":1,"aws:quicksight/ingestion:Ingestion":1,"aws:quicksight/namespace:Namespace":1,"aws:quicksight/refreshSchedule:RefreshSchedule":1,"aws:quicksight/template:Template":0,"aws:quicksight/templateAlias:TemplateAlias":1,"aws:quicksight/theme:Theme":0,"aws:quicksight/user:User":0,"aws:quicksight/vpcConnection:VpcConnection":1,"aws:ram/principalAssociation:PrincipalAssociation":0,"aws:ram/resourceAssociation:ResourceAssociation":0,"aws:ram/resourceShare:ResourceShare":0,"aws:ram/resourceShareAccepter:ResourceShareAccepter":0,"aws:ram/sharingWithOrganization:SharingWithOrganization":0,"aws:rbin/rule:Rule":0,"aws:rds/certificate:Certificate":0,"aws:rds/cluster:Cluster":0,"aws:rds/clusterActivityStream:ClusterActivityStream":0,"aws:rds/clusterEndpoint:ClusterEndpoint":0,"aws:rds/clusterInstance:ClusterInstance":0,"aws:rds/clusterParameterGroup:ClusterParameterGroup":0,"aws:rds/clusterRoleAssociation:ClusterRoleAssociation":0,"aws:rds/clusterSnapshot:ClusterSnapshot":0,"aws:rds/customDbEngineVersion:CustomDbEngineVersion":0,"aws:rds/eventSubscription:EventSubscription":0,"aws:rds/exportTask:ExportTask":1,"aws:rds/globalCluster:GlobalCluster":0,"aws:rds/instance:Instance":0,"aws:rds/instanceAutomatedBackupsReplication:InstanceAutomatedBackupsReplication":0,"aws:rds/integration:Integration":1,"aws:rds/optionGroup:OptionGroup":0,"aws:rds/parameterGroup:ParameterGroup":0,"aws:rds/proxy:Proxy":0,"aws:rds/proxyDefaultTargetGroup:ProxyDefaultTargetGroup":0,"aws:rds/proxyEndpoint:ProxyEndpoint":0,"aws:rds/proxyTarget:ProxyTarget":0,"aws:rds/reservedInstance:ReservedInstance":0,"aws:rds/roleAssociation:RoleAssociation":0,"aws:rds/snapshot:Snapshot":0,"aws:rds/snapshotCopy:SnapshotCopy":0,"aws:rds/subnetGroup:SubnetGroup":0,"aws:redshift/authenticationProfile:AuthenticationProfile":0,"aws:redshift/cluster:Cluster":0,"aws:redshift/clusterIamRoles:ClusterIamRoles":0,"aws:redshift/clusterSnapshot:ClusterSnapshot":0,"aws:redshift/dataShareAuthorization:DataShareAuthorization":1,"aws:redshift/dataShareConsumerAssociation:DataShareConsumerAssociation":1,"aws:redshift/endpointAccess:EndpointAccess":0,"aws:redshift/endpointAuthorization:EndpointAuthorization":0,"aws:redshift/eventSubscription:EventSubscription":0,"aws:redshift/hsmClientCertificate:HsmClientCertificate":0,"aws:redshift/hsmConfiguration:HsmConfiguration":0,"aws:redshift/logging:Logging":1,"aws:redshift/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"aws:redshift/snapshotCopy:SnapshotCopy":1,"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant":0,"aws:redshift/snapshotSchedule:SnapshotSchedule":0,"aws:redshift/snapshotScheduleAssociation:SnapshotScheduleAssociation":0,"aws:redshift/subnetGroup:SubnetGroup":0,"aws:redshift/usageLimit:UsageLimit":0,"aws:redshiftdata/statement:Statement":0,"aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation":1,"aws:redshiftserverless/endpointAccess:EndpointAccess":0,"aws:redshiftserverless/namespace:Namespace":0,"aws:redshiftserverless/resourcePolicy:ResourcePolicy":0,"aws:redshiftserverless/snapshot:Snapshot":0,"aws:redshiftserverless/usageLimit:UsageLimit":0,"aws:redshiftserverless/workgroup:Workgroup":0,"aws:rekognition/collection:Collection":1,"aws:rekognition/project:Project":1,"aws:rekognition/streamProcessor:StreamProcessor":1,"aws:resourceexplorer/index:Index":1,"aws:resourceexplorer/view:View":1,"aws:resourcegroups/group:Group":0,"aws:resourcegroups/resource:Resource":0,"aws:rolesanywhere/profile:Profile":0,"aws:rolesanywhere/trustAnchor:TrustAnchor":0,"aws:route53/cidrCollection:CidrCollection":1,"aws:route53/cidrLocation:CidrLocation":1,"aws:route53/delegationSet:DelegationSet":0,"aws:route53/healthCheck:HealthCheck":0,"aws:route53/hostedZoneDnsSec:HostedZoneDnsSec":0,"aws:route53/keySigningKey:KeySigningKey":0,"aws:route53/queryLog:QueryLog":0,"aws:route53/record:Record":0,"aws:route53/resolverConfig:ResolverConfig":0,"aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig":0,"aws:route53/resolverEndpoint:ResolverEndpoint":0,"aws:route53/resolverFirewallConfig:ResolverFirewallConfig":0,"aws:route53/resolverFirewallDomainList:ResolverFirewallDomainList":0,"aws:route53/resolverFirewallRule:ResolverFirewallRule":0,"aws:route53/resolverFirewallRuleGroup:ResolverFirewallRuleGroup":0,"aws:route53/resolverFirewallRuleGroupAssociation:ResolverFirewallRuleGroupAssociation":0,"aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig":0,"aws:route53/resolverQueryLogConfigAssociation:ResolverQueryLogConfigAssociation":0,"aws:route53/resolverRule:ResolverRule":0,"aws:route53/resolverRuleAssociation:ResolverRuleAssociation":0,"aws:route53/trafficPolicy:TrafficPolicy":0,"aws:route53/trafficPolicyInstance:TrafficPolicyInstance":0,"aws:route53/vpcAssociationAuthorization:VpcAssociationAuthorization":0,"aws:route53/zone:Zone":0,"aws:route53/zoneAssociation:ZoneAssociation":0,"aws:route53domains/delegationSignerRecord:DelegationSignerRecord":1,"aws:route53domains/registeredDomain:RegisteredDomain":0,"aws:route53recoverycontrol/cluster:Cluster":0,"aws:route53recoverycontrol/controlPanel:ControlPanel":0,"aws:route53recoverycontrol/routingControl:RoutingControl":0,"aws:route53recoverycontrol/safetyRule:SafetyRule":0,"aws:route53recoveryreadiness/cell:Cell":0,"aws:route53recoveryreadiness/readinessCheck:ReadinessCheck":0,"aws:route53recoveryreadiness/recoveryGroup:RecoveryGroup":0,"aws:route53recoveryreadiness/resourceSet:ResourceSet":0,"aws:rum/appMonitor:AppMonitor":0,"aws:rum/metricsDestination:MetricsDestination":0,"aws:s3/accessPoint:AccessPoint":0,"aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock":0,"aws:s3/analyticsConfiguration:AnalyticsConfiguration":0,"aws:s3/bucket:Bucket":0,"aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2":0,"aws:s3/bucketAclV2:BucketAclV2":0,"aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2":0,"aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration":0,"aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2":0,"aws:s3/bucketLoggingV2:BucketLoggingV2":0,"aws:s3/bucketMetric:BucketMetric":0,"aws:s3/bucketNotification:BucketNotification":0,"aws:s3/bucketObject:BucketObject":0,"aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2":0,"aws:s3/bucketObjectv2:BucketObjectv2":0,"aws:s3/bucketOwnershipControls:BucketOwnershipControls":0,"aws:s3/bucketPolicy:BucketPolicy":0,"aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock":0,"aws:s3/bucketReplicationConfig:BucketReplicationConfig":0,"aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2":0,"aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2":0,"aws:s3/bucketV2:BucketV2":0,"aws:s3/bucketVersioningV2:BucketVersioningV2":0,"aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2":0,"aws:s3/directoryBucket:DirectoryBucket":1,"aws:s3/inventory:Inventory":0,"aws:s3/objectCopy:ObjectCopy":0,"aws:s3control/accessGrant:AccessGrant":1,"aws:s3control/accessGrantsInstance:AccessGrantsInstance":1,"aws:s3control/accessGrantsInstanceResourcePolicy:AccessGrantsInstanceResourcePolicy":1,"aws:s3control/accessGrantsLocation:AccessGrantsLocation":1,"aws:s3control/accessPointPolicy:AccessPointPolicy":0,"aws:s3control/bucket:Bucket":0,"aws:s3control/bucketLifecycleConfiguration:BucketLifecycleConfiguration":0,"aws:s3control/bucketPolicy:BucketPolicy":0,"aws:s3control/multiRegionAccessPoint:MultiRegionAccessPoint":0,"aws:s3control/multiRegionAccessPointPolicy:MultiRegionAccessPointPolicy":0,"aws:s3control/objectLambdaAccessPoint:ObjectLambdaAccessPoint":0,"aws:s3control/objectLambdaAccessPointPolicy:ObjectLambdaAccessPointPolicy":0,"aws:s3control/storageLensConfiguration:StorageLensConfiguration":0,"aws:s3outposts/endpoint:Endpoint":0,"aws:sagemaker/app:App":0,"aws:sagemaker/appImageConfig:AppImageConfig":0,"aws:sagemaker/codeRepository:CodeRepository":0,"aws:sagemaker/dataQualityJobDefinition:DataQualityJobDefinition":0,"aws:sagemaker/device:Device":0,"aws:sagemaker/deviceFleet:DeviceFleet":0,"aws:sagemaker/domain:Domain":0,"aws:sagemaker/endpoint:Endpoint":0,"aws:sagemaker/endpointConfiguration:EndpointConfiguration":0,"aws:sagemaker/featureGroup:FeatureGroup":0,"aws:sagemaker/flowDefinition:FlowDefinition":0,"aws:sagemaker/humanTaskUI:HumanTaskUI":0,"aws:sagemaker/image:Image":0,"aws:sagemaker/imageVersion:ImageVersion":0,"aws:sagemaker/model:Model":0,"aws:sagemaker/modelPackageGroup:ModelPackageGroup":0,"aws:sagemaker/modelPackageGroupPolicy:ModelPackageGroupPolicy":0,"aws:sagemaker/monitoringSchedule:MonitoringSchedule":0,"aws:sagemaker/notebookInstance:NotebookInstance":0,"aws:sagemaker/notebookInstanceLifecycleConfiguration:NotebookInstanceLifecycleConfiguration":0,"aws:sagemaker/pipeline:Pipeline":0,"aws:sagemaker/project:Project":0,"aws:sagemaker/servicecatalogPortfolioStatus:ServicecatalogPortfolioStatus":0,"aws:sagemaker/space:Space":0,"aws:sagemaker/studioLifecycleConfig:StudioLifecycleConfig":0,"aws:sagemaker/userProfile:UserProfile":0,"aws:sagemaker/workforce:Workforce":0,"aws:sagemaker/workteam:Workteam":0,"aws:scheduler/schedule:Schedule":0,"aws:scheduler/scheduleGroup:ScheduleGroup":0,"aws:schemas/discoverer:Discoverer":0,"aws:schemas/registry:Registry":0,"aws:schemas/registryPolicy:RegistryPolicy":0,"aws:schemas/schema:Schema":0,"aws:secretsmanager/secret:Secret":0,"aws:secretsmanager/secretPolicy:SecretPolicy":0,"aws:secretsmanager/secretRotation:SecretRotation":0,"aws:secretsmanager/secretVersion:SecretVersion":0,"aws:securityhub/account:Account":0,"aws:securityhub/actionTarget:ActionTarget":0,"aws:securityhub/automationRule:AutomationRule":1,"aws:securityhub/configurationPolicy:ConfigurationPolicy":0,"aws:securityhub/configurationPolicyAssociation:ConfigurationPolicyAssociation":0,"aws:securityhub/findingAggregator:FindingAggregator":0,"aws:securityhub/insight:Insight":0,"aws:securityhub/inviteAccepter:InviteAccepter":0,"aws:securityhub/member:Member":0,"aws:securityhub/organizationAdminAccount:OrganizationAdminAccount":0,"aws:securityhub/organizationConfiguration:OrganizationConfiguration":0,"aws:securityhub/productSubscription:ProductSubscription":0,"aws:securityhub/standardsControl:StandardsControl":0,"aws:securityhub/standardsSubscription:StandardsSubscription":0,"aws:securitylake/awsLogSource:AwsLogSource":1,"aws:securitylake/customLogSource:CustomLogSource":1,"aws:securitylake/dataLake:DataLake":1,"aws:securitylake/subscriber:Subscriber":1,"aws:securitylake/subscriberNotification:SubscriberNotification":1,"aws:serverlessrepository/cloudFormationStack:CloudFormationStack":0,"aws:servicecatalog/appregistryApplication:AppregistryApplication":1,"aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation":0,"aws:servicecatalog/constraint:Constraint":0,"aws:servicecatalog/organizationsAccess:OrganizationsAccess":0,"aws:servicecatalog/portfolio:Portfolio":0,"aws:servicecatalog/portfolioShare:PortfolioShare":0,"aws:servicecatalog/principalPortfolioAssociation:PrincipalPortfolioAssociation":0,"aws:servicecatalog/product:Product":0,"aws:servicecatalog/productPortfolioAssociation:ProductPortfolioAssociation":0,"aws:servicecatalog/provisionedProduct:ProvisionedProduct":0,"aws:servicecatalog/provisioningArtifact:ProvisioningArtifact":0,"aws:servicecatalog/serviceAction:ServiceAction":0,"aws:servicecatalog/tagOption:TagOption":0,"aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation":0,"aws:servicediscovery/httpNamespace:HttpNamespace":0,"aws:servicediscovery/instance:Instance":0,"aws:servicediscovery/privateDnsNamespace:PrivateDnsNamespace":0,"aws:servicediscovery/publicDnsNamespace:PublicDnsNamespace":0,"aws:servicediscovery/service:Service":0,"aws:servicequotas/serviceQuota:ServiceQuota":0,"aws:servicequotas/template:Template":1,"aws:servicequotas/templateAssociation:TemplateAssociation":1,"aws:ses/activeReceiptRuleSet:ActiveReceiptRuleSet":0,"aws:ses/configurationSet:ConfigurationSet":0,"aws:ses/domainDkim:DomainDkim":0,"aws:ses/domainIdentity:DomainIdentity":0,"aws:ses/domainIdentityVerification:DomainIdentityVerification":0,"aws:ses/emailIdentity:EmailIdentity":0,"aws:ses/eventDestination:EventDestination":0,"aws:ses/identityNotificationTopic:IdentityNotificationTopic":0,"aws:ses/identityPolicy:IdentityPolicy":0,"aws:ses/mailFrom:MailFrom":0,"aws:ses/receiptFilter:ReceiptFilter":0,"aws:ses/receiptRule:ReceiptRule":0,"aws:ses/receiptRuleSet:ReceiptRuleSet":0,"aws:ses/template:Template":0,"aws:sesv2/accountVdmAttributes:AccountVdmAttributes":0,"aws:sesv2/configurationSet:ConfigurationSet":0,"aws:sesv2/configurationSetEventDestination:ConfigurationSetEventDestination":0,"aws:sesv2/contactList:ContactList":0,"aws:sesv2/dedicatedIpAssignment:DedicatedIpAssignment":0,"aws:sesv2/dedicatedIpPool:DedicatedIpPool":0,"aws:sesv2/emailIdentity:EmailIdentity":0,"aws:sesv2/emailIdentityFeedbackAttributes:EmailIdentityFeedbackAttributes":0,"aws:sesv2/emailIdentityMailFromAttributes:EmailIdentityMailFromAttributes":0,"aws:sesv2/emailIdentityPolicy:EmailIdentityPolicy":0,"aws:sfn/activity:Activity":0,"aws:sfn/alias:Alias":0,"aws:sfn/stateMachine:StateMachine":0,"aws:shield/applicationLayerAutomaticResponse:ApplicationLayerAutomaticResponse":1,"aws:shield/drtAccessLogBucketAssociation:DrtAccessLogBucketAssociation":1,"aws:shield/drtAccessRoleArnAssociation:DrtAccessRoleArnAssociation":1,"aws:shield/proactiveEngagement:ProactiveEngagement":1,"aws:shield/protection:Protection":0,"aws:shield/protectionGroup:ProtectionGroup":0,"aws:shield/protectionHealthCheckAssociation:ProtectionHealthCheckAssociation":0,"aws:shield/subscription:Subscription":1,"aws:signer/signingJob:SigningJob":0,"aws:signer/signingProfile:SigningProfile":0,"aws:signer/signingProfilePermission:SigningProfilePermission":0,"aws:simpledb/domain:Domain":1,"aws:sns/dataProtectionPolicy:DataProtectionPolicy":0,"aws:sns/platformApplication:PlatformApplication":0,"aws:sns/smsPreferences:SmsPreferences":0,"aws:sns/topic:Topic":0,"aws:sns/topicPolicy:TopicPolicy":0,"aws:sns/topicSubscription:TopicSubscription":0,"aws:sqs/queue:Queue":0,"aws:sqs/queuePolicy:QueuePolicy":0,"aws:sqs/redriveAllowPolicy:RedriveAllowPolicy":0,"aws:sqs/redrivePolicy:RedrivePolicy":0,"aws:ssm/activation:Activation":0,"aws:ssm/association:Association":0,"aws:ssm/contactsRotation:ContactsRotation":1,"aws:ssm/defaultPatchBaseline:DefaultPatchBaseline":0,"aws:ssm/document:Document":0,"aws:ssm/maintenanceWindow:MaintenanceWindow":0,"aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget":0,"aws:ssm/maintenanceWindowTask:MaintenanceWindowTask":0,"aws:ssm/parameter:Parameter":0,"aws:ssm/patchBaseline:PatchBaseline":0,"aws:ssm/patchGroup:PatchGroup":0,"aws:ssm/resourceDataSync:ResourceDataSync":0,"aws:ssm/serviceSetting:ServiceSetting":0,"aws:ssmcontacts/contact:Contact":0,"aws:ssmcontacts/contactChannel:ContactChannel":0,"aws:ssmcontacts/plan:Plan":0,"aws:ssmincidents/replicationSet:ReplicationSet":0,"aws:ssmincidents/responsePlan:ResponsePlan":0,"aws:ssoadmin/accountAssignment:AccountAssignment":0,"aws:ssoadmin/application:Application":1,"aws:ssoadmin/applicationAccessScope:ApplicationAccessScope":1,"aws:ssoadmin/applicationAssignment:ApplicationAssignment":1,"aws:ssoadmin/applicationAssignmentConfiguration:ApplicationAssignmentConfiguration":1,"aws:ssoadmin/customerManagedPolicyAttachment:CustomerManagedPolicyAttachment":0,"aws:ssoadmin/instanceAccessControlAttributes:InstanceAccessControlAttributes":0,"aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment":0,"aws:ssoadmin/permissionSet:PermissionSet":0,"aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy":0,"aws:ssoadmin/permissionsBoundaryAttachment:PermissionsBoundaryAttachment":0,"aws:ssoadmin/trustedTokenIssuer:TrustedTokenIssuer":1,"aws:storagegateway/cache:Cache":0,"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume":0,"aws:storagegateway/fileSystemAssociation:FileSystemAssociation":0,"aws:storagegateway/gateway:Gateway":0,"aws:storagegateway/nfsFileShare:NfsFileShare":0,"aws:storagegateway/smbFileShare:SmbFileShare":0,"aws:storagegateway/storedIscsiVolume:StoredIscsiVolume":0,"aws:storagegateway/tapePool:TapePool":0,"aws:storagegateway/uploadBuffer:UploadBuffer":0,"aws:storagegateway/workingStorage:WorkingStorage":0,"aws:swf/domain:Domain":0,"aws:synthetics/canary:Canary":0,"aws:synthetics/group:Group":0,"aws:synthetics/groupAssociation:GroupAssociation":0,"aws:timestreaminfluxdb/dbInstance:DbInstance":1,"aws:timestreamwrite/database:Database":0,"aws:timestreamwrite/table:Table":0,"aws:transcribe/languageModel:LanguageModel":0,"aws:transcribe/medicalVocabulary:MedicalVocabulary":0,"aws:transcribe/vocabulary:Vocabulary":0,"aws:transcribe/vocabularyFilter:VocabularyFilter":0,"aws:transfer/access:Access":0,"aws:transfer/agreement:Agreement":0,"aws:transfer/certificate:Certificate":0,"aws:transfer/connector:Connector":0,"aws:transfer/profile:Profile":0,"aws:transfer/server:Server":0,"aws:transfer/sshKey:SshKey":0,"aws:transfer/tag:Tag":0,"aws:transfer/user:User":0,"aws:transfer/workflow:Workflow":0,"aws:verifiedaccess/endpoint:Endpoint":0,"aws:verifiedaccess/group:Group":0,"aws:verifiedaccess/instance:Instance":0,"aws:verifiedaccess/instanceLoggingConfiguration:InstanceLoggingConfiguration":0,"aws:verifiedaccess/instanceTrustProviderAttachment:InstanceTrustProviderAttachment":0,"aws:verifiedaccess/trustProvider:TrustProvider":0,"aws:verifiedpermissions/identitySource:IdentitySource":1,"aws:verifiedpermissions/policy:Policy":1,"aws:verifiedpermissions/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":1,"aws:vpc/endpointPrivateDns:EndpointPrivateDns":1,"aws:vpc/endpointServicePrivateDnsVerification:EndpointServicePrivateDnsVerification":1,"aws:vpc/securityGroupEgressRule:SecurityGroupEgressRule":1,"aws:vpc/securityGroupIngressRule:SecurityGroupIngressRule":1,"aws:vpclattice/accessLogSubscription:AccessLogSubscription":0,"aws:vpclattice/authPolicy:AuthPolicy":0,"aws:vpclattice/listener:Listener":0,"aws:vpclattice/listenerRule:ListenerRule":0,"aws:vpclattice/resourcePolicy:ResourcePolicy":0,"aws:vpclattice/service:Service":0,"aws:vpclattice/serviceNetwork:ServiceNetwork":0,"aws:vpclattice/serviceNetworkServiceAssociation:ServiceNetworkServiceAssociation":0,"aws:vpclattice/serviceNetworkVpcAssociation:ServiceNetworkVpcAssociation":0,"aws:vpclattice/targetGroup:TargetGroup":0,"aws:vpclattice/targetGroupAttachment:TargetGroupAttachment":0,"aws:waf/byteMatchSet:ByteMatchSet":0,"aws:waf/geoMatchSet:GeoMatchSet":0,"aws:waf/ipSet:IpSet":0,"aws:waf/rateBasedRule:RateBasedRule":0,"aws:waf/regexMatchSet:RegexMatchSet":0,"aws:waf/regexPatternSet:RegexPatternSet":0,"aws:waf/rule:Rule":0,"aws:waf/ruleGroup:RuleGroup":0,"aws:waf/sizeConstraintSet:SizeConstraintSet":0,"aws:waf/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:waf/webAcl:WebAcl":0,"aws:waf/xssMatchSet:XssMatchSet":0,"aws:wafregional/byteMatchSet:ByteMatchSet":0,"aws:wafregional/geoMatchSet:GeoMatchSet":0,"aws:wafregional/ipSet:IpSet":0,"aws:wafregional/rateBasedRule:RateBasedRule":0,"aws:wafregional/regexMatchSet:RegexMatchSet":0,"aws:wafregional/regexPatternSet:RegexPatternSet":0,"aws:wafregional/rule:Rule":0,"aws:wafregional/ruleGroup:RuleGroup":0,"aws:wafregional/sizeConstraintSet:SizeConstraintSet":0,"aws:wafregional/sqlInjectionMatchSet:SqlInjectionMatchSet":0,"aws:wafregional/webAcl:WebAcl":0,"aws:wafregional/webAclAssociation:WebAclAssociation":0,"aws:wafregional/xssMatchSet:XssMatchSet":0,"aws:wafv2/ipSet:IpSet":0,"aws:wafv2/regexPatternSet:RegexPatternSet":0,"aws:wafv2/ruleGroup:RuleGroup":0,"aws:wafv2/webAcl:WebAcl":0,"aws:wafv2/webAclAssociation:WebAclAssociation":0,"aws:wafv2/webAclLoggingConfiguration:WebAclLoggingConfiguration":0,"aws:worklink/fleet:Fleet":0,"aws:worklink/websiteCertificateAuthorityAssociation:WebsiteCertificateAuthorityAssociation":0,"aws:workspaces/connectionAlias:ConnectionAlias":1,"aws:workspaces/directory:Directory":0,"aws:workspaces/ipGroup:IpGroup":0,"aws:workspaces/workspace:Workspace":0,"aws:xray/encryptionConfig:EncryptionConfig":0,"aws:xray/group:Group":0,"aws:xray/samplingRule:SamplingRule":0},"functions":{"aws:acm/getCertificate:getCertificate":0,"aws:acmpca/getCertificate:getCertificate":0,"aws:acmpca/getCertificateAuthority:getCertificateAuthority":0,"aws:alb/getListener:getListener":0,"aws:alb/getLoadBalancer:getLoadBalancer":0,"aws:alb/getTargetGroup:getTargetGroup":0,"aws:amp/getWorkspace:getWorkspace":0,"aws:amp/getWorkspaces:getWorkspaces":0,"aws:apigateway/getAuthorizer:getAuthorizer":0,"aws:apigateway/getAuthorizers:getAuthorizers":0,"aws:apigateway/getDomainName:getDomainName":0,"aws:apigateway/getExport:getExport":0,"aws:apigateway/getKey:getKey":0,"aws:apigateway/getResource:getResource":0,"aws:apigateway/getRestApi:getRestApi":0,"aws:apigateway/getSdk:getSdk":0,"aws:apigateway/getVpcLink:getVpcLink":0,"aws:apigatewayv2/getApi:getApi":0,"aws:apigatewayv2/getApis:getApis":0,"aws:apigatewayv2/getExport:getExport":0,"aws:apigatewayv2/getVpcLink:getVpcLink":0,"aws:appconfig/getConfigurationProfile:getConfigurationProfile":0,"aws:appconfig/getConfigurationProfiles:getConfigurationProfiles":0,"aws:appconfig/getEnvironment:getEnvironment":0,"aws:appconfig/getEnvironments:getEnvironments":0,"aws:appintegrations/getEventIntegration:getEventIntegration":0,"aws:appmesh/getGatewayRoute:getGatewayRoute":0,"aws:appmesh/getMesh:getMesh":0,"aws:appmesh/getRoute:getRoute":0,"aws:appmesh/getVirtualGateway:getVirtualGateway":0,"aws:appmesh/getVirtualNode:getVirtualNode":0,"aws:appmesh/getVirtualRouter:getVirtualRouter":0,"aws:appmesh/getVirtualService:getVirtualService":0,"aws:apprunner/getHostedZoneId:getHostedZoneId":1,"aws:appstream/getImage:getImage":1,"aws:athena/getNamedQuery:getNamedQuery":0,"aws:auditmanager/getControl:getControl":1,"aws:auditmanager/getFramework:getFramework":1,"aws:autoscaling/getAmiIds:getAmiIds":0,"aws:autoscaling/getGroup:getGroup":0,"aws:backup/getFramework:getFramework":0,"aws:backup/getPlan:getPlan":0,"aws:backup/getReportPlan:getReportPlan":0,"aws:backup/getSelection:getSelection":0,"aws:backup/getVault:getVault":0,"aws:batch/getComputeEnvironment:getComputeEnvironment":0,"aws:batch/getJobDefinition:getJobDefinition":1,"aws:batch/getJobQueue:getJobQueue":0,"aws:batch/getSchedulingPolicy:getSchedulingPolicy":0,"aws:bedrock/getAgentAgentVersions:getAgentAgentVersions":1,"aws:bedrock/getCustomModel:getCustomModel":1,"aws:bedrock/getCustomModels:getCustomModels":1,"aws:bedrockfoundation/getModel:getModel":1,"aws:bedrockfoundation/getModels:getModels":1,"aws:budgets/getBudget:getBudget":0,"aws:chatbot/getSlackWorkspace:getSlackWorkspace":1,"aws:cloudcontrol/getResource:getResource":0,"aws:cloudformation/getCloudFormationType:getCloudFormationType":0,"aws:cloudformation/getExport:getExport":0,"aws:cloudformation/getStack:getStack":0,"aws:cloudfront/getCachePolicy:getCachePolicy":0,"aws:cloudfront/getDistribution:getDistribution":0,"aws:cloudfront/getFunction:getFunction":0,"aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId":0,"aws:cloudfront/getOriginAccessControl:getOriginAccessControl":1,"aws:cloudfront/getOriginAccessIdentities:getOriginAccessIdentities":0,"aws:cloudfront/getOriginAccessIdentity:getOriginAccessIdentity":0,"aws:cloudfront/getOriginRequestPolicy:getOriginRequestPolicy":0,"aws:cloudfront/getRealtimeLogConfig:getRealtimeLogConfig":0,"aws:cloudfront/getResponseHeadersPolicy:getResponseHeadersPolicy":0,"aws:cloudhsmv2/getCluster:getCluster":0,"aws:cloudtrail/getServiceAccount:getServiceAccount":0,"aws:cloudwatch/getEventBus:getEventBus":0,"aws:cloudwatch/getEventConnection:getEventConnection":0,"aws:cloudwatch/getEventSource:getEventSource":0,"aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument":0,"aws:cloudwatch/getLogGroup:getLogGroup":0,"aws:cloudwatch/getLogGroups:getLogGroups":0,"aws:codeartifact/getAuthorizationToken:getAuthorizationToken":0,"aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint":0,"aws:codecatalyst/getDevEnvironment:getDevEnvironment":0,"aws:codecommit/getApprovalRuleTemplate:getApprovalRuleTemplate":0,"aws:codecommit/getRepository:getRepository":0,"aws:codeguruprofiler/getProfilingGroup:getProfilingGroup":1,"aws:codestarconnections/getConnection:getConnection":0,"aws:cognito/getIdentityPool:getIdentityPool":0,"aws:cognito/getUserGroup:getUserGroup":1,"aws:cognito/getUserGroups:getUserGroups":1,"aws:cognito/getUserPool:getUserPool":1,"aws:cognito/getUserPoolClient:getUserPoolClient":0,"aws:cognito/getUserPoolClients:getUserPoolClients":0,"aws:cognito/getUserPoolSigningCertificate:getUserPoolSigningCertificate":0,"aws:cognito/getUserPools:getUserPools":0,"aws:connect/getBotAssociation:getBotAssociation":0,"aws:connect/getContactFlow:getContactFlow":0,"aws:connect/getContactFlowModule:getContactFlowModule":0,"aws:connect/getHoursOfOperation:getHoursOfOperation":0,"aws:connect/getInstance:getInstance":0,"aws:connect/getInstanceStorageConfig:getInstanceStorageConfig":0,"aws:connect/getLambdaFunctionAssociation:getLambdaFunctionAssociation":0,"aws:connect/getPrompt:getPrompt":0,"aws:connect/getQueue:getQueue":0,"aws:connect/getQuickConnect:getQuickConnect":0,"aws:connect/getRoutingProfile:getRoutingProfile":0,"aws:connect/getSecurityProfile:getSecurityProfile":0,"aws:connect/getUser:getUser":0,"aws:connect/getUserHierarchyGroup:getUserHierarchyGroup":0,"aws:connect/getUserHierarchyStructure:getUserHierarchyStructure":0,"aws:connect/getVocabulary:getVocabulary":0,"aws:controltower/getControls:getControls":0,"aws:costexplorer/getCostCategory:getCostCategory":0,"aws:costexplorer/getTags:getTags":0,"aws:cur/getReportDefinition:getReportDefinition":0,"aws:datapipeline/getPipeline:getPipeline":0,"aws:datapipeline/getPipelineDefinition:getPipelineDefinition":0,"aws:datazone/getEnvironmentBlueprint:getEnvironmentBlueprint":1,"aws:devopsguru/getNotificationChannel:getNotificationChannel":1,"aws:devopsguru/getResourceCollection:getResourceCollection":1,"aws:directconnect/getConnection:getConnection":0,"aws:directconnect/getGateway:getGateway":0,"aws:directconnect/getLocation:getLocation":0,"aws:directconnect/getLocations:getLocations":0,"aws:directconnect/getRouterConfiguration:getRouterConfiguration":0,"aws:directoryservice/getDirectory:getDirectory":0,"aws:dms/getCertificate:getCertificate":0,"aws:dms/getEndpoint:getEndpoint":0,"aws:dms/getReplicationInstance:getReplicationInstance":0,"aws:dms/getReplicationSubnetGroup:getReplicationSubnetGroup":0,"aws:dms/getReplicationTask:getReplicationTask":0,"aws:docdb/getEngineVersion:getEngineVersion":0,"aws:docdb/getOrderableDbInstance:getOrderableDbInstance":0,"aws:dynamodb/getTable:getTable":0,"aws:dynamodb/getTableItem:getTableItem":0,"aws:ebs/getDefaultKmsKey:getDefaultKmsKey":0,"aws:ebs/getEbsVolumes:getEbsVolumes":0,"aws:ebs/getEncryptionByDefault:getEncryptionByDefault":0,"aws:ebs/getSnapshot:getSnapshot":0,"aws:ebs/getSnapshotIds:getSnapshotIds":0,"aws:ebs/getVolume:getVolume":0,"aws:ec2/getAmi:getAmi":0,"aws:ec2/getAmiIds:getAmiIds":0,"aws:ec2/getCapacityBlockOffering:getCapacityBlockOffering":1,"aws:ec2/getCoipPool:getCoipPool":0,"aws:ec2/getCoipPools:getCoipPools":0,"aws:ec2/getCustomerGateway:getCustomerGateway":0,"aws:ec2/getDedicatedHost:getDedicatedHost":0,"aws:ec2/getEips:getEips":0,"aws:ec2/getElasticIp:getElasticIp":0,"aws:ec2/getInstance:getInstance":0,"aws:ec2/getInstanceType:getInstanceType":0,"aws:ec2/getInstanceTypeOffering:getInstanceTypeOffering":0,"aws:ec2/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:ec2/getInstanceTypes:getInstanceTypes":0,"aws:ec2/getInstances:getInstances":0,"aws:ec2/getInternetGateway:getInternetGateway":0,"aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr":0,"aws:ec2/getKeyPair:getKeyPair":0,"aws:ec2/getLaunchConfiguration:getLaunchConfiguration":0,"aws:ec2/getLaunchTemplate:getLaunchTemplate":0,"aws:ec2/getLocalGateway:getLocalGateway":0,"aws:ec2/getLocalGatewayRouteTable:getLocalGatewayRouteTable":0,"aws:ec2/getLocalGatewayRouteTables:getLocalGatewayRouteTables":0,"aws:ec2/getLocalGatewayVirtualInterface:getLocalGatewayVirtualInterface":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroup:getLocalGatewayVirtualInterfaceGroup":0,"aws:ec2/getLocalGatewayVirtualInterfaceGroups:getLocalGatewayVirtualInterfaceGroups":0,"aws:ec2/getLocalGateways:getLocalGateways":0,"aws:ec2/getManagedPrefixList:getManagedPrefixList":0,"aws:ec2/getManagedPrefixLists:getManagedPrefixLists":0,"aws:ec2/getNatGateway:getNatGateway":0,"aws:ec2/getNatGateways:getNatGateways":0,"aws:ec2/getNetworkAcls:getNetworkAcls":0,"aws:ec2/getNetworkInsightsAnalysis:getNetworkInsightsAnalysis":0,"aws:ec2/getNetworkInsightsPath:getNetworkInsightsPath":0,"aws:ec2/getNetworkInterface:getNetworkInterface":0,"aws:ec2/getNetworkInterfaces:getNetworkInterfaces":0,"aws:ec2/getPrefixList:getPrefixList":0,"aws:ec2/getPublicIpv4Pool:getPublicIpv4Pool":0,"aws:ec2/getPublicIpv4Pools:getPublicIpv4Pools":0,"aws:ec2/getRoute:getRoute":0,"aws:ec2/getRouteTable:getRouteTable":0,"aws:ec2/getRouteTables:getRouteTables":0,"aws:ec2/getSecurityGroup:getSecurityGroup":0,"aws:ec2/getSecurityGroups:getSecurityGroups":0,"aws:ec2/getSerialConsoleAccess:getSerialConsoleAccess":0,"aws:ec2/getSpotPrice:getSpotPrice":0,"aws:ec2/getSubnet:getSubnet":0,"aws:ec2/getSubnets:getSubnets":0,"aws:ec2/getTransitGatewayRouteTables:getTransitGatewayRouteTables":0,"aws:ec2/getVpc:getVpc":0,"aws:ec2/getVpcDhcpOptions:getVpcDhcpOptions":0,"aws:ec2/getVpcEndpoint:getVpcEndpoint":0,"aws:ec2/getVpcEndpointService:getVpcEndpointService":0,"aws:ec2/getVpcIamPool:getVpcIamPool":0,"aws:ec2/getVpcIamPoolCidrs:getVpcIamPoolCidrs":0,"aws:ec2/getVpcIamPools:getVpcIamPools":0,"aws:ec2/getVpcIpamPool:getVpcIpamPool":0,"aws:ec2/getVpcIpamPoolCidrs:getVpcIpamPoolCidrs":0,"aws:ec2/getVpcIpamPools:getVpcIpamPools":0,"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection":0,"aws:ec2/getVpcPeeringConnections:getVpcPeeringConnections":0,"aws:ec2/getVpcs:getVpcs":0,"aws:ec2/getVpnGateway:getVpnGateway":0,"aws:ec2clientvpn/getEndpoint:getEndpoint":0,"aws:ec2transitgateway/getAttachment:getAttachment":0,"aws:ec2transitgateway/getAttachments:getAttachments":0,"aws:ec2transitgateway/getConnect:getConnect":0,"aws:ec2transitgateway/getConnectPeer:getConnectPeer":0,"aws:ec2transitgateway/getDirectConnectGatewayAttachment:getDirectConnectGatewayAttachment":0,"aws:ec2transitgateway/getMulticastDomain:getMulticastDomain":0,"aws:ec2transitgateway/getPeeringAttachment:getPeeringAttachment":0,"aws:ec2transitgateway/getPeeringAttachments:getPeeringAttachments":0,"aws:ec2transitgateway/getRouteTable:getRouteTable":0,"aws:ec2transitgateway/getRouteTableAssociations:getRouteTableAssociations":0,"aws:ec2transitgateway/getRouteTablePropagations:getRouteTablePropagations":0,"aws:ec2transitgateway/getRouteTableRoutes:getRouteTableRoutes":0,"aws:ec2transitgateway/getTransitGateway:getTransitGateway":0,"aws:ec2transitgateway/getVpcAttachment:getVpcAttachment":0,"aws:ec2transitgateway/getVpcAttachments:getVpcAttachments":0,"aws:ec2transitgateway/getVpnAttachment:getVpnAttachment":0,"aws:ecr/getAuthorizationToken:getAuthorizationToken":0,"aws:ecr/getCredentials:getCredentials":0,"aws:ecr/getImage:getImage":0,"aws:ecr/getLifecyclePolicyDocument:getLifecyclePolicyDocument":1,"aws:ecr/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":0,"aws:ecr/getRepositoryCreationTemplate:getRepositoryCreationTemplate":0,"aws:ecrpublic/getAuthorizationToken:getAuthorizationToken":0,"aws:ecs/getCluster:getCluster":0,"aws:ecs/getContainerDefinition:getContainerDefinition":0,"aws:ecs/getService:getService":0,"aws:ecs/getTaskDefinition:getTaskDefinition":0,"aws:ecs/getTaskExecution:getTaskExecution":0,"aws:efs/getAccessPoint:getAccessPoint":0,"aws:efs/getAccessPoints:getAccessPoints":0,"aws:efs/getFileSystem:getFileSystem":0,"aws:efs/getMountTarget:getMountTarget":0,"aws:eks/getAccessEntry:getAccessEntry":0,"aws:eks/getAddon:getAddon":0,"aws:eks/getAddonVersion:getAddonVersion":0,"aws:eks/getCluster:getCluster":0,"aws:eks/getClusterAuth:getClusterAuth":0,"aws:eks/getClusters:getClusters":0,"aws:eks/getNodeGroup:getNodeGroup":0,"aws:eks/getNodeGroups:getNodeGroups":0,"aws:elasticache/getCluster:getCluster":0,"aws:elasticache/getReplicationGroup:getReplicationGroup":0,"aws:elasticache/getSubnetGroup:getSubnetGroup":0,"aws:elasticache/getUser:getUser":0,"aws:elasticbeanstalk/getApplication:getApplication":0,"aws:elasticbeanstalk/getHostedZone:getHostedZone":0,"aws:elasticbeanstalk/getSolutionStack:getSolutionStack":0,"aws:elasticsearch/getDomain:getDomain":0,"aws:elb/getHostedZoneId:getHostedZoneId":0,"aws:elb/getLoadBalancer:getLoadBalancer":0,"aws:elb/getServiceAccount:getServiceAccount":0,"aws:emr/getReleaseLabels:getReleaseLabels":0,"aws:emr/getSupportedInstanceTypes:getSupportedInstanceTypes":1,"aws:emrcontainers/getVirtualCluster:getVirtualCluster":0,"aws:fsx/getOntapFileSystem:getOntapFileSystem":0,"aws:fsx/getOntapStorageVirtualMachine:getOntapStorageVirtualMachine":0,"aws:fsx/getOntapStorageVirtualMachines:getOntapStorageVirtualMachines":0,"aws:fsx/getOpenZfsSnapshot:getOpenZfsSnapshot":0,"aws:fsx/getWindowsFileSystem:getWindowsFileSystem":0,"aws:globalaccelerator/getAccelerator:getAccelerator":1,"aws:globalaccelerator/getCustomRoutingAccelerator:getCustomRoutingAccelerator":0,"aws:glue/getCatalogTable:getCatalogTable":0,"aws:glue/getConnection:getConnection":0,"aws:glue/getDataCatalogEncryptionSettings:getDataCatalogEncryptionSettings":0,"aws:glue/getScript:getScript":0,"aws:grafana/getWorkspace:getWorkspace":0,"aws:guardduty/getDetector:getDetector":0,"aws:guardduty/getFindingIds:getFindingIds":1,"aws:iam/getAccessKeys:getAccessKeys":0,"aws:iam/getAccountAlias:getAccountAlias":0,"aws:iam/getGroup:getGroup":0,"aws:iam/getInstanceProfile:getInstanceProfile":0,"aws:iam/getInstanceProfiles:getInstanceProfiles":0,"aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider":0,"aws:iam/getPolicy:getPolicy":0,"aws:iam/getPolicyDocument:getPolicyDocument":0,"aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation":0,"aws:iam/getRole:getRole":0,"aws:iam/getRoles:getRoles":0,"aws:iam/getSamlProvider:getSamlProvider":0,"aws:iam/getServerCertificate:getServerCertificate":0,"aws:iam/getSessionContext:getSessionContext":0,"aws:iam/getUser:getUser":0,"aws:iam/getUserSshKey:getUserSshKey":0,"aws:iam/getUsers:getUsers":0,"aws:identitystore/getGroup:getGroup":0,"aws:identitystore/getGroups:getGroups":1,"aws:identitystore/getUser:getUser":0,"aws:imagebuilder/getComponent:getComponent":0,"aws:imagebuilder/getComponents:getComponents":0,"aws:imagebuilder/getContainerRecipe:getContainerRecipe":0,"aws:imagebuilder/getContainerRecipes:getContainerRecipes":0,"aws:imagebuilder/getDistributionConfiguration:getDistributionConfiguration":0,"aws:imagebuilder/getDistributionConfigurations:getDistributionConfigurations":0,"aws:imagebuilder/getImage:getImage":0,"aws:imagebuilder/getImagePipeline:getImagePipeline":0,"aws:imagebuilder/getImagePipelines:getImagePipelines":0,"aws:imagebuilder/getImageRecipe:getImageRecipe":0,"aws:imagebuilder/getImageRecipes:getImageRecipes":0,"aws:imagebuilder/getInfrastructureConfiguration:getInfrastructureConfiguration":0,"aws:imagebuilder/getInfrastructureConfigurations:getInfrastructureConfigurations":0,"aws:index/getArn:getArn":1,"aws:index/getAvailabilityZone:getAvailabilityZone":0,"aws:index/getAvailabilityZones:getAvailabilityZones":0,"aws:index/getBillingServiceAccount:getBillingServiceAccount":1,"aws:index/getCallerIdentity:getCallerIdentity":1,"aws:index/getDefaultTags:getDefaultTags":1,"aws:index/getIpRanges:getIpRanges":1,"aws:index/getPartition:getPartition":1,"aws:index/getRegion:getRegion":1,"aws:index/getRegions:getRegions":1,"aws:index/getService:getService":1,"aws:index/getServicePrincipal:getServicePrincipal":1,"aws:inspector/getRulesPackages:getRulesPackages":0,"aws:iot/getEndpoint:getEndpoint":0,"aws:iot/getRegistrationCode:getRegistrationCode":0,"aws:ivs/getStreamKey:getStreamKey":0,"aws:kendra/getExperience:getExperience":0,"aws:kendra/getFaq:getFaq":0,"aws:kendra/getIndex:getIndex":0,"aws:kendra/getQuerySuggestionsBlockList:getQuerySuggestionsBlockList":0,"aws:kendra/getThesaurus:getThesaurus":0,"aws:kinesis/getFirehoseDeliveryStream:getFirehoseDeliveryStream":0,"aws:kinesis/getStream:getStream":0,"aws:kinesis/getStreamConsumer:getStreamConsumer":0,"aws:kms/getAlias:getAlias":0,"aws:kms/getCipherText:getCipherText":0,"aws:kms/getCustomKeyStore:getCustomKeyStore":0,"aws:kms/getKey:getKey":0,"aws:kms/getPublicKey:getPublicKey":0,"aws:kms/getSecret:getSecret":0,"aws:kms/getSecrets:getSecrets":0,"aws:lakeformation/getDataLakeSettings:getDataLakeSettings":0,"aws:lakeformation/getPermissions:getPermissions":0,"aws:lakeformation/getResource:getResource":0,"aws:lambda/getAlias:getAlias":0,"aws:lambda/getCodeSigningConfig:getCodeSigningConfig":0,"aws:lambda/getFunction:getFunction":0,"aws:lambda/getFunctionUrl:getFunctionUrl":0,"aws:lambda/getFunctions:getFunctions":0,"aws:lambda/getInvocation:getInvocation":0,"aws:lambda/getLayerVersion:getLayerVersion":0,"aws:lb/getHostedZoneId:getHostedZoneId":0,"aws:lb/getLbs:getLbs":0,"aws:lb/getListener:getListener":0,"aws:lb/getLoadBalancer:getLoadBalancer":0,"aws:lb/getTargetGroup:getTargetGroup":0,"aws:lb/getTrustStore:getTrustStore":0,"aws:lex/getBot:getBot":0,"aws:lex/getBotAlias:getBotAlias":0,"aws:lex/getIntent:getIntent":0,"aws:lex/getSlotType:getSlotType":0,"aws:licensemanager/getLicenseGrants:getLicenseGrants":0,"aws:licensemanager/getReceivedLicense:getReceivedLicense":0,"aws:licensemanager/getReceivedLicenses:getReceivedLicenses":0,"aws:location/getGeofenceCollection:getGeofenceCollection":0,"aws:location/getMap:getMap":0,"aws:location/getPlaceIndex:getPlaceIndex":0,"aws:location/getRouteCalculator:getRouteCalculator":0,"aws:location/getTracker:getTracker":0,"aws:location/getTrackerAssociation:getTrackerAssociation":0,"aws:location/getTrackerAssociations:getTrackerAssociations":0,"aws:mediaconvert/getQueue:getQueue":0,"aws:medialive/getInput:getInput":1,"aws:memorydb/getAcl:getAcl":0,"aws:memorydb/getCluster:getCluster":0,"aws:memorydb/getParameterGroup:getParameterGroup":0,"aws:memorydb/getSnapshot:getSnapshot":0,"aws:memorydb/getSubnetGroup:getSubnetGroup":0,"aws:memorydb/getUser:getUser":0,"aws:mq/getBroker:getBroker":0,"aws:mq/getBrokerEngineTypes:getBrokerEngineTypes":0,"aws:mq/getInstanceTypeOfferings:getInstanceTypeOfferings":0,"aws:msk/getBootstrapBrokers:getBootstrapBrokers":0,"aws:msk/getBrokerNodes:getBrokerNodes":0,"aws:msk/getCluster:getCluster":0,"aws:msk/getConfiguration:getConfiguration":0,"aws:msk/getKafkaVersion:getKafkaVersion":0,"aws:msk/getVpcConnection:getVpcConnection":0,"aws:mskconnect/getConnector:getConnector":0,"aws:mskconnect/getCustomPlugin:getCustomPlugin":0,"aws:mskconnect/getWorkerConfiguration:getWorkerConfiguration":0,"aws:neptune/getEngineVersion:getEngineVersion":0,"aws:neptune/getOrderableDbInstance:getOrderableDbInstance":0,"aws:networkfirewall/getFirewall:getFirewall":0,"aws:networkfirewall/getFirewallPolicy:getFirewallPolicy":0,"aws:networkfirewall/getResourcePolicy:getResourcePolicy":0,"aws:networkmanager/getConnection:getConnection":0,"aws:networkmanager/getConnections:getConnections":0,"aws:networkmanager/getCoreNetworkPolicyDocument:getCoreNetworkPolicyDocument":0,"aws:networkmanager/getDevice:getDevice":0,"aws:networkmanager/getDevices:getDevices":0,"aws:networkmanager/getGlobalNetwork:getGlobalNetwork":0,"aws:networkmanager/getGlobalNetworks:getGlobalNetworks":0,"aws:networkmanager/getLink:getLink":0,"aws:networkmanager/getLinks:getLinks":0,"aws:networkmanager/getSite:getSite":0,"aws:networkmanager/getSites:getSites":0,"aws:oam/getLink:getLink":0,"aws:oam/getLinks:getLinks":0,"aws:oam/getSink:getSink":0,"aws:oam/getSinks:getSinks":0,"aws:opensearch/getDomain:getDomain":0,"aws:opensearch/getServerlessAccessPolicy:getServerlessAccessPolicy":1,"aws:opensearch/getServerlessCollection:getServerlessCollection":1,"aws:opensearch/getServerlessLifecyclePolicy:getServerlessLifecyclePolicy":1,"aws:opensearch/getServerlessSecurityConfig:getServerlessSecurityConfig":1,"aws:opensearch/getServerlessSecurityPolicy:getServerlessSecurityPolicy":0,"aws:opensearch/getServerlessVpcEndpoint:getServerlessVpcEndpoint":0,"aws:organizations/getDelegatedAdministrators:getDelegatedAdministrators":0,"aws:organizations/getDelegatedServices:getDelegatedServices":0,"aws:organizations/getOrganization:getOrganization":0,"aws:organizations/getOrganizationalUnit:getOrganizationalUnit":0,"aws:organizations/getOrganizationalUnitChildAccounts:getOrganizationalUnitChildAccounts":0,"aws:organizations/getOrganizationalUnitDescendantAccounts:getOrganizationalUnitDescendantAccounts":0,"aws:organizations/getOrganizationalUnits:getOrganizationalUnits":0,"aws:organizations/getPolicies:getPolicies":0,"aws:organizations/getPoliciesForTarget:getPoliciesForTarget":0,"aws:organizations/getPolicy:getPolicy":0,"aws:organizations/getResourceTags:getResourceTags":0,"aws:outposts/getAsset:getAsset":0,"aws:outposts/getAssets:getAssets":0,"aws:outposts/getOutpost:getOutpost":0,"aws:outposts/getOutpostInstanceType:getOutpostInstanceType":0,"aws:outposts/getOutpostInstanceTypes:getOutpostInstanceTypes":0,"aws:outposts/getOutposts:getOutposts":0,"aws:outposts/getSite:getSite":0,"aws:outposts/getSites:getSites":0,"aws:polly/getVoices:getVoices":1,"aws:pricing/getProduct:getProduct":0,"aws:qldb/getLedger:getLedger":0,"aws:quicksight/getDataSet:getDataSet":0,"aws:quicksight/getQuicksightGroup:getQuicksightGroup":0,"aws:quicksight/getQuicksightUser:getQuicksightUser":0,"aws:quicksight/getTheme:getTheme":0,"aws:ram/getResourceShare:getResourceShare":0,"aws:rds/getCertificate:getCertificate":0,"aws:rds/getCluster:getCluster":0,"aws:rds/getClusterParameterGroup:getClusterParameterGroup":1,"aws:rds/getClusterSnapshot:getClusterSnapshot":0,"aws:rds/getClusters:getClusters":0,"aws:rds/getEngineVersion:getEngineVersion":0,"aws:rds/getEventCategories:getEventCategories":0,"aws:rds/getInstance:getInstance":0,"aws:rds/getInstances:getInstances":0,"aws:rds/getOrderableDbInstance:getOrderableDbInstance":0,"aws:rds/getParameterGroup:getParameterGroup":0,"aws:rds/getProxy:getProxy":0,"aws:rds/getReservedInstanceOffering:getReservedInstanceOffering":0,"aws:rds/getSnapshot:getSnapshot":0,"aws:rds/getSubnetGroup:getSubnetGroup":0,"aws:redshift/getCluster:getCluster":0,"aws:redshift/getClusterCredentials:getClusterCredentials":0,"aws:redshift/getDataShares:getDataShares":1,"aws:redshift/getOrderableCluster:getOrderableCluster":0,"aws:redshift/getProducerDataShares:getProducerDataShares":1,"aws:redshift/getServiceAccount:getServiceAccount":0,"aws:redshift/getSubnetGroup:getSubnetGroup":0,"aws:redshiftserverless/getCredentials:getCredentials":0,"aws:redshiftserverless/getNamespace:getNamespace":0,"aws:redshiftserverless/getWorkgroup:getWorkgroup":0,"aws:resourceexplorer/search:Search":1,"aws:resourcegroupstaggingapi/getResources:getResources":0,"aws:route53/getDelegationSet:getDelegationSet":0,"aws:route53/getQueryLogConfig:getQueryLogConfig":0,"aws:route53/getResolverEndpoint:getResolverEndpoint":0,"aws:route53/getResolverFirewallConfig:getResolverFirewallConfig":0,"aws:route53/getResolverFirewallDomainList:getResolverFirewallDomainList":0,"aws:route53/getResolverFirewallRuleGroup:getResolverFirewallRuleGroup":0,"aws:route53/getResolverFirewallRuleGroupAssociation:getResolverFirewallRuleGroupAssociation":0,"aws:route53/getResolverFirewallRules:getResolverFirewallRules":0,"aws:route53/getResolverRule:getResolverRule":0,"aws:route53/getResolverRules:getResolverRules":0,"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument":0,"aws:route53/getZone:getZone":0,"aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock":0,"aws:s3/getBucket:getBucket":0,"aws:s3/getBucketObject:getBucketObject":0,"aws:s3/getBucketObjects:getBucketObjects":0,"aws:s3/getBucketPolicy:getBucketPolicy":0,"aws:s3/getCanonicalUserId:getCanonicalUserId":0,"aws:s3/getDirectoryBuckets:getDirectoryBuckets":1,"aws:s3/getObject:getObject":0,"aws:s3/getObjects:getObjects":0,"aws:s3control/getMultiRegionAccessPoint:getMultiRegionAccessPoint":0,"aws:sagemaker/getPrebuiltEcrImage:getPrebuiltEcrImage":0,"aws:secretsmanager/getRandomPassword:getRandomPassword":0,"aws:secretsmanager/getSecret:getSecret":0,"aws:secretsmanager/getSecretRotation:getSecretRotation":0,"aws:secretsmanager/getSecretVersion:getSecretVersion":0,"aws:secretsmanager/getSecretVersions:getSecretVersions":1,"aws:secretsmanager/getSecrets:getSecrets":0,"aws:serverlessrepository/getApplication:getApplication":0,"aws:servicecatalog/getAppregistryApplication:getAppregistryApplication":1,"aws:servicecatalog/getConstraint:getConstraint":0,"aws:servicecatalog/getLaunchPaths:getLaunchPaths":0,"aws:servicecatalog/getPortfolio:getPortfolio":0,"aws:servicecatalog/getPortfolioConstraints:getPortfolioConstraints":0,"aws:servicecatalog/getProduct:getProduct":0,"aws:servicecatalog/getProvisioningArtifacts:getProvisioningArtifacts":0,"aws:servicediscovery/getDnsNamespace:getDnsNamespace":0,"aws:servicediscovery/getHttpNamespace:getHttpNamespace":0,"aws:servicediscovery/getService:getService":0,"aws:servicequotas/getService:getService":0,"aws:servicequotas/getServiceQuota:getServiceQuota":0,"aws:servicequotas/getTemplates:getTemplates":1,"aws:ses/getActiveReceiptRuleSet:getActiveReceiptRuleSet":0,"aws:ses/getDomainIdentity:getDomainIdentity":0,"aws:ses/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getConfigurationSet:getConfigurationSet":0,"aws:sesv2/getDedicatedIpPool:getDedicatedIpPool":0,"aws:sesv2/getEmailIdentity:getEmailIdentity":0,"aws:sesv2/getEmailIdentityMailFromAttributes:getEmailIdentityMailFromAttributes":0,"aws:sfn/getActivity:getActivity":0,"aws:sfn/getAlias:getAlias":0,"aws:sfn/getStateMachine:getStateMachine":0,"aws:sfn/getStateMachineVersions:getStateMachineVersions":0,"aws:signer/getSigningJob:getSigningJob":0,"aws:signer/getSigningProfile:getSigningProfile":0,"aws:sns/getTopic:getTopic":0,"aws:sqs/getQueue:getQueue":0,"aws:sqs/getQueues:getQueues":0,"aws:ssm/getContactsRotation:getContactsRotation":1,"aws:ssm/getDocument:getDocument":0,"aws:ssm/getInstances:getInstances":0,"aws:ssm/getMaintenanceWindows:getMaintenanceWindows":0,"aws:ssm/getParameter:getParameter":0,"aws:ssm/getParametersByPath:getParametersByPath":0,"aws:ssm/getPatchBaseline:getPatchBaseline":0,"aws:ssmcontacts/getContact:getContact":0,"aws:ssmcontacts/getContactChannel:getContactChannel":0,"aws:ssmcontacts/getPlan:getPlan":0,"aws:ssmincidents/getReplicationSet:getReplicationSet":0,"aws:ssmincidents/getResponsePlan:getResponsePlan":0,"aws:ssoadmin/getApplication:getApplication":1,"aws:ssoadmin/getApplicationAssignments:getApplicationAssignments":1,"aws:ssoadmin/getApplicationProviders:getApplicationProviders":1,"aws:ssoadmin/getInstances:getInstances":0,"aws:ssoadmin/getPermissionSet:getPermissionSet":0,"aws:ssoadmin/getPrincipalApplicationAssignments:getPrincipalApplicationAssignments":1,"aws:storagegateway/getLocalDisk:getLocalDisk":0,"aws:timestreamwrite/getDatabase:getDatabase":1,"aws:timestreamwrite/getTable:getTable":1,"aws:transfer/getConnector:getConnector":1,"aws:transfer/getServer:getServer":0,"aws:verifiedpermissions/getPolicyStore:getPolicyStore":1,"aws:vpc/getSecurityGroupRule:getSecurityGroupRule":1,"aws:vpc/getSecurityGroupRules:getSecurityGroupRules":1,"aws:vpclattice/getAuthPolicy:getAuthPolicy":0,"aws:vpclattice/getListener:getListener":0,"aws:vpclattice/getResourcePolicy:getResourcePolicy":0,"aws:vpclattice/getService:getService":0,"aws:vpclattice/getServiceNetwork:getServiceNetwork":0,"aws:waf/getIpset:getIpset":0,"aws:waf/getRateBasedRule:getRateBasedRule":0,"aws:waf/getRule:getRule":0,"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:waf/getWebAcl:getWebAcl":0,"aws:wafregional/getIpset:getIpset":0,"aws:wafregional/getRateBasedMod:getRateBasedMod":0,"aws:wafregional/getRule:getRule":0,"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup":0,"aws:wafregional/getWebAcl:getWebAcl":0,"aws:wafv2/getIpSet:getIpSet":0,"aws:wafv2/getRegexPatternSet:getRegexPatternSet":0,"aws:wafv2/getRuleGroup:getRuleGroup":0,"aws:wafv2/getWebAcl:getWebAcl":0,"aws:workspaces/getBundle:getBundle":0,"aws:workspaces/getDirectory:getDirectory":0,"aws:workspaces/getImage:getImage":0,"aws:workspaces/getWorkspace:getWorkspace":0}}} \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 41cea49dd10..738e3d79d31 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -21446,6 +21446,19 @@ }, "type": "object" }, + "aws:bedrock/AgentAgentKnowledgeBaseAssociationTimeouts:AgentAgentKnowledgeBaseAssociationTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:bedrock/AgentAgentPromptOverrideConfiguration:AgentAgentPromptOverrideConfiguration": { "properties": { "overrideLambda": { @@ -22019,6 +22032,252 @@ "subnetIds" ] }, + "aws:bedrock/GuardrailContentPolicyConfig:GuardrailContentPolicyConfig": { + "properties": { + "filtersConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailContentPolicyConfigFiltersConfig:GuardrailContentPolicyConfigFiltersConfig" + }, + "description": "List of content filter configs in content policy. See Filters Config for more information.\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailContentPolicyConfigFiltersConfig:GuardrailContentPolicyConfigFiltersConfig": { + "properties": { + "inputStrength": { + "type": "string", + "description": "Strength for filters.\n" + }, + "outputStrength": { + "type": "string", + "description": "Strength for filters.\n" + }, + "type": { + "type": "string", + "description": "Type of contextual grounding filter.\n" + } + }, + "type": "object", + "required": [ + "inputStrength", + "outputStrength", + "type" + ] + }, + "aws:bedrock/GuardrailContextualGroundingPolicyConfig:GuardrailContextualGroundingPolicyConfig": { + "properties": { + "filtersConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailContextualGroundingPolicyConfigFiltersConfig:GuardrailContextualGroundingPolicyConfigFiltersConfig" + }, + "description": "List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information.\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailContextualGroundingPolicyConfigFiltersConfig:GuardrailContextualGroundingPolicyConfigFiltersConfig": { + "properties": { + "threshold": { + "type": "number", + "description": "The threshold for this filter.\n" + }, + "type": { + "type": "string", + "description": "Type of contextual grounding filter.\n" + } + }, + "type": "object", + "required": [ + "threshold", + "type" + ] + }, + "aws:bedrock/GuardrailSensitiveInformationPolicyConfig:GuardrailSensitiveInformationPolicyConfig": { + "properties": { + "piiEntitiesConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig:GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig" + }, + "description": "List of entities. See PII Entities Config for more information.\n" + }, + "regexesConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailSensitiveInformationPolicyConfigRegexesConfig:GuardrailSensitiveInformationPolicyConfigRegexesConfig" + }, + "description": "List of regex. See Regexes Config for more information.\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig:GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig": { + "properties": { + "action": { + "type": "string", + "description": "Options for sensitive information action.\n" + }, + "type": { + "type": "string", + "description": "The currently supported PII entities.\n" + } + }, + "type": "object", + "required": [ + "action", + "type" + ] + }, + "aws:bedrock/GuardrailSensitiveInformationPolicyConfigRegexesConfig:GuardrailSensitiveInformationPolicyConfigRegexesConfig": { + "properties": { + "action": { + "type": "string", + "description": "Options for sensitive information action.\n" + }, + "description": { + "type": "string", + "description": "The regex description.\n" + }, + "name": { + "type": "string", + "description": "The regex name.\n" + }, + "pattern": { + "type": "string", + "description": "The regex pattern.\n" + } + }, + "type": "object", + "required": [ + "action", + "name", + "pattern" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "action", + "description", + "name", + "pattern" + ] + } + } + }, + "aws:bedrock/GuardrailTimeouts:GuardrailTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + }, + "delete": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + }, + "update": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailTopicPolicyConfig:GuardrailTopicPolicyConfig": { + "properties": { + "topicsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailTopicPolicyConfigTopicsConfig:GuardrailTopicPolicyConfigTopicsConfig" + }, + "description": "List of topic configs in topic policy. See Topics Config for more information.\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailTopicPolicyConfigTopicsConfig:GuardrailTopicPolicyConfigTopicsConfig": { + "properties": { + "definition": { + "type": "string", + "description": "Definition of topic in topic policy.\n" + }, + "examples": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of text examples.\n" + }, + "name": { + "type": "string", + "description": "Name of topic in topic policy.\n" + }, + "type": { + "type": "string", + "description": "Type of topic in a policy.\n" + } + }, + "type": "object", + "required": [ + "definition", + "name", + "type" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "definition", + "examples", + "name", + "type" + ] + } + } + }, + "aws:bedrock/GuardrailWordPolicyConfig:GuardrailWordPolicyConfig": { + "properties": { + "managedWordListsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailWordPolicyConfigManagedWordListsConfig:GuardrailWordPolicyConfigManagedWordListsConfig" + }, + "description": "A config for the list of managed words. See Managed Word Lists Config for more information.\n" + }, + "wordsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/GuardrailWordPolicyConfigWordsConfig:GuardrailWordPolicyConfigWordsConfig" + }, + "description": "List of custom word configs. See Words Config for more information.\n" + } + }, + "type": "object" + }, + "aws:bedrock/GuardrailWordPolicyConfigManagedWordListsConfig:GuardrailWordPolicyConfigManagedWordListsConfig": { + "properties": { + "type": { + "type": "string", + "description": "Options for managed words.\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "aws:bedrock/GuardrailWordPolicyConfigWordsConfig:GuardrailWordPolicyConfigWordsConfig": { + "properties": { + "text": { + "type": "string", + "description": "The custom word text.\n" + } + }, + "type": "object", + "required": [ + "text" + ] + }, "aws:bedrock/ProvisionedModelThroughputTimeouts:ProvisionedModelThroughputTimeouts": { "properties": { "create": { @@ -22028,6 +22287,76 @@ }, "type": "object" }, + "aws:bedrock/getAgentAgentVersionsAgentVersionSummary:getAgentAgentVersionsAgentVersionSummary": { + "properties": { + "agentName": { + "type": "string", + "description": "Name of agent to which the version belongs.\n" + }, + "agentStatus": { + "type": "string", + "description": "Status of the agent to which the version belongs.\n" + }, + "agentVersion": { + "type": "string", + "description": "Version of the agent.\n" + }, + "createdAt": { + "type": "string", + "description": "Time at which the version was created.\n" + }, + "description": { + "type": "string", + "description": "Description of the version of the agent.\n* `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration\n" + }, + "guardrailConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/getAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration:getAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration" + } + }, + "updatedAt": { + "type": "string", + "description": "Time at which the version was last updated.\n" + } + }, + "type": "object", + "required": [ + "agentName", + "agentStatus", + "agentVersion", + "createdAt", + "description", + "updatedAt" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:bedrock/getAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration:getAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration": { + "properties": { + "guardrailIdentifier": { + "type": "string", + "description": "Unique identifier of the guardrail.\n" + }, + "guardrailVersion": { + "type": "string", + "description": "Version of the guardrail.\n" + } + }, + "type": "object", + "required": [ + "guardrailIdentifier", + "guardrailVersion" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:bedrock/getCustomModelOutputDataConfig:getCustomModelOutputDataConfig": { "properties": { "s3Uri": { @@ -29465,7 +29794,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation.\n" + "description": "A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config.\n" }, "inputArtifacts": { "type": "array", @@ -39630,6 +39959,84 @@ }, "type": "object" }, + "aws:datazone/EnvironmentProfileUserParameter:EnvironmentProfileUserParameter": { + "properties": { + "name": { + "type": "string", + "description": "Name of the environment profile parameter.\n" + }, + "value": { + "type": "string", + "description": "Value of the environment profile parameter.\n" + } + }, + "type": "object" + }, + "aws:datazone/FormTypeImport:FormTypeImport": { + "properties": { + "name": { + "type": "string", + "description": "Name of the form type. Must be the name of the structure in smithy document.\n" + }, + "revision": { + "type": "string", + "description": "Revision of the Form Type.\n" + } + }, + "type": "object", + "required": [ + "name", + "revision" + ] + }, + "aws:datazone/FormTypeModel:FormTypeModel": { + "properties": { + "smithy": { + "type": "string", + "description": "Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "smithy" + ] + }, + "aws:datazone/FormTypeTimeouts:FormTypeTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, + "aws:datazone/GlossaryTermTermRelations:GlossaryTermTermRelations": { + "properties": { + "classifies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "String array that calssifies the term relations.\n" + }, + "isAs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "aws:datazone/GlossaryTermTimeouts:GlossaryTermTimeouts": { + "properties": { + "create": { + "type": "string", + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n" + } + }, + "type": "object" + }, "aws:datazone/ProjectFailureReason:ProjectFailureReason": { "properties": { "code": { @@ -108376,12 +108783,12 @@ }, "aws:lex/V2modelsSlotTypeSlotTypeValues:V2modelsSlotTypeSlotTypeValues": { "properties": { - "slotTypeValues": { + "sampleValues": { "type": "array", "items": { - "$ref": "#/types/aws:lex/V2modelsSlotTypeSlotTypeValuesSlotTypeValue:V2modelsSlotTypeSlotTypeValuesSlotTypeValue" + "$ref": "#/types/aws:lex/V2modelsSlotTypeSlotTypeValuesSampleValue:V2modelsSlotTypeSlotTypeValuesSampleValue" }, - "description": "List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below.\n" + "description": "Value of the slot type entry. See `sample_value` argument reference below.\n" }, "synonyms": { "type": "array", @@ -108391,12 +108798,9 @@ "description": "Additional values related to the slot type entry. See `sample_value` argument reference below.\n" } }, - "type": "object", - "required": [ - "slotTypeValues" - ] + "type": "object" }, - "aws:lex/V2modelsSlotTypeSlotTypeValuesSlotTypeValue:V2modelsSlotTypeSlotTypeValuesSlotTypeValue": { + "aws:lex/V2modelsSlotTypeSlotTypeValuesSampleValue:V2modelsSlotTypeSlotTypeValuesSampleValue": { "properties": { "value": { "type": "string", @@ -118689,7 +119093,7 @@ "items": { "$ref": "#/types/aws:networkfirewall/LoggingConfigurationLoggingConfigurationLogDestinationConfig:LoggingConfigurationLoggingConfigurationLogDestinationConfig" }, - "description": "Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs.\n" + "description": "Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs.\n" } }, "type": "object", @@ -118712,7 +119116,7 @@ }, "logType": { "type": "string", - "description": "The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs.\n" + "description": "The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs.\n" } }, "type": "object", @@ -124762,6 +125166,53 @@ }, "type": "object" }, + "aws:pinpoint/EmailTemplateEmailTemplate:EmailTemplateEmailTemplate": { + "properties": { + "defaultSubstitutions": { + "type": "string", + "description": "JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.\n" + }, + "description": { + "type": "string" + }, + "headers": { + "type": "array", + "items": { + "$ref": "#/types/aws:pinpoint/EmailTemplateEmailTemplateHeader:EmailTemplateEmailTemplateHeader" + } + }, + "htmlPart": { + "type": "string", + "description": "The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.\n" + }, + "recommenderId": { + "type": "string", + "description": "The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.\n" + }, + "subject": { + "type": "string", + "description": "Subject line, or title, to use in email messages that are based on the message template.\n" + }, + "textPart": { + "type": "string", + "description": "Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.\n" + } + }, + "type": "object" + }, + "aws:pinpoint/EmailTemplateEmailTemplateHeader:EmailTemplateEmailTemplateHeader": { + "properties": { + "name": { + "type": "string", + "description": "Name of the message header. The header name can contain up to 126 characters.\n" + }, + "value": { + "type": "string", + "description": "Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length.\n" + } + }, + "type": "object" + }, "aws:pipes/PipeEnrichmentParameters:PipeEnrichmentParameters": { "properties": { "httpParameters": { @@ -144322,7 +144773,7 @@ }, "sourceName": { "type": "string", - "description": "The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`.\n" + "description": "The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`.\n" }, "sourceVersion": { "type": "string", @@ -167331,7 +167782,7 @@ } }, "aws:alb/listener:Listener": { - "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"443\")\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.Arn),\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.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(\"443\")\n .protocol(\"TLS\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.Id),\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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(80)\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_arn\": \"...\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:alb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", + "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"443\")\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.Arn),\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.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(\"443\")\n .protocol(\"TLS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.Id),\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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(80)\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_arn\": \"...\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:alb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", "properties": { "alpnPolicy": { "type": "string", @@ -167370,7 +167821,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -167432,7 +167883,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -167487,7 +167938,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -187689,6 +188140,9 @@ "knowledgeBaseState": { "type": "string", "description": "Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentKnowledgeBaseAssociationTimeouts:AgentAgentKnowledgeBaseAssociationTimeouts" } }, "required": [ @@ -187718,6 +188172,9 @@ "knowledgeBaseState": { "type": "string", "description": "Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentKnowledgeBaseAssociationTimeouts:AgentAgentKnowledgeBaseAssociationTimeouts" } }, "requiredInputs": [ @@ -187748,6 +188205,9 @@ "knowledgeBaseState": { "type": "string", "description": "Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/AgentAgentKnowledgeBaseAssociationTimeouts:AgentAgentKnowledgeBaseAssociationTimeouts" } }, "type": "object" @@ -188316,6 +188776,239 @@ "type": "object" } }, + "aws:bedrock/guardrail:Guardrail": { + "description": "Resource for managing an Amazon Bedrock Guardrail.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.bedrock.Guardrail(\"example\", {\n name: \"example\",\n blockedInputMessaging: \"example\",\n blockedOutputsMessaging: \"example\",\n description: \"example\",\n contentPolicyConfig: {\n filtersConfigs: [{\n inputStrength: \"MEDIUM\",\n outputStrength: \"MEDIUM\",\n type: \"HATE\",\n }],\n },\n sensitiveInformationPolicyConfig: {\n piiEntitiesConfigs: [{\n action: \"BLOCK\",\n type: \"NAME\",\n }],\n regexesConfigs: [{\n action: \"BLOCK\",\n description: \"example regex\",\n name: \"regex_example\",\n pattern: \"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\",\n }],\n },\n topicPolicyConfig: {\n topicsConfigs: [{\n name: \"investment_topic\",\n examples: [\"Where should I invest my money ?\"],\n type: \"DENY\",\n definition: \"Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\",\n }],\n },\n wordPolicyConfig: {\n managedWordListsConfigs: [{\n type: \"PROFANITY\",\n }],\n wordsConfigs: [{\n text: \"HATE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.Guardrail(\"example\",\n name=\"example\",\n blocked_input_messaging=\"example\",\n blocked_outputs_messaging=\"example\",\n description=\"example\",\n content_policy_config={\n \"filters_configs\": [{\n \"input_strength\": \"MEDIUM\",\n \"output_strength\": \"MEDIUM\",\n \"type\": \"HATE\",\n }],\n },\n sensitive_information_policy_config={\n \"pii_entities_configs\": [{\n \"action\": \"BLOCK\",\n \"type\": \"NAME\",\n }],\n \"regexes_configs\": [{\n \"action\": \"BLOCK\",\n \"description\": \"example regex\",\n \"name\": \"regex_example\",\n \"pattern\": \"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\",\n }],\n },\n topic_policy_config={\n \"topics_configs\": [{\n \"name\": \"investment_topic\",\n \"examples\": [\"Where should I invest my money ?\"],\n \"type\": \"DENY\",\n \"definition\": \"Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\",\n }],\n },\n word_policy_config={\n \"managed_word_lists_configs\": [{\n \"type\": \"PROFANITY\",\n }],\n \"words_configs\": [{\n \"text\": \"HATE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.Guardrail(\"example\", new()\n {\n Name = \"example\",\n BlockedInputMessaging = \"example\",\n BlockedOutputsMessaging = \"example\",\n Description = \"example\",\n ContentPolicyConfig = new Aws.Bedrock.Inputs.GuardrailContentPolicyConfigArgs\n {\n FiltersConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailContentPolicyConfigFiltersConfigArgs\n {\n InputStrength = \"MEDIUM\",\n OutputStrength = \"MEDIUM\",\n Type = \"HATE\",\n },\n },\n },\n SensitiveInformationPolicyConfig = new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigArgs\n {\n PiiEntitiesConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs\n {\n Action = \"BLOCK\",\n Type = \"NAME\",\n },\n },\n RegexesConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs\n {\n Action = \"BLOCK\",\n Description = \"example regex\",\n Name = \"regex_example\",\n Pattern = \"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\",\n },\n },\n },\n TopicPolicyConfig = new Aws.Bedrock.Inputs.GuardrailTopicPolicyConfigArgs\n {\n TopicsConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailTopicPolicyConfigTopicsConfigArgs\n {\n Name = \"investment_topic\",\n Examples = new[]\n {\n \"Where should I invest my money ?\",\n },\n Type = \"DENY\",\n Definition = \"Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\",\n },\n },\n },\n WordPolicyConfig = new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigArgs\n {\n ManagedWordListsConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigManagedWordListsConfigArgs\n {\n Type = \"PROFANITY\",\n },\n },\n WordsConfigs = new[]\n {\n new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigWordsConfigArgs\n {\n Text = \"HATE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.NewGuardrail(ctx, \"example\", \u0026bedrock.GuardrailArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tBlockedInputMessaging: pulumi.String(\"example\"),\n\t\t\tBlockedOutputsMessaging: pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"example\"),\n\t\t\tContentPolicyConfig: \u0026bedrock.GuardrailContentPolicyConfigArgs{\n\t\t\t\tFiltersConfigs: bedrock.GuardrailContentPolicyConfigFiltersConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailContentPolicyConfigFiltersConfigArgs{\n\t\t\t\t\t\tInputStrength: pulumi.String(\"MEDIUM\"),\n\t\t\t\t\t\tOutputStrength: pulumi.String(\"MEDIUM\"),\n\t\t\t\t\t\tType: pulumi.String(\"HATE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSensitiveInformationPolicyConfig: \u0026bedrock.GuardrailSensitiveInformationPolicyConfigArgs{\n\t\t\t\tPiiEntitiesConfigs: bedrock.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs{\n\t\t\t\t\t\tAction: pulumi.String(\"BLOCK\"),\n\t\t\t\t\t\tType: pulumi.String(\"NAME\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRegexesConfigs: bedrock.GuardrailSensitiveInformationPolicyConfigRegexesConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs{\n\t\t\t\t\t\tAction: pulumi.String(\"BLOCK\"),\n\t\t\t\t\t\tDescription: pulumi.String(\"example regex\"),\n\t\t\t\t\t\tName: pulumi.String(\"regex_example\"),\n\t\t\t\t\t\tPattern: pulumi.String(\"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTopicPolicyConfig: \u0026bedrock.GuardrailTopicPolicyConfigArgs{\n\t\t\t\tTopicsConfigs: bedrock.GuardrailTopicPolicyConfigTopicsConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailTopicPolicyConfigTopicsConfigArgs{\n\t\t\t\t\t\tName: pulumi.String(\"investment_topic\"),\n\t\t\t\t\t\tExamples: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Where should I invest my money ?\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tType: pulumi.String(\"DENY\"),\n\t\t\t\t\t\tDefinition: pulumi.String(\"Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tWordPolicyConfig: \u0026bedrock.GuardrailWordPolicyConfigArgs{\n\t\t\t\tManagedWordListsConfigs: bedrock.GuardrailWordPolicyConfigManagedWordListsConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailWordPolicyConfigManagedWordListsConfigArgs{\n\t\t\t\t\t\tType: pulumi.String(\"PROFANITY\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWordsConfigs: bedrock.GuardrailWordPolicyConfigWordsConfigArray{\n\t\t\t\t\t\u0026bedrock.GuardrailWordPolicyConfigWordsConfigArgs{\n\t\t\t\t\t\tText: pulumi.String(\"HATE\"),\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.aws.bedrock.Guardrail;\nimport com.pulumi.aws.bedrock.GuardrailArgs;\nimport com.pulumi.aws.bedrock.inputs.GuardrailContentPolicyConfigArgs;\nimport com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigArgs;\nimport com.pulumi.aws.bedrock.inputs.GuardrailTopicPolicyConfigArgs;\nimport com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigArgs;\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 example = new Guardrail(\"example\", GuardrailArgs.builder()\n .name(\"example\")\n .blockedInputMessaging(\"example\")\n .blockedOutputsMessaging(\"example\")\n .description(\"example\")\n .contentPolicyConfig(GuardrailContentPolicyConfigArgs.builder()\n .filtersConfigs(GuardrailContentPolicyConfigFiltersConfigArgs.builder()\n .inputStrength(\"MEDIUM\")\n .outputStrength(\"MEDIUM\")\n .type(\"HATE\")\n .build())\n .build())\n .sensitiveInformationPolicyConfig(GuardrailSensitiveInformationPolicyConfigArgs.builder()\n .piiEntitiesConfigs(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.builder()\n .action(\"BLOCK\")\n .type(\"NAME\")\n .build())\n .regexesConfigs(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.builder()\n .action(\"BLOCK\")\n .description(\"example regex\")\n .name(\"regex_example\")\n .pattern(\"^\\\\d{3}-\\\\d{2}-\\\\d{4}$\")\n .build())\n .build())\n .topicPolicyConfig(GuardrailTopicPolicyConfigArgs.builder()\n .topicsConfigs(GuardrailTopicPolicyConfigTopicsConfigArgs.builder()\n .name(\"investment_topic\")\n .examples(\"Where should I invest my money ?\")\n .type(\"DENY\")\n .definition(\"Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\")\n .build())\n .build())\n .wordPolicyConfig(GuardrailWordPolicyConfigArgs.builder()\n .managedWordListsConfigs(GuardrailWordPolicyConfigManagedWordListsConfigArgs.builder()\n .type(\"PROFANITY\")\n .build())\n .wordsConfigs(GuardrailWordPolicyConfigWordsConfigArgs.builder()\n .text(\"HATE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:Guardrail\n properties:\n name: example\n blockedInputMessaging: example\n blockedOutputsMessaging: example\n description: example\n contentPolicyConfig:\n filtersConfigs:\n - inputStrength: MEDIUM\n outputStrength: MEDIUM\n type: HATE\n sensitiveInformationPolicyConfig:\n piiEntitiesConfigs:\n - action: BLOCK\n type: NAME\n regexesConfigs:\n - action: BLOCK\n description: example regex\n name: regex_example\n pattern: ^\\d{3}-\\d{2}-\\d{4}$\n topicPolicyConfig:\n topicsConfigs:\n - name: investment_topic\n examples:\n - Where should I invest my money ?\n type: DENY\n definition: Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .\n wordPolicyConfig:\n managedWordListsConfigs:\n - type: PROFANITY\n wordsConfigs:\n - text: HATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example:\n\n```sh\n$ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT\n```\n", + "properties": { + "blockedInputMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a prompt.\n" + }, + "blockedOutputsMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a model response.\n" + }, + "contentPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContentPolicyConfig:GuardrailContentPolicyConfig", + "description": "Content policy config for a guardrail. See Content Policy Config for more information.\n" + }, + "contextualGroundingPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContextualGroundingPolicyConfig:GuardrailContextualGroundingPolicyConfig", + "description": "Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information.\n" + }, + "createdAt": { + "type": "string", + "description": "Unix epoch timestamp in seconds for when the Guardrail was created.\n" + }, + "description": { + "type": "string", + "description": "Description of the guardrail or its version.\n" + }, + "guardrailArn": { + "type": "string", + "description": "ARN of the Guardrail.\n" + }, + "guardrailId": { + "type": "string", + "description": "ID of the Guardrail.\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "The KMS key with which the guardrail was encrypted at rest.\n" + }, + "name": { + "type": "string", + "description": "Name of the guardrail.\n\nThe following arguments are optional:\n" + }, + "sensitiveInformationPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailSensitiveInformationPolicyConfig:GuardrailSensitiveInformationPolicyConfig", + "description": "Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information.\n" + }, + "status": { + "type": "string", + "description": "Status of the Bedrock Guardrail. One of `READY`, `FAILED`.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailTimeouts:GuardrailTimeouts" + }, + "topicPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailTopicPolicyConfig:GuardrailTopicPolicyConfig", + "description": "Topic policy config for a guardrail. See Topic Policy Config for more information.\n" + }, + "version": { + "type": "string", + "description": "Version of the Guardrail.\n" + }, + "wordPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailWordPolicyConfig:GuardrailWordPolicyConfig", + "description": "Word policy config for a guardrail. See Word Policy Config for more information.\n" + } + }, + "required": [ + "blockedInputMessaging", + "blockedOutputsMessaging", + "createdAt", + "description", + "guardrailArn", + "guardrailId", + "name", + "status", + "tagsAll", + "version" + ], + "inputProperties": { + "blockedInputMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a prompt.\n" + }, + "blockedOutputsMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a model response.\n" + }, + "contentPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContentPolicyConfig:GuardrailContentPolicyConfig", + "description": "Content policy config for a guardrail. See Content Policy Config for more information.\n" + }, + "contextualGroundingPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContextualGroundingPolicyConfig:GuardrailContextualGroundingPolicyConfig", + "description": "Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information.\n" + }, + "description": { + "type": "string", + "description": "Description of the guardrail or its version.\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "The KMS key with which the guardrail was encrypted at rest.\n" + }, + "name": { + "type": "string", + "description": "Name of the guardrail.\n\nThe following arguments are optional:\n" + }, + "sensitiveInformationPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailSensitiveInformationPolicyConfig:GuardrailSensitiveInformationPolicyConfig", + "description": "Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailTimeouts:GuardrailTimeouts" + }, + "topicPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailTopicPolicyConfig:GuardrailTopicPolicyConfig", + "description": "Topic policy config for a guardrail. See Topic Policy Config for more information.\n" + }, + "wordPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailWordPolicyConfig:GuardrailWordPolicyConfig", + "description": "Word policy config for a guardrail. See Word Policy Config for more information.\n" + } + }, + "requiredInputs": [ + "blockedInputMessaging", + "blockedOutputsMessaging" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Guardrail resources.\n", + "properties": { + "blockedInputMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a prompt.\n" + }, + "blockedOutputsMessaging": { + "type": "string", + "description": "Message to return when the guardrail blocks a model response.\n" + }, + "contentPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContentPolicyConfig:GuardrailContentPolicyConfig", + "description": "Content policy config for a guardrail. See Content Policy Config for more information.\n" + }, + "contextualGroundingPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailContextualGroundingPolicyConfig:GuardrailContextualGroundingPolicyConfig", + "description": "Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information.\n" + }, + "createdAt": { + "type": "string", + "description": "Unix epoch timestamp in seconds for when the Guardrail was created.\n" + }, + "description": { + "type": "string", + "description": "Description of the guardrail or its version.\n" + }, + "guardrailArn": { + "type": "string", + "description": "ARN of the Guardrail.\n" + }, + "guardrailId": { + "type": "string", + "description": "ID of the Guardrail.\n" + }, + "kmsKeyArn": { + "type": "string", + "description": "The KMS key with which the guardrail was encrypted at rest.\n" + }, + "name": { + "type": "string", + "description": "Name of the guardrail.\n\nThe following arguments are optional:\n" + }, + "sensitiveInformationPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailSensitiveInformationPolicyConfig:GuardrailSensitiveInformationPolicyConfig", + "description": "Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information.\n" + }, + "status": { + "type": "string", + "description": "Status of the Bedrock Guardrail. One of `READY`, `FAILED`.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:bedrock/GuardrailTimeouts:GuardrailTimeouts" + }, + "topicPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailTopicPolicyConfig:GuardrailTopicPolicyConfig", + "description": "Topic policy config for a guardrail. See Topic Policy Config for more information.\n" + }, + "version": { + "type": "string", + "description": "Version of the Guardrail.\n" + }, + "wordPolicyConfig": { + "$ref": "#/types/aws:bedrock/GuardrailWordPolicyConfig:GuardrailWordPolicyConfig", + "description": "Word policy config for a guardrail. See Word Policy Config for more information.\n" + } + }, + "type": "object" + } + }, "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": { "description": "Manages [Provisioned Throughput](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) for an Amazon Bedrock model.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.bedrock.ProvisionedModelThroughput(\"example\", {\n provisionedModelName: \"example-model\",\n modelArn: \"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n commitmentDuration: \"SixMonths\",\n modelUnits: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.bedrock.ProvisionedModelThroughput(\"example\",\n provisioned_model_name=\"example-model\",\n model_arn=\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n commitment_duration=\"SixMonths\",\n model_units=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Bedrock.ProvisionedModelThroughput(\"example\", new()\n {\n ProvisionedModelName = \"example-model\",\n ModelArn = \"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\",\n CommitmentDuration = \"SixMonths\",\n ModelUnits = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.NewProvisionedModelThroughput(ctx, \"example\", \u0026bedrock.ProvisionedModelThroughputArgs{\n\t\t\tProvisionedModelName: pulumi.String(\"example-model\"),\n\t\t\tModelArn: pulumi.String(\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\"),\n\t\t\tCommitmentDuration: pulumi.String(\"SixMonths\"),\n\t\t\tModelUnits: pulumi.Int(1),\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.aws.bedrock.ProvisionedModelThroughput;\nimport com.pulumi.aws.bedrock.ProvisionedModelThroughputArgs;\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 example = new ProvisionedModelThroughput(\"example\", ProvisionedModelThroughputArgs.builder()\n .provisionedModelName(\"example-model\")\n .modelArn(\"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\")\n .commitmentDuration(\"SixMonths\")\n .modelUnits(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:bedrock:ProvisionedModelThroughput\n properties:\n provisionedModelName: example-model\n modelArn: arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2\n commitmentDuration: SixMonths\n modelUnits: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Provisioned Throughput using the `provisioned_model_arn`. For example:\n\n```sh\n$ pulumi import aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput example arn:aws:bedrock:us-west-2:123456789012:provisioned-model/1y5n57gh5y2e\n```\n", "properties": { @@ -195942,108 +196635,175 @@ "type": "object" } }, - "aws:cloudtrail/trail:Trail": { - "description": "Provides a CloudTrail resource.\n\n\u003e **Tip:** For a multi-region trail, this resource must be in the home region of the trail.\n\n\u003e **Tip:** For an organization trail, this resource must be in the master account of the organization.\n\n## Example Usage\n\n### Basic\n\nEnable CloudTrail to capture all compatible management events in region.\nFor capturing events from services like IAM, `include_global_service_events` must be enabled.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleBucketV2 = new aws.s3.BucketV2(\"example\", {\n bucket: \"my-test-trail\",\n forceDestroy: true,\n});\nconst current = aws.getCallerIdentity({});\nconst currentGetPartition = aws.getPartition({});\nconst currentGetRegion = aws.getRegion({});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n sid: \"AWSCloudTrailAclCheck\",\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"cloudtrail.amazonaws.com\"],\n }],\n actions: [\"s3:GetBucketAcl\"],\n resources: [exampleBucketV2.arn],\n conditions: [{\n test: \"StringEquals\",\n variable: \"aws:SourceArn\",\n values: [Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example`)],\n }],\n },\n {\n sid: \"AWSCloudTrailWrite\",\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"cloudtrail.amazonaws.com\"],\n }],\n actions: [\"s3:PutObject\"],\n resources: [pulumi.all([exampleBucketV2.arn, current]).apply(([arn, current]) =\u003e `${arn}/prefix/AWSLogs/${current.accountId}/*`)],\n conditions: [\n {\n test: \"StringEquals\",\n variable: \"s3:x-amz-acl\",\n values: [\"bucket-owner-full-control\"],\n },\n {\n test: \"StringEquals\",\n variable: \"aws:SourceArn\",\n values: [Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example`)],\n },\n ],\n },\n ],\n});\nconst exampleBucketPolicy = new aws.s3.BucketPolicy(\"example\", {\n bucket: exampleBucketV2.id,\n policy: example.apply(example =\u003e example.json),\n});\nconst exampleTrail = new aws.cloudtrail.Trail(\"example\", {\n name: \"example\",\n s3BucketName: exampleBucketV2.id,\n s3KeyPrefix: \"prefix\",\n includeGlobalServiceEvents: false,\n}, {\n dependsOn: [exampleBucketPolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_bucket_v2 = aws.s3.BucketV2(\"example\",\n bucket=\"my-test-trail\",\n force_destroy=True)\ncurrent = aws.get_caller_identity()\ncurrent_get_partition = aws.get_partition()\ncurrent_get_region = aws.get_region()\nexample = aws.iam.get_policy_document_output(statements=[\n {\n \"sid\": \"AWSCloudTrailAclCheck\",\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"cloudtrail.amazonaws.com\"],\n }],\n \"actions\": [\"s3:GetBucketAcl\"],\n \"resources\": [example_bucket_v2.arn],\n \"conditions\": [{\n \"test\": \"StringEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [f\"arn:{current_get_partition.partition}:cloudtrail:{current_get_region.name}:{current.account_id}:trail/example\"],\n }],\n },\n {\n \"sid\": \"AWSCloudTrailWrite\",\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"cloudtrail.amazonaws.com\"],\n }],\n \"actions\": [\"s3:PutObject\"],\n \"resources\": [example_bucket_v2.arn.apply(lambda arn: f\"{arn}/prefix/AWSLogs/{current.account_id}/*\")],\n \"conditions\": [\n {\n \"test\": \"StringEquals\",\n \"variable\": \"s3:x-amz-acl\",\n \"values\": [\"bucket-owner-full-control\"],\n },\n {\n \"test\": \"StringEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [f\"arn:{current_get_partition.partition}:cloudtrail:{current_get_region.name}:{current.account_id}:trail/example\"],\n },\n ],\n },\n])\nexample_bucket_policy = aws.s3.BucketPolicy(\"example\",\n bucket=example_bucket_v2.id,\n policy=example.json)\nexample_trail = aws.cloudtrail.Trail(\"example\",\n name=\"example\",\n s3_bucket_name=example_bucket_v2.id,\n s3_key_prefix=\"prefix\",\n include_global_service_events=False,\n opts = pulumi.ResourceOptions(depends_on=[example_bucket_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleBucketV2 = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"my-test-trail\",\n ForceDestroy = true,\n });\n\n var current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var currentGetRegion = Aws.GetRegion.Invoke();\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AWSCloudTrailAclCheck\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"cloudtrail.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"s3:GetBucketAcl\",\n },\n Resources = new[]\n {\n exampleBucketV2.Arn,\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:cloudtrail:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:trail/example\",\n },\n },\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AWSCloudTrailWrite\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"cloudtrail.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"s3:PutObject\",\n },\n Resources = new[]\n {\n $\"{exampleBucketV2.Arn}/prefix/AWSLogs/{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}/*\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"s3:x-amz-acl\",\n Values = new[]\n {\n \"bucket-owner-full-control\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:cloudtrail:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:trail/example\",\n },\n },\n },\n },\n },\n });\n\n var exampleBucketPolicy = new Aws.S3.BucketPolicy(\"example\", new()\n {\n Bucket = exampleBucketV2.Id,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var exampleTrail = new Aws.CloudTrail.Trail(\"example\", new()\n {\n Name = \"example\",\n S3BucketName = exampleBucketV2.Id,\n S3KeyPrefix = \"prefix\",\n IncludeGlobalServiceEvents = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleBucketPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleBucketV2, err := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-test-trail\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetRegion, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tSid: pulumi.String(\"AWSCloudTrailAclCheck\"),\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"cloudtrail.amazonaws.com\"),\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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:GetBucketAcl\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleBucketV2.Arn,\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"arn:%v:cloudtrail:%v:%v:trail/example\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\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\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tSid: pulumi.String(\"AWSCloudTrailWrite\"),\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"cloudtrail.amazonaws.com\"),\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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:PutObject\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleBucketV2.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/prefix/AWSLogs/%v/*\", arn, current.AccountId), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"s3:x-amz-acl\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"bucket-owner-full-control\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"arn:%v:cloudtrail:%v:%v:trail/example\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\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}, nil)\n\t\texampleBucketPolicy, err := s3.NewBucketPolicy(ctx, \"example\", \u0026s3.BucketPolicyArgs{\n\t\t\tBucket: exampleBucketV2.ID(),\n\t\t\tPolicy: pulumi.String(example.ApplyT(func(example iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026example.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tS3BucketName: exampleBucketV2.ID(),\n\t\t\tS3KeyPrefix: pulumi.String(\"prefix\"),\n\t\t\tIncludeGlobalServiceEvents: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleBucketPolicy,\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.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetPartitionArgs;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.s3.BucketPolicy;\nimport com.pulumi.aws.s3.BucketPolicyArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\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 exampleBucketV2 = new BucketV2(\"exampleBucketV2\", BucketV2Args.builder()\n .bucket(\"my-test-trail\")\n .forceDestroy(true)\n .build());\n\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n final var currentGetRegion = AwsFunctions.getRegion();\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .sid(\"AWSCloudTrailAclCheck\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"cloudtrail.amazonaws.com\")\n .build())\n .actions(\"s3:GetBucketAcl\")\n .resources(exampleBucketV2.arn())\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"aws:SourceArn\")\n .values(String.format(\"arn:%s:cloudtrail:%s:%s:trail/example\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .sid(\"AWSCloudTrailWrite\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"cloudtrail.amazonaws.com\")\n .build())\n .actions(\"s3:PutObject\")\n .resources(exampleBucketV2.arn().applyValue(arn -\u003e String.format(\"%s/prefix/AWSLogs/%s/*\", arn,current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))))\n .conditions( \n GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"s3:x-amz-acl\")\n .values(\"bucket-owner-full-control\")\n .build(),\n GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"aws:SourceArn\")\n .values(String.format(\"arn:%s:cloudtrail:%s:%s:trail/example\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .build())\n .build());\n\n var exampleBucketPolicy = new BucketPolicy(\"exampleBucketPolicy\", BucketPolicyArgs.builder()\n .bucket(exampleBucketV2.id())\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var exampleTrail = new Trail(\"exampleTrail\", TrailArgs.builder()\n .name(\"example\")\n .s3BucketName(exampleBucketV2.id())\n .s3KeyPrefix(\"prefix\")\n .includeGlobalServiceEvents(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleBucketPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleTrail:\n type: aws:cloudtrail:Trail\n name: example\n properties:\n name: example\n s3BucketName: ${exampleBucketV2.id}\n s3KeyPrefix: prefix\n includeGlobalServiceEvents: false\n options:\n dependson:\n - ${exampleBucketPolicy}\n exampleBucketV2:\n type: aws:s3:BucketV2\n name: example\n properties:\n bucket: my-test-trail\n forceDestroy: true\n exampleBucketPolicy:\n type: aws:s3:BucketPolicy\n name: example\n properties:\n bucket: ${exampleBucketV2.id}\n policy: ${example.json}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: AWSCloudTrailAclCheck\n effect: Allow\n principals:\n - type: Service\n identifiers:\n - cloudtrail.amazonaws.com\n actions:\n - s3:GetBucketAcl\n resources:\n - ${exampleBucketV2.arn}\n conditions:\n - test: StringEquals\n variable: aws:SourceArn\n values:\n - arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example\n - sid: AWSCloudTrailWrite\n effect: Allow\n principals:\n - type: Service\n identifiers:\n - cloudtrail.amazonaws.com\n actions:\n - s3:PutObject\n resources:\n - ${exampleBucketV2.arn}/prefix/AWSLogs/${current.accountId}/*\n conditions:\n - test: StringEquals\n variable: s3:x-amz-acl\n values:\n - bucket-owner-full-control\n - test: StringEquals\n variable: aws:SourceArn\n values:\n - arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example\n current:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n currentGetRegion:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Data Event Logging\n\nCloudTrail can log [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) for certain services such as S3 objects and Lambda function invocations. Additional information about data event configuration can be found in the following links:\n\n* [CloudTrail API DataResource documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DataResource.html) (for basic event selector).\n* [CloudTrail API AdvancedFieldSelector documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html) (for advanced event selector).\n\n### Logging All Lambda Function Invocations By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::Lambda::Function\",\n values: [\"arn:aws:lambda\"],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::Lambda::Function\",\n \"values\": [\"arn:aws:lambda\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::Lambda::Function\",\n Values = new[]\n {\n \"arn:aws:lambda\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\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 := cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::Lambda::Function\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"arn:aws:lambda\"),\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.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::Lambda::Function\")\n .values(\"arn:aws:lambda\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::Lambda::Function\n values:\n - arn:aws:lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging All S3 Object Events By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::S3::Object\",\n values: [\"arn:aws:s3\"],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::S3::Object\",\n \"values\": [\"arn:aws:s3\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::S3::Object\",\n Values = new[]\n {\n \"arn:aws:s3\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\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 := cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::S3::Object\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"arn:aws:s3\"),\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.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::S3::Object\")\n .values(\"arn:aws:s3\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::S3::Object\n values:\n - arn:aws:s3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging Individual S3 Bucket Events By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst important-bucket = aws.s3.getBucket({\n bucket: \"important-bucket\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::S3::Object\",\n values: [important_bucket.then(important_bucket =\u003e `${important_bucket.arn}/`)],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nimportant_bucket = aws.s3.get_bucket(bucket=\"important-bucket\")\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::S3::Object\",\n \"values\": [f\"{important_bucket.arn}/\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var important_bucket = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::S3::Object\",\n Values = new[]\n {\n important_bucket.Apply(important_bucket =\u003e $\"{important_bucket.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\timportant_bucket, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::S3::Object\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket.Arn),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 important-bucket = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::S3::Object\")\n .values(String.format(\"%s/\", important_bucket.arn()))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::S3::Object\n values:\n - ${[\"important-bucket\"].arn}/\nvariables:\n important-bucket:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging All S3 Object Events Except For Two S3 Buckets By Using Advanced Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst not-important-bucket-1 = aws.s3.getBucket({\n bucket: \"not-important-bucket-1\",\n});\nconst not-important-bucket-2 = aws.s3.getBucket({\n bucket: \"not-important-bucket-2\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {advancedEventSelectors: [\n {\n name: \"Log all S3 objects events except for two S3 buckets\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"resources.ARN\",\n notStartsWiths: [\n not_important_bucket_1.then(not_important_bucket_1 =\u003e `${not_important_bucket_1.arn}/`),\n not_important_bucket_2.then(not_important_bucket_2 =\u003e `${not_important_bucket_2.arn}/`),\n ],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n name: \"Log readOnly and writeOnly management events\",\n fieldSelectors: [{\n field: \"eventCategory\",\n equals: [\"Management\"],\n }],\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnot_important_bucket_1 = aws.s3.get_bucket(bucket=\"not-important-bucket-1\")\nnot_important_bucket_2 = aws.s3.get_bucket(bucket=\"not-important-bucket-2\")\nexample = aws.cloudtrail.Trail(\"example\", advanced_event_selectors=[\n {\n \"name\": \"Log all S3 objects events except for two S3 buckets\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"resources.ARN\",\n \"not_starts_withs\": [\n f\"{not_important_bucket_1.arn}/\",\n f\"{not_important_bucket_2.arn}/\",\n ],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n \"name\": \"Log readOnly and writeOnly management events\",\n \"field_selectors\": [{\n \"field\": \"eventCategory\",\n \"equals\": [\"Management\"],\n }],\n },\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var not_important_bucket_1 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"not-important-bucket-1\",\n });\n\n var not_important_bucket_2 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"not-important-bucket-2\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n AdvancedEventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log all S3 objects events except for two S3 buckets\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n NotStartsWiths = new[]\n {\n not_important_bucket_1.Apply(not_important_bucket_1 =\u003e $\"{not_important_bucket_1.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n not_important_bucket_2.Apply(not_important_bucket_2 =\u003e $\"{not_important_bucket_2.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log readOnly and writeOnly management events\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Management\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnot_important_bucket_1, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"not-important-bucket-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnot_important_bucket_2, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"not-important-bucket-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tAdvancedEventSelectors: cloudtrail.TrailAdvancedEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log all S3 objects events except for two S3 buckets\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tNotStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", not_important_bucket_1.Arn),\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", not_important_bucket_2.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log readOnly and writeOnly management events\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Management\"),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;\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 not-important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"not-important-bucket-1\")\n .build());\n\n final var not-important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"not-important-bucket-2\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .advancedEventSelectors( \n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log all S3 objects events except for two S3 buckets\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .notStartsWiths( \n String.format(\"%s/\", not_important_bucket_1.arn()),\n String.format(\"%s/\", not_important_bucket_2.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build(),\n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log readOnly and writeOnly management events\")\n .fieldSelectors(TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Management\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n advancedEventSelectors:\n - name: Log all S3 objects events except for two S3 buckets\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: resources.ARN\n notStartsWiths:\n - ${[\"not-important-bucket-1\"].arn}/\n - ${[\"not-important-bucket-2\"].arn}/\n - field: resources.type\n equals:\n - AWS::S3::Object\n - name: Log readOnly and writeOnly management events\n fieldSelectors:\n - field: eventCategory\n equals:\n - Management\nvariables:\n not-important-bucket-1:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: not-important-bucket-1\n not-important-bucket-2:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: not-important-bucket-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging Individual S3 Buckets And Specific Event Names By Using Advanced Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst important-bucket-1 = aws.s3.getBucket({\n bucket: \"important-bucket-1\",\n});\nconst important-bucket-2 = aws.s3.getBucket({\n bucket: \"important-bucket-2\",\n});\nconst important-bucket-3 = aws.s3.getBucket({\n bucket: \"important-bucket-3\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {advancedEventSelectors: [\n {\n name: \"Log PutObject and DeleteObject events for two S3 buckets\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"eventName\",\n equals: [\n \"PutObject\",\n \"DeleteObject\",\n ],\n },\n {\n field: \"resources.ARN\",\n startsWiths: [\n important_bucket_1.then(important_bucket_1 =\u003e `${important_bucket_1.arn}/`),\n important_bucket_2.then(important_bucket_2 =\u003e `${important_bucket_2.arn}/`),\n ],\n },\n {\n field: \"readOnly\",\n equals: [\"false\"],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n name: \"Log Delete* events for one S3 bucket\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"eventName\",\n startsWiths: [\"Delete\"],\n },\n {\n field: \"resources.ARN\",\n equals: [important_bucket_3.then(important_bucket_3 =\u003e `${important_bucket_3.arn}/important-prefix`)],\n },\n {\n field: \"readOnly\",\n equals: [\"false\"],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nimportant_bucket_1 = aws.s3.get_bucket(bucket=\"important-bucket-1\")\nimportant_bucket_2 = aws.s3.get_bucket(bucket=\"important-bucket-2\")\nimportant_bucket_3 = aws.s3.get_bucket(bucket=\"important-bucket-3\")\nexample = aws.cloudtrail.Trail(\"example\", advanced_event_selectors=[\n {\n \"name\": \"Log PutObject and DeleteObject events for two S3 buckets\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"eventName\",\n \"equals\": [\n \"PutObject\",\n \"DeleteObject\",\n ],\n },\n {\n \"field\": \"resources.ARN\",\n \"starts_withs\": [\n f\"{important_bucket_1.arn}/\",\n f\"{important_bucket_2.arn}/\",\n ],\n },\n {\n \"field\": \"readOnly\",\n \"equals\": [\"false\"],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n \"name\": \"Log Delete* events for one S3 bucket\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"eventName\",\n \"starts_withs\": [\"Delete\"],\n },\n {\n \"field\": \"resources.ARN\",\n \"equals\": [f\"{important_bucket_3.arn}/important-prefix\"],\n },\n {\n \"field\": \"readOnly\",\n \"equals\": [\"false\"],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var important_bucket_1 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-1\",\n });\n\n var important_bucket_2 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-2\",\n });\n\n var important_bucket_3 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-3\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n AdvancedEventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log PutObject and DeleteObject events for two S3 buckets\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventName\",\n Equals = new[]\n {\n \"PutObject\",\n \"DeleteObject\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n StartsWiths = new[]\n {\n important_bucket_1.Apply(important_bucket_1 =\u003e $\"{important_bucket_1.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n important_bucket_2.Apply(important_bucket_2 =\u003e $\"{important_bucket_2.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"readOnly\",\n Equals = new[]\n {\n \"false\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log Delete* events for one S3 bucket\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventName\",\n StartsWiths = new[]\n {\n \"Delete\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n Equals = new[]\n {\n important_bucket_3.Apply(important_bucket_3 =\u003e $\"{important_bucket_3.Apply(getBucketResult =\u003e getBucketResult.Arn)}/important-prefix\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"readOnly\",\n Equals = new[]\n {\n \"false\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\timportant_bucket_1, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\timportant_bucket_2, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\timportant_bucket_3, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-3\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tAdvancedEventSelectors: cloudtrail.TrailAdvancedEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log PutObject and DeleteObject events for two S3 buckets\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventName\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"PutObject\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"DeleteObject\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket_1.Arn),\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket_2.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"readOnly\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"false\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log Delete* events for one S3 bucket\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventName\"),\n\t\t\t\t\t\t\tStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/important-prefix\", important_bucket_3.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"readOnly\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"false\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;\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 important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-1\")\n .build());\n\n final var important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-2\")\n .build());\n\n final var important-bucket-3 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-3\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .advancedEventSelectors( \n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log PutObject and DeleteObject events for two S3 buckets\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventName\")\n .equals( \n \"PutObject\",\n \"DeleteObject\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .startsWiths( \n String.format(\"%s/\", important_bucket_1.arn()),\n String.format(\"%s/\", important_bucket_2.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"readOnly\")\n .equals(\"false\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build(),\n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log Delete* events for one S3 bucket\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventName\")\n .startsWiths(\"Delete\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .equals(String.format(\"%s/important-prefix\", important_bucket_3.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"readOnly\")\n .equals(\"false\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n advancedEventSelectors:\n - name: Log PutObject and DeleteObject events for two S3 buckets\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: eventName\n equals:\n - PutObject\n - DeleteObject\n - field: resources.ARN\n startsWiths:\n - ${[\"important-bucket-1\"].arn}/\n - ${[\"important-bucket-2\"].arn}/\n - field: readOnly\n equals:\n - 'false'\n - field: resources.type\n equals:\n - AWS::S3::Object\n - name: Log Delete* events for one S3 bucket\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: eventName\n startsWiths:\n - Delete\n - field: resources.ARN\n equals:\n - ${[\"important-bucket-3\"].arn}/important-prefix\n - field: readOnly\n equals:\n - 'false'\n - field: resources.type\n equals:\n - AWS::S3::Object\nvariables:\n important-bucket-1:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-1\n important-bucket-2:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-2\n important-bucket-3:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Sending Events to CloudWatch Logs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudwatch.LogGroup(\"example\", {name: \"Example\"});\nconst exampleTrail = new aws.cloudtrail.Trail(\"example\", {cloudWatchLogsGroupArn: pulumi.interpolate`${example.arn}:*`});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudwatch.LogGroup(\"example\", name=\"Example\")\nexample_trail = aws.cloudtrail.Trail(\"example\", cloud_watch_logs_group_arn=example.arn.apply(lambda arn: f\"{arn}:*\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"Example\",\n });\n\n var exampleTrail = new Aws.CloudTrail.Trail(\"example\", new()\n {\n CloudWatchLogsGroupArn = example.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"Example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tCloudWatchLogsGroupArn: example.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), 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.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\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 example = new LogGroup(\"example\", LogGroupArgs.builder()\n .name(\"Example\")\n .build());\n\n var exampleTrail = new Trail(\"exampleTrail\", TrailArgs.builder()\n .cloudWatchLogsGroupArn(example.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudwatch:LogGroup\n properties:\n name: Example\n exampleTrail:\n type: aws:cloudtrail:Trail\n name: example\n properties:\n cloudWatchLogsGroupArn: ${example.arn}:*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Cloudtrails using the `arn`. For example:\n\n```sh\n$ pulumi import aws:cloudtrail/trail:Trail sample arn:aws:cloudtrail:us-east-1:123456789012:trail/my-sample-trail\n```\n", + "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount": { + "description": "Provides a resource to manage an AWS CloudTrail Delegated Administrator.\n\n## Example Usage\n\nBasic usage:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst delegated = aws.getCallerIdentity({});\nconst example = new aws.cloudtrail.OrganizationDelegatedAdminAccount(\"example\", {accountId: delegated.then(delegated =\u003e delegated.accountId)});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndelegated = aws.get_caller_identity()\nexample = aws.cloudtrail.OrganizationDelegatedAdminAccount(\"example\", account_id=delegated.account_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var delegated = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.CloudTrail.OrganizationDelegatedAdminAccount(\"example\", new()\n {\n AccountId = delegated.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdelegated, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewOrganizationDelegatedAdminAccount(ctx, \"example\", \u0026cloudtrail.OrganizationDelegatedAdminAccountArgs{\n\t\t\tAccountId: pulumi.String(delegated.AccountId),\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.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.cloudtrail.OrganizationDelegatedAdminAccount;\nimport com.pulumi.aws.cloudtrail.OrganizationDelegatedAdminAccountArgs;\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 delegated = AwsFunctions.getCallerIdentity();\n\n var example = new OrganizationDelegatedAdminAccount(\"example\", OrganizationDelegatedAdminAccountArgs.builder()\n .accountId(delegated.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:OrganizationDelegatedAdminAccount\n properties:\n accountId: ${delegated.accountId}\nvariables:\n delegated:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import delegated administrators using the delegate account `id`. For example:\n\n```sh\n$ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901\n```\n", "properties": { - "advancedEventSelectors": { - "type": "array", - "items": { - "$ref": "#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" - }, - "description": "Specifies an advanced event selector for enabling data event logging. Fields documented below. Conflicts with `event_selector`.\n" - }, - "arn": { - "type": "string", - "description": "ARN of the trail.\n" - }, - "cloudWatchLogsGroupArn": { - "type": "string", - "description": "Log group name using an ARN that represents the log group to which CloudTrail logs will be delivered. Note that CloudTrail requires the Log Stream wildcard.\n" - }, - "cloudWatchLogsRoleArn": { + "accountId": { "type": "string", - "description": "Role for the CloudWatch Logs endpoint to assume to write to a user’s log group.\n" - }, - "enableLogFileValidation": { - "type": "boolean", - "description": "Whether log file integrity validation is enabled. Defaults to `false`.\n" - }, - "enableLogging": { - "type": "boolean", - "description": "Enables logging for the trail. Defaults to `true`. Setting this to `false` will pause logging.\n" - }, - "eventSelectors": { - "type": "array", - "items": { - "$ref": "#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" - }, - "description": "Specifies an event selector for enabling data event logging. Fields documented below. Please note the [CloudTrail limits](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) when configuring these. Conflicts with `advanced_event_selector`.\n" + "description": "An organization member account ID that you want to designate as a delegated administrator.\n" }, - "homeRegion": { + "arn": { "type": "string", - "description": "Region in which the trail was created.\n" - }, - "includeGlobalServiceEvents": { - "type": "boolean", - "description": "Whether the trail is publishing events from global services such as IAM to the log files. Defaults to `true`.\n" - }, - "insightSelectors": { - "type": "array", - "items": { - "$ref": "#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" - }, - "description": "Configuration block for identifying unusual operational activity. See details below.\n" - }, - "isMultiRegionTrail": { - "type": "boolean", - "description": "Whether the trail is created in the current region or in all regions. Defaults to `false`.\n" - }, - "isOrganizationTrail": { - "type": "boolean", - "description": "Whether the trail is an AWS Organizations trail. Organization trails log events for the master account and all member accounts. Can only be created in the organization master account. Defaults to `false`.\n" + "description": "The Amazon Resource Name (ARN) of the delegated administrator's account.\n" }, - "kmsKeyId": { + "email": { "type": "string", - "description": "KMS key ARN to use to encrypt the logs delivered by CloudTrail.\n" + "description": "The email address that is associated with the delegated administrator's AWS account.\n" }, "name": { "type": "string", - "description": "Name of the trail.\n" - }, - "s3BucketName": { - "type": "string", - "description": "Name of the S3 bucket designated for publishing log files.\n\nThe following arguments are optional:\n" - }, - "s3KeyPrefix": { - "type": "string", - "description": "S3 key prefix that follows the name of the bucket you have designated for log file delivery.\n" + "description": "The friendly name of the delegated administrator's account.\n" }, - "snsTopicName": { + "servicePrincipal": { "type": "string", - "description": "Name of the Amazon SNS topic defined for notification of log file delivery.\n" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" - }, - "tagsAll": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", - "deprecationMessage": "Please use `tags` instead." + "description": "The AWS CloudTrail service principal name.\n" } }, "required": [ + "accountId", "arn", - "homeRegion", + "email", "name", - "s3BucketName", - "tagsAll" + "servicePrincipal" + ], + "inputProperties": { + "accountId": { + "type": "string", + "description": "An organization member account ID that you want to designate as a delegated administrator.\n" + } + }, + "requiredInputs": [ + "accountId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering OrganizationDelegatedAdminAccount resources.\n", + "properties": { + "accountId": { + "type": "string", + "description": "An organization member account ID that you want to designate as a delegated administrator.\n" + }, + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the delegated administrator's account.\n" + }, + "email": { + "type": "string", + "description": "The email address that is associated with the delegated administrator's AWS account.\n" + }, + "name": { + "type": "string", + "description": "The friendly name of the delegated administrator's account.\n" + }, + "servicePrincipal": { + "type": "string", + "description": "The AWS CloudTrail service principal name.\n" + } + }, + "type": "object" + } + }, + "aws:cloudtrail/trail:Trail": { + "description": "Provides a CloudTrail resource.\n\n\u003e **Tip:** For a multi-region trail, this resource must be in the home region of the trail.\n\n\u003e **Tip:** For an organization trail, this resource must be in the master account of the organization.\n\n## Example Usage\n\n### Basic\n\nEnable CloudTrail to capture all compatible management events in region.\nFor capturing events from services like IAM, `include_global_service_events` must be enabled.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleBucketV2 = new aws.s3.BucketV2(\"example\", {\n bucket: \"my-test-trail\",\n forceDestroy: true,\n});\nconst current = aws.getCallerIdentity({});\nconst currentGetPartition = aws.getPartition({});\nconst currentGetRegion = aws.getRegion({});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [\n {\n sid: \"AWSCloudTrailAclCheck\",\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"cloudtrail.amazonaws.com\"],\n }],\n actions: [\"s3:GetBucketAcl\"],\n resources: [exampleBucketV2.arn],\n conditions: [{\n test: \"StringEquals\",\n variable: \"aws:SourceArn\",\n values: [Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example`)],\n }],\n },\n {\n sid: \"AWSCloudTrailWrite\",\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"cloudtrail.amazonaws.com\"],\n }],\n actions: [\"s3:PutObject\"],\n resources: [pulumi.all([exampleBucketV2.arn, current]).apply(([arn, current]) =\u003e `${arn}/prefix/AWSLogs/${current.accountId}/*`)],\n conditions: [\n {\n test: \"StringEquals\",\n variable: \"s3:x-amz-acl\",\n values: [\"bucket-owner-full-control\"],\n },\n {\n test: \"StringEquals\",\n variable: \"aws:SourceArn\",\n values: [Promise.all([currentGetPartition, currentGetRegion, current]).then(([currentGetPartition, currentGetRegion, current]) =\u003e `arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example`)],\n },\n ],\n },\n ],\n});\nconst exampleBucketPolicy = new aws.s3.BucketPolicy(\"example\", {\n bucket: exampleBucketV2.id,\n policy: example.apply(example =\u003e example.json),\n});\nconst exampleTrail = new aws.cloudtrail.Trail(\"example\", {\n name: \"example\",\n s3BucketName: exampleBucketV2.id,\n s3KeyPrefix: \"prefix\",\n includeGlobalServiceEvents: false,\n}, {\n dependsOn: [exampleBucketPolicy],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_bucket_v2 = aws.s3.BucketV2(\"example\",\n bucket=\"my-test-trail\",\n force_destroy=True)\ncurrent = aws.get_caller_identity()\ncurrent_get_partition = aws.get_partition()\ncurrent_get_region = aws.get_region()\nexample = aws.iam.get_policy_document_output(statements=[\n {\n \"sid\": \"AWSCloudTrailAclCheck\",\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"cloudtrail.amazonaws.com\"],\n }],\n \"actions\": [\"s3:GetBucketAcl\"],\n \"resources\": [example_bucket_v2.arn],\n \"conditions\": [{\n \"test\": \"StringEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [f\"arn:{current_get_partition.partition}:cloudtrail:{current_get_region.name}:{current.account_id}:trail/example\"],\n }],\n },\n {\n \"sid\": \"AWSCloudTrailWrite\",\n \"effect\": \"Allow\",\n \"principals\": [{\n \"type\": \"Service\",\n \"identifiers\": [\"cloudtrail.amazonaws.com\"],\n }],\n \"actions\": [\"s3:PutObject\"],\n \"resources\": [example_bucket_v2.arn.apply(lambda arn: f\"{arn}/prefix/AWSLogs/{current.account_id}/*\")],\n \"conditions\": [\n {\n \"test\": \"StringEquals\",\n \"variable\": \"s3:x-amz-acl\",\n \"values\": [\"bucket-owner-full-control\"],\n },\n {\n \"test\": \"StringEquals\",\n \"variable\": \"aws:SourceArn\",\n \"values\": [f\"arn:{current_get_partition.partition}:cloudtrail:{current_get_region.name}:{current.account_id}:trail/example\"],\n },\n ],\n },\n])\nexample_bucket_policy = aws.s3.BucketPolicy(\"example\",\n bucket=example_bucket_v2.id,\n policy=example.json)\nexample_trail = aws.cloudtrail.Trail(\"example\",\n name=\"example\",\n s3_bucket_name=example_bucket_v2.id,\n s3_key_prefix=\"prefix\",\n include_global_service_events=False,\n opts = pulumi.ResourceOptions(depends_on=[example_bucket_policy]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleBucketV2 = new Aws.S3.BucketV2(\"example\", new()\n {\n Bucket = \"my-test-trail\",\n ForceDestroy = true,\n });\n\n var current = Aws.GetCallerIdentity.Invoke();\n\n var currentGetPartition = Aws.GetPartition.Invoke();\n\n var currentGetRegion = Aws.GetRegion.Invoke();\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AWSCloudTrailAclCheck\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"cloudtrail.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"s3:GetBucketAcl\",\n },\n Resources = new[]\n {\n exampleBucketV2.Arn,\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:cloudtrail:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:trail/example\",\n },\n },\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AWSCloudTrailWrite\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"cloudtrail.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"s3:PutObject\",\n },\n Resources = new[]\n {\n $\"{exampleBucketV2.Arn}/prefix/AWSLogs/{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}/*\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"s3:x-amz-acl\",\n Values = new[]\n {\n \"bucket-owner-full-control\",\n },\n },\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"StringEquals\",\n Variable = \"aws:SourceArn\",\n Values = new[]\n {\n $\"arn:{currentGetPartition.Apply(getPartitionResult =\u003e getPartitionResult.Partition)}:cloudtrail:{currentGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name)}:{current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:trail/example\",\n },\n },\n },\n },\n },\n });\n\n var exampleBucketPolicy = new Aws.S3.BucketPolicy(\"example\", new()\n {\n Bucket = exampleBucketV2.Id,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var exampleTrail = new Aws.CloudTrail.Trail(\"example\", new()\n {\n Name = \"example\",\n S3BucketName = exampleBucketV2.Id,\n S3KeyPrefix = \"prefix\",\n IncludeGlobalServiceEvents = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleBucketPolicy,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleBucketV2, err := s3.NewBucketV2(ctx, \"example\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"my-test-trail\"),\n\t\t\tForceDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetPartition, err := aws.GetPartition(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetRegion, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tSid: pulumi.String(\"AWSCloudTrailAclCheck\"),\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"cloudtrail.amazonaws.com\"),\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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:GetBucketAcl\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleBucketV2.Arn,\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"arn:%v:cloudtrail:%v:%v:trail/example\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\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\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tSid: pulumi.String(\"AWSCloudTrailWrite\"),\n\t\t\t\t\tEffect: pulumi.String(\"Allow\"),\n\t\t\t\t\tPrincipals: iam.GetPolicyDocumentStatementPrincipalArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementPrincipalArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"Service\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"cloudtrail.amazonaws.com\"),\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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"s3:PutObject\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleBucketV2.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"%v/prefix/AWSLogs/%v/*\", arn, current.AccountId), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t},\n\t\t\t\t\tConditions: iam.GetPolicyDocumentStatementConditionArray{\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"s3:x-amz-acl\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"bucket-owner-full-control\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026iam.GetPolicyDocumentStatementConditionArgs{\n\t\t\t\t\t\t\tTest: pulumi.String(\"StringEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SourceArn\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"arn:%v:cloudtrail:%v:%v:trail/example\", currentGetPartition.Partition, currentGetRegion.Name, current.AccountId),\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}, nil)\n\t\texampleBucketPolicy, err := s3.NewBucketPolicy(ctx, \"example\", \u0026s3.BucketPolicyArgs{\n\t\t\tBucket: exampleBucketV2.ID(),\n\t\t\tPolicy: pulumi.String(example.ApplyT(func(example iam.GetPolicyDocumentResult) (*string, error) {\n\t\t\t\treturn \u0026example.Json, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tS3BucketName: exampleBucketV2.ID(),\n\t\t\tS3KeyPrefix: pulumi.String(\"prefix\"),\n\t\t\tIncludeGlobalServiceEvents: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleBucketPolicy,\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.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetPartitionArgs;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.s3.BucketPolicy;\nimport com.pulumi.aws.s3.BucketPolicyArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\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 exampleBucketV2 = new BucketV2(\"exampleBucketV2\", BucketV2Args.builder()\n .bucket(\"my-test-trail\")\n .forceDestroy(true)\n .build());\n\n final var current = AwsFunctions.getCallerIdentity();\n\n final var currentGetPartition = AwsFunctions.getPartition();\n\n final var currentGetRegion = AwsFunctions.getRegion();\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements( \n GetPolicyDocumentStatementArgs.builder()\n .sid(\"AWSCloudTrailAclCheck\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"cloudtrail.amazonaws.com\")\n .build())\n .actions(\"s3:GetBucketAcl\")\n .resources(exampleBucketV2.arn())\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"aws:SourceArn\")\n .values(String.format(\"arn:%s:cloudtrail:%s:%s:trail/example\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .build(),\n GetPolicyDocumentStatementArgs.builder()\n .sid(\"AWSCloudTrailWrite\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"cloudtrail.amazonaws.com\")\n .build())\n .actions(\"s3:PutObject\")\n .resources(exampleBucketV2.arn().applyValue(arn -\u003e String.format(\"%s/prefix/AWSLogs/%s/*\", arn,current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))))\n .conditions( \n GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"s3:x-amz-acl\")\n .values(\"bucket-owner-full-control\")\n .build(),\n GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"StringEquals\")\n .variable(\"aws:SourceArn\")\n .values(String.format(\"arn:%s:cloudtrail:%s:%s:trail/example\", currentGetPartition.applyValue(getPartitionResult -\u003e getPartitionResult.partition()),currentGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()),current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .build())\n .build());\n\n var exampleBucketPolicy = new BucketPolicy(\"exampleBucketPolicy\", BucketPolicyArgs.builder()\n .bucket(exampleBucketV2.id())\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n var exampleTrail = new Trail(\"exampleTrail\", TrailArgs.builder()\n .name(\"example\")\n .s3BucketName(exampleBucketV2.id())\n .s3KeyPrefix(\"prefix\")\n .includeGlobalServiceEvents(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn(exampleBucketPolicy)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleTrail:\n type: aws:cloudtrail:Trail\n name: example\n properties:\n name: example\n s3BucketName: ${exampleBucketV2.id}\n s3KeyPrefix: prefix\n includeGlobalServiceEvents: false\n options:\n dependson:\n - ${exampleBucketPolicy}\n exampleBucketV2:\n type: aws:s3:BucketV2\n name: example\n properties:\n bucket: my-test-trail\n forceDestroy: true\n exampleBucketPolicy:\n type: aws:s3:BucketPolicy\n name: example\n properties:\n bucket: ${exampleBucketV2.id}\n policy: ${example.json}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: AWSCloudTrailAclCheck\n effect: Allow\n principals:\n - type: Service\n identifiers:\n - cloudtrail.amazonaws.com\n actions:\n - s3:GetBucketAcl\n resources:\n - ${exampleBucketV2.arn}\n conditions:\n - test: StringEquals\n variable: aws:SourceArn\n values:\n - arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example\n - sid: AWSCloudTrailWrite\n effect: Allow\n principals:\n - type: Service\n identifiers:\n - cloudtrail.amazonaws.com\n actions:\n - s3:PutObject\n resources:\n - ${exampleBucketV2.arn}/prefix/AWSLogs/${current.accountId}/*\n conditions:\n - test: StringEquals\n variable: s3:x-amz-acl\n values:\n - bucket-owner-full-control\n - test: StringEquals\n variable: aws:SourceArn\n values:\n - arn:${currentGetPartition.partition}:cloudtrail:${currentGetRegion.name}:${current.accountId}:trail/example\n current:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n currentGetPartition:\n fn::invoke:\n Function: aws:getPartition\n Arguments: {}\n currentGetRegion:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Data Event Logging\n\nCloudTrail can log [Data Events](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) for certain services such as S3 objects and Lambda function invocations. Additional information about data event configuration can be found in the following links:\n\n* [CloudTrail API DataResource documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DataResource.html) (for basic event selector).\n* [CloudTrail API AdvancedFieldSelector documentation](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html) (for advanced event selector).\n\n### Logging All Lambda Function Invocations By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::Lambda::Function\",\n values: [\"arn:aws:lambda\"],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::Lambda::Function\",\n \"values\": [\"arn:aws:lambda\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::Lambda::Function\",\n Values = new[]\n {\n \"arn:aws:lambda\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\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 := cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::Lambda::Function\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"arn:aws:lambda\"),\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.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::Lambda::Function\")\n .values(\"arn:aws:lambda\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::Lambda::Function\n values:\n - arn:aws:lambda\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging All S3 Object Events By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::S3::Object\",\n values: [\"arn:aws:s3\"],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::S3::Object\",\n \"values\": [\"arn:aws:s3\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::S3::Object\",\n Values = new[]\n {\n \"arn:aws:s3\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\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 := cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::S3::Object\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"arn:aws:s3\"),\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.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::S3::Object\")\n .values(\"arn:aws:s3\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::S3::Object\n values:\n - arn:aws:s3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging Individual S3 Bucket Events By Using Basic Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst important-bucket = aws.s3.getBucket({\n bucket: \"important-bucket\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {eventSelectors: [{\n readWriteType: \"All\",\n includeManagementEvents: true,\n dataResources: [{\n type: \"AWS::S3::Object\",\n values: [important_bucket.then(important_bucket =\u003e `${important_bucket.arn}/`)],\n }],\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nimportant_bucket = aws.s3.get_bucket(bucket=\"important-bucket\")\nexample = aws.cloudtrail.Trail(\"example\", event_selectors=[{\n \"read_write_type\": \"All\",\n \"include_management_events\": True,\n \"data_resources\": [{\n \"type\": \"AWS::S3::Object\",\n \"values\": [f\"{important_bucket.arn}/\"],\n }],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var important_bucket = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n EventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorArgs\n {\n ReadWriteType = \"All\",\n IncludeManagementEvents = true,\n DataResources = new[]\n {\n new Aws.CloudTrail.Inputs.TrailEventSelectorDataResourceArgs\n {\n Type = \"AWS::S3::Object\",\n Values = new[]\n {\n important_bucket.Apply(important_bucket =\u003e $\"{important_bucket.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\timportant_bucket, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tEventSelectors: cloudtrail.TrailEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailEventSelectorArgs{\n\t\t\t\t\tReadWriteType: pulumi.String(\"All\"),\n\t\t\t\t\tIncludeManagementEvents: pulumi.Bool(true),\n\t\t\t\t\tDataResources: cloudtrail.TrailEventSelectorDataResourceArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailEventSelectorDataResourceArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"AWS::S3::Object\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket.Arn),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorArgs;\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 important-bucket = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .eventSelectors(TrailEventSelectorArgs.builder()\n .readWriteType(\"All\")\n .includeManagementEvents(true)\n .dataResources(TrailEventSelectorDataResourceArgs.builder()\n .type(\"AWS::S3::Object\")\n .values(String.format(\"%s/\", important_bucket.arn()))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n eventSelectors:\n - readWriteType: All\n includeManagementEvents: true\n dataResources:\n - type: AWS::S3::Object\n values:\n - ${[\"important-bucket\"].arn}/\nvariables:\n important-bucket:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging All S3 Object Events Except For Two S3 Buckets By Using Advanced Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst not-important-bucket-1 = aws.s3.getBucket({\n bucket: \"not-important-bucket-1\",\n});\nconst not-important-bucket-2 = aws.s3.getBucket({\n bucket: \"not-important-bucket-2\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {advancedEventSelectors: [\n {\n name: \"Log all S3 objects events except for two S3 buckets\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"resources.ARN\",\n notStartsWiths: [\n not_important_bucket_1.then(not_important_bucket_1 =\u003e `${not_important_bucket_1.arn}/`),\n not_important_bucket_2.then(not_important_bucket_2 =\u003e `${not_important_bucket_2.arn}/`),\n ],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n name: \"Log readOnly and writeOnly management events\",\n fieldSelectors: [{\n field: \"eventCategory\",\n equals: [\"Management\"],\n }],\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nnot_important_bucket_1 = aws.s3.get_bucket(bucket=\"not-important-bucket-1\")\nnot_important_bucket_2 = aws.s3.get_bucket(bucket=\"not-important-bucket-2\")\nexample = aws.cloudtrail.Trail(\"example\", advanced_event_selectors=[\n {\n \"name\": \"Log all S3 objects events except for two S3 buckets\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"resources.ARN\",\n \"not_starts_withs\": [\n f\"{not_important_bucket_1.arn}/\",\n f\"{not_important_bucket_2.arn}/\",\n ],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n \"name\": \"Log readOnly and writeOnly management events\",\n \"field_selectors\": [{\n \"field\": \"eventCategory\",\n \"equals\": [\"Management\"],\n }],\n },\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var not_important_bucket_1 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"not-important-bucket-1\",\n });\n\n var not_important_bucket_2 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"not-important-bucket-2\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n AdvancedEventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log all S3 objects events except for two S3 buckets\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n NotStartsWiths = new[]\n {\n not_important_bucket_1.Apply(not_important_bucket_1 =\u003e $\"{not_important_bucket_1.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n not_important_bucket_2.Apply(not_important_bucket_2 =\u003e $\"{not_important_bucket_2.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log readOnly and writeOnly management events\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Management\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnot_important_bucket_1, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"not-important-bucket-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnot_important_bucket_2, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"not-important-bucket-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tAdvancedEventSelectors: cloudtrail.TrailAdvancedEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log all S3 objects events except for two S3 buckets\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tNotStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", not_important_bucket_1.Arn),\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", not_important_bucket_2.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log readOnly and writeOnly management events\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Management\"),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;\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 not-important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"not-important-bucket-1\")\n .build());\n\n final var not-important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"not-important-bucket-2\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .advancedEventSelectors( \n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log all S3 objects events except for two S3 buckets\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .notStartsWiths( \n String.format(\"%s/\", not_important_bucket_1.arn()),\n String.format(\"%s/\", not_important_bucket_2.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build(),\n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log readOnly and writeOnly management events\")\n .fieldSelectors(TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Management\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n advancedEventSelectors:\n - name: Log all S3 objects events except for two S3 buckets\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: resources.ARN\n notStartsWiths:\n - ${[\"not-important-bucket-1\"].arn}/\n - ${[\"not-important-bucket-2\"].arn}/\n - field: resources.type\n equals:\n - AWS::S3::Object\n - name: Log readOnly and writeOnly management events\n fieldSelectors:\n - field: eventCategory\n equals:\n - Management\nvariables:\n not-important-bucket-1:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: not-important-bucket-1\n not-important-bucket-2:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: not-important-bucket-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging Individual S3 Buckets And Specific Event Names By Using Advanced Event Selectors\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst important-bucket-1 = aws.s3.getBucket({\n bucket: \"important-bucket-1\",\n});\nconst important-bucket-2 = aws.s3.getBucket({\n bucket: \"important-bucket-2\",\n});\nconst important-bucket-3 = aws.s3.getBucket({\n bucket: \"important-bucket-3\",\n});\nconst example = new aws.cloudtrail.Trail(\"example\", {advancedEventSelectors: [\n {\n name: \"Log PutObject and DeleteObject events for two S3 buckets\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"eventName\",\n equals: [\n \"PutObject\",\n \"DeleteObject\",\n ],\n },\n {\n field: \"resources.ARN\",\n startsWiths: [\n important_bucket_1.then(important_bucket_1 =\u003e `${important_bucket_1.arn}/`),\n important_bucket_2.then(important_bucket_2 =\u003e `${important_bucket_2.arn}/`),\n ],\n },\n {\n field: \"readOnly\",\n equals: [\"false\"],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n name: \"Log Delete* events for one S3 bucket\",\n fieldSelectors: [\n {\n field: \"eventCategory\",\n equals: [\"Data\"],\n },\n {\n field: \"eventName\",\n startsWiths: [\"Delete\"],\n },\n {\n field: \"resources.ARN\",\n equals: [important_bucket_3.then(important_bucket_3 =\u003e `${important_bucket_3.arn}/important-prefix`)],\n },\n {\n field: \"readOnly\",\n equals: [\"false\"],\n },\n {\n field: \"resources.type\",\n equals: [\"AWS::S3::Object\"],\n },\n ],\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nimportant_bucket_1 = aws.s3.get_bucket(bucket=\"important-bucket-1\")\nimportant_bucket_2 = aws.s3.get_bucket(bucket=\"important-bucket-2\")\nimportant_bucket_3 = aws.s3.get_bucket(bucket=\"important-bucket-3\")\nexample = aws.cloudtrail.Trail(\"example\", advanced_event_selectors=[\n {\n \"name\": \"Log PutObject and DeleteObject events for two S3 buckets\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"eventName\",\n \"equals\": [\n \"PutObject\",\n \"DeleteObject\",\n ],\n },\n {\n \"field\": \"resources.ARN\",\n \"starts_withs\": [\n f\"{important_bucket_1.arn}/\",\n f\"{important_bucket_2.arn}/\",\n ],\n },\n {\n \"field\": \"readOnly\",\n \"equals\": [\"false\"],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n {\n \"name\": \"Log Delete* events for one S3 bucket\",\n \"field_selectors\": [\n {\n \"field\": \"eventCategory\",\n \"equals\": [\"Data\"],\n },\n {\n \"field\": \"eventName\",\n \"starts_withs\": [\"Delete\"],\n },\n {\n \"field\": \"resources.ARN\",\n \"equals\": [f\"{important_bucket_3.arn}/important-prefix\"],\n },\n {\n \"field\": \"readOnly\",\n \"equals\": [\"false\"],\n },\n {\n \"field\": \"resources.type\",\n \"equals\": [\"AWS::S3::Object\"],\n },\n ],\n },\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var important_bucket_1 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-1\",\n });\n\n var important_bucket_2 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-2\",\n });\n\n var important_bucket_3 = Aws.S3.GetBucket.Invoke(new()\n {\n Bucket = \"important-bucket-3\",\n });\n\n var example = new Aws.CloudTrail.Trail(\"example\", new()\n {\n AdvancedEventSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log PutObject and DeleteObject events for two S3 buckets\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventName\",\n Equals = new[]\n {\n \"PutObject\",\n \"DeleteObject\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n StartsWiths = new[]\n {\n important_bucket_1.Apply(important_bucket_1 =\u003e $\"{important_bucket_1.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n important_bucket_2.Apply(important_bucket_2 =\u003e $\"{important_bucket_2.Apply(getBucketResult =\u003e getBucketResult.Arn)}/\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"readOnly\",\n Equals = new[]\n {\n \"false\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorArgs\n {\n Name = \"Log Delete* events for one S3 bucket\",\n FieldSelectors = new[]\n {\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventCategory\",\n Equals = new[]\n {\n \"Data\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"eventName\",\n StartsWiths = new[]\n {\n \"Delete\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.ARN\",\n Equals = new[]\n {\n important_bucket_3.Apply(important_bucket_3 =\u003e $\"{important_bucket_3.Apply(getBucketResult =\u003e getBucketResult.Arn)}/important-prefix\"),\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"readOnly\",\n Equals = new[]\n {\n \"false\",\n },\n },\n new Aws.CloudTrail.Inputs.TrailAdvancedEventSelectorFieldSelectorArgs\n {\n Field = \"resources.type\",\n Equals = new[]\n {\n \"AWS::S3::Object\",\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\timportant_bucket_1, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\timportant_bucket_2, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-2\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\timportant_bucket_3, err := s3.LookupBucket(ctx, \u0026s3.LookupBucketArgs{\n\t\t\tBucket: \"important-bucket-3\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tAdvancedEventSelectors: cloudtrail.TrailAdvancedEventSelectorArray{\n\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log PutObject and DeleteObject events for two S3 buckets\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventName\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"PutObject\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"DeleteObject\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket_1.Arn),\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/\", important_bucket_2.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"readOnly\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"false\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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\t\u0026cloudtrail.TrailAdvancedEventSelectorArgs{\n\t\t\t\t\tName: pulumi.String(\"Log Delete* events for one S3 bucket\"),\n\t\t\t\t\tFieldSelectors: cloudtrail.TrailAdvancedEventSelectorFieldSelectorArray{\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventCategory\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Data\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"eventName\"),\n\t\t\t\t\t\t\tStartsWiths: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.ARN\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.Sprintf(\"%v/important-prefix\", important_bucket_3.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"readOnly\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"false\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudtrail.TrailAdvancedEventSelectorFieldSelectorArgs{\n\t\t\t\t\t\t\tField: pulumi.String(\"resources.type\"),\n\t\t\t\t\t\t\tEquals: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"AWS::S3::Object\"),\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.aws.s3.S3Functions;\nimport com.pulumi.aws.s3.inputs.GetBucketArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\nimport com.pulumi.aws.cloudtrail.inputs.TrailAdvancedEventSelectorArgs;\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 important-bucket-1 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-1\")\n .build());\n\n final var important-bucket-2 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-2\")\n .build());\n\n final var important-bucket-3 = S3Functions.getBucket(GetBucketArgs.builder()\n .bucket(\"important-bucket-3\")\n .build());\n\n var example = new Trail(\"example\", TrailArgs.builder()\n .advancedEventSelectors( \n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log PutObject and DeleteObject events for two S3 buckets\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventName\")\n .equals( \n \"PutObject\",\n \"DeleteObject\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .startsWiths( \n String.format(\"%s/\", important_bucket_1.arn()),\n String.format(\"%s/\", important_bucket_2.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"readOnly\")\n .equals(\"false\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build(),\n TrailAdvancedEventSelectorArgs.builder()\n .name(\"Log Delete* events for one S3 bucket\")\n .fieldSelectors( \n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventCategory\")\n .equals(\"Data\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"eventName\")\n .startsWiths(\"Delete\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.ARN\")\n .equals(String.format(\"%s/important-prefix\", important_bucket_3.arn()))\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"readOnly\")\n .equals(\"false\")\n .build(),\n TrailAdvancedEventSelectorFieldSelectorArgs.builder()\n .field(\"resources.type\")\n .equals(\"AWS::S3::Object\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudtrail:Trail\n properties:\n advancedEventSelectors:\n - name: Log PutObject and DeleteObject events for two S3 buckets\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: eventName\n equals:\n - PutObject\n - DeleteObject\n - field: resources.ARN\n startsWiths:\n - ${[\"important-bucket-1\"].arn}/\n - ${[\"important-bucket-2\"].arn}/\n - field: readOnly\n equals:\n - 'false'\n - field: resources.type\n equals:\n - AWS::S3::Object\n - name: Log Delete* events for one S3 bucket\n fieldSelectors:\n - field: eventCategory\n equals:\n - Data\n - field: eventName\n startsWiths:\n - Delete\n - field: resources.ARN\n equals:\n - ${[\"important-bucket-3\"].arn}/important-prefix\n - field: readOnly\n equals:\n - 'false'\n - field: resources.type\n equals:\n - AWS::S3::Object\nvariables:\n important-bucket-1:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-1\n important-bucket-2:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-2\n important-bucket-3:\n fn::invoke:\n Function: aws:s3:getBucket\n Arguments:\n bucket: important-bucket-3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Sending Events to CloudWatch Logs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudwatch.LogGroup(\"example\", {name: \"Example\"});\nconst exampleTrail = new aws.cloudtrail.Trail(\"example\", {cloudWatchLogsGroupArn: pulumi.interpolate`${example.arn}:*`});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudwatch.LogGroup(\"example\", name=\"Example\")\nexample_trail = aws.cloudtrail.Trail(\"example\", cloud_watch_logs_group_arn=example.arn.apply(lambda arn: f\"{arn}:*\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"Example\",\n });\n\n var exampleTrail = new Aws.CloudTrail.Trail(\"example\", new()\n {\n CloudWatchLogsGroupArn = example.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"Example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudtrail.NewTrail(ctx, \"example\", \u0026cloudtrail.TrailArgs{\n\t\t\tCloudWatchLogsGroupArn: example.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), 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.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.cloudtrail.Trail;\nimport com.pulumi.aws.cloudtrail.TrailArgs;\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 example = new LogGroup(\"example\", LogGroupArgs.builder()\n .name(\"Example\")\n .build());\n\n var exampleTrail = new Trail(\"exampleTrail\", TrailArgs.builder()\n .cloudWatchLogsGroupArn(example.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudwatch:LogGroup\n properties:\n name: Example\n exampleTrail:\n type: aws:cloudtrail:Trail\n name: example\n properties:\n cloudWatchLogsGroupArn: ${example.arn}:*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Cloudtrails using the `arn`. For example:\n\n```sh\n$ pulumi import aws:cloudtrail/trail:Trail sample arn:aws:cloudtrail:us-east-1:123456789012:trail/my-sample-trail\n```\n", + "properties": { + "advancedEventSelectors": { + "type": "array", + "items": { + "$ref": "#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" + }, + "description": "Specifies an advanced event selector for enabling data event logging. Fields documented below. Conflicts with `event_selector`.\n" + }, + "arn": { + "type": "string", + "description": "ARN of the trail.\n" + }, + "cloudWatchLogsGroupArn": { + "type": "string", + "description": "Log group name using an ARN that represents the log group to which CloudTrail logs will be delivered. Note that CloudTrail requires the Log Stream wildcard.\n" + }, + "cloudWatchLogsRoleArn": { + "type": "string", + "description": "Role for the CloudWatch Logs endpoint to assume to write to a user’s log group.\n" + }, + "enableLogFileValidation": { + "type": "boolean", + "description": "Whether log file integrity validation is enabled. Defaults to `false`.\n" + }, + "enableLogging": { + "type": "boolean", + "description": "Enables logging for the trail. Defaults to `true`. Setting this to `false` will pause logging.\n" + }, + "eventSelectors": { + "type": "array", + "items": { + "$ref": "#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" + }, + "description": "Specifies an event selector for enabling data event logging. Fields documented below. Please note the [CloudTrail limits](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) when configuring these. Conflicts with `advanced_event_selector`.\n" + }, + "homeRegion": { + "type": "string", + "description": "Region in which the trail was created.\n" + }, + "includeGlobalServiceEvents": { + "type": "boolean", + "description": "Whether the trail is publishing events from global services such as IAM to the log files. Defaults to `true`.\n" + }, + "insightSelectors": { + "type": "array", + "items": { + "$ref": "#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" + }, + "description": "Configuration block for identifying unusual operational activity. See details below.\n" + }, + "isMultiRegionTrail": { + "type": "boolean", + "description": "Whether the trail is created in the current region or in all regions. Defaults to `false`.\n" + }, + "isOrganizationTrail": { + "type": "boolean", + "description": "Whether the trail is an AWS Organizations trail. Organization trails log events for the master account and all member accounts. Can only be created in the organization master account. Defaults to `false`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS key ARN to use to encrypt the logs delivered by CloudTrail.\n" + }, + "name": { + "type": "string", + "description": "Name of the trail.\n" + }, + "s3BucketName": { + "type": "string", + "description": "Name of the S3 bucket designated for publishing log files.\n\nThe following arguments are optional:\n" + }, + "s3KeyPrefix": { + "type": "string", + "description": "S3 key prefix that follows the name of the bucket you have designated for log file delivery.\n" + }, + "snsTopicName": { + "type": "string", + "description": "Name of the Amazon SNS topic defined for notification of log file delivery.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + } + }, + "required": [ + "arn", + "homeRegion", + "name", + "s3BucketName", + "tagsAll" ], "inputProperties": { "advancedEventSelectors": { @@ -212260,6 +213020,325 @@ "type": "object" } }, + "aws:datazone/environmentProfile:EnvironmentProfile": { + "description": "Resource for managing an AWS DataZone Environment Profile.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst domainExecutionRole = new aws.iam.Role(\"domain_execution_role\", {\n name: \"example-name\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example-name\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst testDomain = new aws.datazone.Domain(\"test\", {\n name: \"example-name\",\n domainExecutionRole: domainExecutionRole.arn,\n});\nconst testSecurityGroup = new aws.ec2.SecurityGroup(\"test\", {name: \"example-name\"});\nconst testProject = new aws.datazone.Project(\"test\", {\n domainIdentifier: testDomain.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example-name\",\n description: \"desc\",\n skipDeletionCheck: true,\n});\nconst test = aws.getCallerIdentity({});\nconst testGetRegion = aws.getRegion({});\nconst testGetEnvironmentBlueprint = aws.datazone.getEnvironmentBlueprintOutput({\n domainId: testDomain.id,\n name: \"DefaultDataLake\",\n managed: true,\n});\nconst testEnvironmentBlueprintConfiguration = new aws.datazone.EnvironmentBlueprintConfiguration(\"test\", {\n domainId: testDomain.id,\n environmentBlueprintId: testGetEnvironmentBlueprint.apply(testGetEnvironmentBlueprint =\u003e testGetEnvironmentBlueprint.id),\n provisioningRoleArn: domainExecutionRole.arn,\n enabledRegions: [testGetRegion.then(testGetRegion =\u003e testGetRegion.name)],\n});\nconst testEnvironmentProfile = new aws.datazone.EnvironmentProfile(\"test\", {\n awsAccountId: test.then(test =\u003e test.accountId),\n awsAccountRegion: testGetRegion.then(testGetRegion =\u003e testGetRegion.name),\n description: \"description\",\n environmentBlueprintIdentifier: testGetEnvironmentBlueprint.apply(testGetEnvironmentBlueprint =\u003e testGetEnvironmentBlueprint.id),\n name: \"example-name\",\n projectIdentifier: testProject.id,\n domainIdentifier: testDomain.id,\n userParameters: [{\n name: \"consumerGlueDbName\",\n value: \"value\",\n }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndomain_execution_role = aws.iam.Role(\"domain_execution_role\",\n name=\"example-name\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example-name\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\ntest_domain = aws.datazone.Domain(\"test\",\n name=\"example-name\",\n domain_execution_role=domain_execution_role.arn)\ntest_security_group = aws.ec2.SecurityGroup(\"test\", name=\"example-name\")\ntest_project = aws.datazone.Project(\"test\",\n domain_identifier=test_domain.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example-name\",\n description=\"desc\",\n skip_deletion_check=True)\ntest = aws.get_caller_identity()\ntest_get_region = aws.get_region()\ntest_get_environment_blueprint = aws.datazone.get_environment_blueprint_output(domain_id=test_domain.id,\n name=\"DefaultDataLake\",\n managed=True)\ntest_environment_blueprint_configuration = aws.datazone.EnvironmentBlueprintConfiguration(\"test\",\n domain_id=test_domain.id,\n environment_blueprint_id=test_get_environment_blueprint.id,\n provisioning_role_arn=domain_execution_role.arn,\n enabled_regions=[test_get_region.name])\ntest_environment_profile = aws.datazone.EnvironmentProfile(\"test\",\n aws_account_id=test.account_id,\n aws_account_region=test_get_region.name,\n description=\"description\",\n environment_blueprint_identifier=test_get_environment_blueprint.id,\n name=\"example-name\",\n project_identifier=test_project.id,\n domain_identifier=test_domain.id,\n user_parameters=[{\n \"name\": \"consumerGlueDbName\",\n \"value\": \"value\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var domainExecutionRole = new Aws.Iam.Role(\"domain_execution_role\", new()\n {\n Name = \"example-name\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"datazone.amazonaws.com\",\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example-name\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var testDomain = new Aws.DataZone.Domain(\"test\", new()\n {\n Name = \"example-name\",\n DomainExecutionRole = domainExecutionRole.Arn,\n });\n\n var testSecurityGroup = new Aws.Ec2.SecurityGroup(\"test\", new()\n {\n Name = \"example-name\",\n });\n\n var testProject = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = testDomain.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example-name\",\n Description = \"desc\",\n SkipDeletionCheck = true,\n });\n\n var test = Aws.GetCallerIdentity.Invoke();\n\n var testGetRegion = Aws.GetRegion.Invoke();\n\n var testGetEnvironmentBlueprint = Aws.DataZone.GetEnvironmentBlueprint.Invoke(new()\n {\n DomainId = testDomain.Id,\n Name = \"DefaultDataLake\",\n Managed = true,\n });\n\n var testEnvironmentBlueprintConfiguration = new Aws.DataZone.EnvironmentBlueprintConfiguration(\"test\", new()\n {\n DomainId = testDomain.Id,\n EnvironmentBlueprintId = testGetEnvironmentBlueprint.Apply(getEnvironmentBlueprintResult =\u003e getEnvironmentBlueprintResult.Id),\n ProvisioningRoleArn = domainExecutionRole.Arn,\n EnabledRegions = new[]\n {\n testGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name),\n },\n });\n\n var testEnvironmentProfile = new Aws.DataZone.EnvironmentProfile(\"test\", new()\n {\n AwsAccountId = test.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n AwsAccountRegion = testGetRegion.Apply(getRegionResult =\u003e getRegionResult.Name),\n Description = \"description\",\n EnvironmentBlueprintIdentifier = testGetEnvironmentBlueprint.Apply(getEnvironmentBlueprintResult =\u003e getEnvironmentBlueprintResult.Id),\n Name = \"example-name\",\n ProjectIdentifier = testProject.Id,\n DomainIdentifier = testDomain.Id,\n UserParameters = new[]\n {\n new Aws.DataZone.Inputs.EnvironmentProfileUserParameterArgs\n {\n Name = \"consumerGlueDbName\",\n Value = \"value\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"cloudformation.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\tdomainExecutionRole, err := iam.NewRole(ctx, \"domain_execution_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example-name\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example-name\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\ttestDomain, err := datazone.NewDomain(ctx, \"test\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example-name\"),\n\t\t\tDomainExecutionRole: domainExecutionRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"test\", \u0026ec2.SecurityGroupArgs{\n\t\t\tName: pulumi.String(\"example-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestProject, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: testDomain.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example-name\"),\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetRegion, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestGetEnvironmentBlueprint := datazone.GetEnvironmentBlueprintOutput(ctx, datazone.GetEnvironmentBlueprintOutputArgs{\n\t\t\tDomainId: testDomain.ID(),\n\t\t\tName: pulumi.String(\"DefaultDataLake\"),\n\t\t\tManaged: pulumi.Bool(true),\n\t\t}, nil)\n\t\t_, err = datazone.NewEnvironmentBlueprintConfiguration(ctx, \"test\", \u0026datazone.EnvironmentBlueprintConfigurationArgs{\n\t\t\tDomainId: testDomain.ID(),\n\t\t\tEnvironmentBlueprintId: pulumi.String(testGetEnvironmentBlueprint.ApplyT(func(testGetEnvironmentBlueprint datazone.GetEnvironmentBlueprintResult) (*string, error) {\n\t\t\t\treturn \u0026testGetEnvironmentBlueprint.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tProvisioningRoleArn: domainExecutionRole.Arn,\n\t\t\tEnabledRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(testGetRegion.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 = datazone.NewEnvironmentProfile(ctx, \"test\", \u0026datazone.EnvironmentProfileArgs{\n\t\t\tAwsAccountId: pulumi.String(test.AccountId),\n\t\t\tAwsAccountRegion: pulumi.String(testGetRegion.Name),\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tEnvironmentBlueprintIdentifier: pulumi.String(testGetEnvironmentBlueprint.ApplyT(func(testGetEnvironmentBlueprint datazone.GetEnvironmentBlueprintResult) (*string, error) {\n\t\t\t\treturn \u0026testGetEnvironmentBlueprint.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tName: pulumi.String(\"example-name\"),\n\t\t\tProjectIdentifier: testProject.ID(),\n\t\t\tDomainIdentifier: testDomain.ID(),\n\t\t\tUserParameters: datazone.EnvironmentProfileUserParameterArray{\n\t\t\t\t\u0026datazone.EnvironmentProfileUserParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"consumerGlueDbName\"),\n\t\t\t\t\tValue: pulumi.String(\"value\"),\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.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.datazone.DatazoneFunctions;\nimport com.pulumi.aws.datazone.inputs.GetEnvironmentBlueprintArgs;\nimport com.pulumi.aws.datazone.EnvironmentBlueprintConfiguration;\nimport com.pulumi.aws.datazone.EnvironmentBlueprintConfigurationArgs;\nimport com.pulumi.aws.datazone.EnvironmentProfile;\nimport com.pulumi.aws.datazone.EnvironmentProfileArgs;\nimport com.pulumi.aws.datazone.inputs.EnvironmentProfileUserParameterArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 domainExecutionRole = new Role(\"domainExecutionRole\", RoleArgs.builder()\n .name(\"example-name\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example-name\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var testDomain = new Domain(\"testDomain\", DomainArgs.builder()\n .name(\"example-name\")\n .domainExecutionRole(domainExecutionRole.arn())\n .build());\n\n var testSecurityGroup = new SecurityGroup(\"testSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example-name\")\n .build());\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .domainIdentifier(testDomain.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example-name\")\n .description(\"desc\")\n .skipDeletionCheck(true)\n .build());\n\n final var test = AwsFunctions.getCallerIdentity();\n\n final var testGetRegion = AwsFunctions.getRegion();\n\n final var testGetEnvironmentBlueprint = DatazoneFunctions.getEnvironmentBlueprint(GetEnvironmentBlueprintArgs.builder()\n .domainId(testDomain.id())\n .name(\"DefaultDataLake\")\n .managed(true)\n .build());\n\n var testEnvironmentBlueprintConfiguration = new EnvironmentBlueprintConfiguration(\"testEnvironmentBlueprintConfiguration\", EnvironmentBlueprintConfigurationArgs.builder()\n .domainId(testDomain.id())\n .environmentBlueprintId(testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -\u003e getEnvironmentBlueprintResult).applyValue(testGetEnvironmentBlueprint -\u003e testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -\u003e getEnvironmentBlueprintResult.id())))\n .provisioningRoleArn(domainExecutionRole.arn())\n .enabledRegions(testGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .build());\n\n var testEnvironmentProfile = new EnvironmentProfile(\"testEnvironmentProfile\", EnvironmentProfileArgs.builder()\n .awsAccountId(test.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n .awsAccountRegion(testGetRegion.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .description(\"description\")\n .environmentBlueprintIdentifier(testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -\u003e getEnvironmentBlueprintResult).applyValue(testGetEnvironmentBlueprint -\u003e testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -\u003e getEnvironmentBlueprintResult.id())))\n .name(\"example-name\")\n .projectIdentifier(testProject.id())\n .domainIdentifier(testDomain.id())\n .userParameters(EnvironmentProfileUserParameterArgs.builder()\n .name(\"consumerGlueDbName\")\n .value(\"value\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n domainExecutionRole:\n type: aws:iam:Role\n name: domain_execution_role\n properties:\n name: example-name\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example-name\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n testDomain:\n type: aws:datazone:Domain\n name: test\n properties:\n name: example-name\n domainExecutionRole: ${domainExecutionRole.arn}\n testSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: test\n properties:\n name: example-name\n testProject:\n type: aws:datazone:Project\n name: test\n properties:\n domainIdentifier: ${testDomain.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example-name\n description: desc\n skipDeletionCheck: true\n testEnvironmentBlueprintConfiguration:\n type: aws:datazone:EnvironmentBlueprintConfiguration\n name: test\n properties:\n domainId: ${testDomain.id}\n environmentBlueprintId: ${testGetEnvironmentBlueprint.id}\n provisioningRoleArn: ${domainExecutionRole.arn}\n enabledRegions:\n - ${testGetRegion.name}\n testEnvironmentProfile:\n type: aws:datazone:EnvironmentProfile\n name: test\n properties:\n awsAccountId: ${test.accountId}\n awsAccountRegion: ${testGetRegion.name}\n description: description\n environmentBlueprintIdentifier: ${testGetEnvironmentBlueprint.id}\n name: example-name\n projectIdentifier: ${testProject.id}\n domainIdentifier: ${testDomain.id}\n userParameters:\n - name: consumerGlueDbName\n value: value\nvariables:\n test:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n testGetRegion:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n testGetEnvironmentBlueprint:\n fn::invoke:\n Function: aws:datazone:getEnvironmentBlueprint\n Arguments:\n domainId: ${testDomain.id}\n name: DefaultDataLake\n managed: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example:\n\n```sh\n$ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678\n```\n", + "properties": { + "awsAccountId": { + "type": "string", + "description": "Id of the AWS account being used.\n" + }, + "awsAccountRegion": { + "type": "string", + "description": "Desired region for environment profile.\n" + }, + "createdAt": { + "type": "string", + "description": "Creation time of environment profile.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of environment profile.\n" + }, + "description": { + "type": "string", + "description": "Description of environment profile.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Domain Identifier for environment profile.\n" + }, + "environmentBlueprintIdentifier": { + "type": "string", + "description": "ID of the blueprint which the environment will be created with.\n" + }, + "name": { + "type": "string", + "description": "Name of the environment profile.\n" + }, + "projectIdentifier": { + "type": "string", + "description": "Project identifier for environment profile.\n\nThe following arguments are optional:\n" + }, + "updatedAt": { + "type": "string", + "description": "Time of last update to environment profile.\n" + }, + "userParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/EnvironmentProfileUserParameter:EnvironmentProfileUserParameter" + }, + "description": "Array of user parameters of the environment profile with the following attributes:\n" + } + }, + "required": [ + "awsAccountId", + "awsAccountRegion", + "createdAt", + "createdBy", + "description", + "domainIdentifier", + "environmentBlueprintIdentifier", + "name", + "projectIdentifier", + "updatedAt" + ], + "inputProperties": { + "awsAccountId": { + "type": "string", + "description": "Id of the AWS account being used.\n" + }, + "awsAccountRegion": { + "type": "string", + "description": "Desired region for environment profile.\n" + }, + "description": { + "type": "string", + "description": "Description of environment profile.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Domain Identifier for environment profile.\n" + }, + "environmentBlueprintIdentifier": { + "type": "string", + "description": "ID of the blueprint which the environment will be created with.\n" + }, + "name": { + "type": "string", + "description": "Name of the environment profile.\n" + }, + "projectIdentifier": { + "type": "string", + "description": "Project identifier for environment profile.\n\nThe following arguments are optional:\n" + }, + "userParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/EnvironmentProfileUserParameter:EnvironmentProfileUserParameter" + }, + "description": "Array of user parameters of the environment profile with the following attributes:\n" + } + }, + "requiredInputs": [ + "awsAccountRegion", + "domainIdentifier", + "environmentBlueprintIdentifier", + "projectIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering EnvironmentProfile resources.\n", + "properties": { + "awsAccountId": { + "type": "string", + "description": "Id of the AWS account being used.\n" + }, + "awsAccountRegion": { + "type": "string", + "description": "Desired region for environment profile.\n" + }, + "createdAt": { + "type": "string", + "description": "Creation time of environment profile.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of environment profile.\n" + }, + "description": { + "type": "string", + "description": "Description of environment profile.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Domain Identifier for environment profile.\n" + }, + "environmentBlueprintIdentifier": { + "type": "string", + "description": "ID of the blueprint which the environment will be created with.\n" + }, + "name": { + "type": "string", + "description": "Name of the environment profile.\n" + }, + "projectIdentifier": { + "type": "string", + "description": "Project identifier for environment profile.\n\nThe following arguments are optional:\n" + }, + "updatedAt": { + "type": "string", + "description": "Time of last update to environment profile.\n" + }, + "userParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/EnvironmentProfileUserParameter:EnvironmentProfileUserParameter" + }, + "description": "Array of user parameters of the environment profile with the following attributes:\n" + } + }, + "type": "object" + } + }, + "aws:datazone/formType:FormType": { + "description": "Resource for managing an AWS DataZone Form Type.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst domainExecutionRole = new aws.iam.Role(\"domain_execution_role\", {\n name: \"example name\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example name\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst test = new aws.datazone.Domain(\"test\", {\n name: \"example name\",\n domainExecutionRole: domainExecutionRole.arn,\n});\nconst testSecurityGroup = new aws.ec2.SecurityGroup(\"test\", {name: \"example name\"});\nconst testProject = new aws.datazone.Project(\"test\", {\n domainIdentifier: test.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example name\",\n description: \"desc\",\n skipDeletionCheck: true,\n});\nconst testFormType = new aws.datazone.FormType(\"test\", {\n description: \"desc\",\n name: \"SageMakerModelFormType\",\n domainIdentifier: test.id,\n owningProjectIdentifier: testProject.id,\n status: \"DISABLED\",\n model: {\n smithy: `\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\n`,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndomain_execution_role = aws.iam.Role(\"domain_execution_role\",\n name=\"example name\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example name\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\ntest = aws.datazone.Domain(\"test\",\n name=\"example name\",\n domain_execution_role=domain_execution_role.arn)\ntest_security_group = aws.ec2.SecurityGroup(\"test\", name=\"example name\")\ntest_project = aws.datazone.Project(\"test\",\n domain_identifier=test.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example name\",\n description=\"desc\",\n skip_deletion_check=True)\ntest_form_type = aws.datazone.FormType(\"test\",\n description=\"desc\",\n name=\"SageMakerModelFormType\",\n domain_identifier=test.id,\n owning_project_identifier=test_project.id,\n status=\"DISABLED\",\n model={\n \"smithy\": \"\"\"\\x09structure SageMakerModelFormType {\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09@amazon.datazone#searchable\n\\x09\\x09\\x09modelName: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09modelArn: String\n\n\\x09\\x09\\x09@required\n\\x09\\x09\\x09creationTime: String\n\\x09\\x09\\x09}\n\"\"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var domainExecutionRole = new Aws.Iam.Role(\"domain_execution_role\", new()\n {\n Name = \"example name\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"datazone.amazonaws.com\",\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example name\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var test = new Aws.DataZone.Domain(\"test\", new()\n {\n Name = \"example name\",\n DomainExecutionRole = domainExecutionRole.Arn,\n });\n\n var testSecurityGroup = new Aws.Ec2.SecurityGroup(\"test\", new()\n {\n Name = \"example name\",\n });\n\n var testProject = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = test.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example name\",\n Description = \"desc\",\n SkipDeletionCheck = true,\n });\n\n var testFormType = new Aws.DataZone.FormType(\"test\", new()\n {\n Description = \"desc\",\n Name = \"SageMakerModelFormType\",\n DomainIdentifier = test.Id,\n OwningProjectIdentifier = testProject.Id,\n Status = \"DISABLED\",\n Model = new Aws.DataZone.Inputs.FormTypeModelArgs\n {\n Smithy = @\"\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\n\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"cloudformation.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\tdomainExecutionRole, err := iam.NewRole(ctx, \"domain_execution_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example name\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\ttest, err := datazone.NewDomain(ctx, \"test\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tDomainExecutionRole: domainExecutionRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"test\", \u0026ec2.SecurityGroupArgs{\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestProject, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example name\"),\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datazone.NewFormType(ctx, \"test\", \u0026datazone.FormTypeArgs{\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tName: pulumi.String(\"SageMakerModelFormType\"),\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tOwningProjectIdentifier: testProject.ID(),\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tModel: \u0026datazone.FormTypeModelArgs{\n\t\t\t\tSmithy: pulumi.String(`\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\n`),\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.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.datazone.FormType;\nimport com.pulumi.aws.datazone.FormTypeArgs;\nimport com.pulumi.aws.datazone.inputs.FormTypeModelArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 domainExecutionRole = new Role(\"domainExecutionRole\", RoleArgs.builder()\n .name(\"example name\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example name\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var test = new Domain(\"test\", DomainArgs.builder()\n .name(\"example name\")\n .domainExecutionRole(domainExecutionRole.arn())\n .build());\n\n var testSecurityGroup = new SecurityGroup(\"testSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example name\")\n .build());\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .domainIdentifier(test.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example name\")\n .description(\"desc\")\n .skipDeletionCheck(true)\n .build());\n\n var testFormType = new FormType(\"testFormType\", FormTypeArgs.builder()\n .description(\"desc\")\n .name(\"SageMakerModelFormType\")\n .domainIdentifier(test.id())\n .owningProjectIdentifier(testProject.id())\n .status(\"DISABLED\")\n .model(FormTypeModelArgs.builder()\n .smithy(\"\"\"\n\tstructure SageMakerModelFormType {\n\t\t\t@required\n\t\t\t@amazon.datazone#searchable\n\t\t\tmodelName: String\n\n\t\t\t@required\n\t\t\tmodelArn: String\n\n\t\t\t@required\n\t\t\tcreationTime: String\n\t\t\t}\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n domainExecutionRole:\n type: aws:iam:Role\n name: domain_execution_role\n properties:\n name: example name\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example name\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n test:\n type: aws:datazone:Domain\n properties:\n name: example name\n domainExecutionRole: ${domainExecutionRole.arn}\n testSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: test\n properties:\n name: example name\n testProject:\n type: aws:datazone:Project\n name: test\n properties:\n domainIdentifier: ${test.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example name\n description: desc\n skipDeletionCheck: true\n testFormType:\n type: aws:datazone:FormType\n name: test\n properties:\n description: desc\n name: SageMakerModelFormType\n domainIdentifier: ${test.id}\n owningProjectIdentifier: ${testProject.id}\n status: DISABLED\n model:\n smithy: |\n \tstructure SageMakerModelFormType {\n \t\t\t@required\n \t\t\t@amazon.datazone#searchable\n \t\t\tmodelName: String\n\n \t\t\t@required\n \t\t\tmodelArn: String\n\n \t\t\t@required\n \t\t\tcreationTime: String\n \t\t\t}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example:\n\n```sh\n$ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision\n```\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Creation time of the Form Type.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of the Form Type.\n" + }, + "description": { + "type": "string", + "description": "Description of form type. Must have a length of between 1 and 2048 characters.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of the domain.\n" + }, + "imports": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/FormTypeImport:FormTypeImport" + } + }, + "model": { + "$ref": "#/types/aws:datazone/FormTypeModel:FormTypeModel", + "description": "Object of the model of the form type that contains the following attributes.\n" + }, + "name": { + "type": "string", + "description": "Name of the form type. Must be the name of the structure in smithy document.\n" + }, + "originDomainId": { + "type": "string", + "description": "Origin domain id of the Form Type.\n" + }, + "originProjectId": { + "type": "string", + "description": "Origin project id of the Form Type.\n" + }, + "owningProjectIdentifier": { + "type": "string", + "description": "Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}.\n" + }, + "revision": { + "type": "string", + "description": "Revision of the Form Type.\n" + }, + "status": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/FormTypeTimeouts:FormTypeTimeouts" + } + }, + "required": [ + "createdAt", + "createdBy", + "domainIdentifier", + "imports", + "name", + "originDomainId", + "originProjectId", + "owningProjectIdentifier", + "revision", + "status" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description of form type. Must have a length of between 1 and 2048 characters.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of the domain.\n" + }, + "model": { + "$ref": "#/types/aws:datazone/FormTypeModel:FormTypeModel", + "description": "Object of the model of the form type that contains the following attributes.\n" + }, + "name": { + "type": "string", + "description": "Name of the form type. Must be the name of the structure in smithy document.\n" + }, + "owningProjectIdentifier": { + "type": "string", + "description": "Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}.\n" + }, + "status": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/FormTypeTimeouts:FormTypeTimeouts" + } + }, + "requiredInputs": [ + "domainIdentifier", + "owningProjectIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering FormType resources.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Creation time of the Form Type.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of the Form Type.\n" + }, + "description": { + "type": "string", + "description": "Description of form type. Must have a length of between 1 and 2048 characters.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of the domain.\n" + }, + "imports": { + "type": "array", + "items": { + "$ref": "#/types/aws:datazone/FormTypeImport:FormTypeImport" + } + }, + "model": { + "$ref": "#/types/aws:datazone/FormTypeModel:FormTypeModel", + "description": "Object of the model of the form type that contains the following attributes.\n" + }, + "name": { + "type": "string", + "description": "Name of the form type. Must be the name of the structure in smithy document.\n" + }, + "originDomainId": { + "type": "string", + "description": "Origin domain id of the Form Type.\n" + }, + "originProjectId": { + "type": "string", + "description": "Origin project id of the Form Type.\n" + }, + "owningProjectIdentifier": { + "type": "string", + "description": "Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}.\n" + }, + "revision": { + "type": "string", + "description": "Revision of the Form Type.\n" + }, + "status": { + "type": "string" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/FormTypeTimeouts:FormTypeTimeouts" + } + }, + "type": "object" + } + }, "aws:datazone/glossary:Glossary": { "description": "Resource for managing an AWS DataZone Glossary.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst domainExecutionRole = new aws.iam.Role(\"domain_execution_role\", {\n name: \"example_name\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example_name\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst test = new aws.datazone.Domain(\"test\", {\n name: \"example_name\",\n domainExecutionRole: domainExecutionRole.arn,\n});\nconst testSecurityGroup = new aws.ec2.SecurityGroup(\"test\", {name: \"example_name\"});\nconst testProject = new aws.datazone.Project(\"test\", {\n domainIdentifier: test.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example_name\",\n description: \"desc\",\n skipDeletionCheck: true,\n});\nconst testGlossary = new aws.datazone.Glossary(\"test\", {\n description: \"description\",\n name: \"example_name\",\n owningProjectIdentifier: testProject.id,\n status: \"DISABLED\",\n domainIdentifier: testProject.domainIdentifier,\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ndomain_execution_role = aws.iam.Role(\"domain_execution_role\",\n name=\"example_name\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example_name\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\ntest = aws.datazone.Domain(\"test\",\n name=\"example_name\",\n domain_execution_role=domain_execution_role.arn)\ntest_security_group = aws.ec2.SecurityGroup(\"test\", name=\"example_name\")\ntest_project = aws.datazone.Project(\"test\",\n domain_identifier=test.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example_name\",\n description=\"desc\",\n skip_deletion_check=True)\ntest_glossary = aws.datazone.Glossary(\"test\",\n description=\"description\",\n name=\"example_name\",\n owning_project_identifier=test_project.id,\n status=\"DISABLED\",\n domain_identifier=test_project.domain_identifier)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var domainExecutionRole = new Aws.Iam.Role(\"domain_execution_role\", new()\n {\n Name = \"example_name\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"datazone.amazonaws.com\",\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example_name\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var test = new Aws.DataZone.Domain(\"test\", new()\n {\n Name = \"example_name\",\n DomainExecutionRole = domainExecutionRole.Arn,\n });\n\n var testSecurityGroup = new Aws.Ec2.SecurityGroup(\"test\", new()\n {\n Name = \"example_name\",\n });\n\n var testProject = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = test.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example_name\",\n Description = \"desc\",\n SkipDeletionCheck = true,\n });\n\n var testGlossary = new Aws.DataZone.Glossary(\"test\", new()\n {\n Description = \"description\",\n Name = \"example_name\",\n OwningProjectIdentifier = testProject.Id,\n Status = \"DISABLED\",\n DomainIdentifier = testProject.DomainIdentifier,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"cloudformation.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\tdomainExecutionRole, err := iam.NewRole(ctx, \"domain_execution_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\ttest, err := datazone.NewDomain(ctx, \"test\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tDomainExecutionRole: domainExecutionRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"test\", \u0026ec2.SecurityGroupArgs{\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestProject, err := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: test.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tDescription: pulumi.String(\"desc\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datazone.NewGlossary(ctx, \"test\", \u0026datazone.GlossaryArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tOwningProjectIdentifier: testProject.ID(),\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tDomainIdentifier: testProject.DomainIdentifier,\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.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.datazone.Glossary;\nimport com.pulumi.aws.datazone.GlossaryArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 domainExecutionRole = new Role(\"domainExecutionRole\", RoleArgs.builder()\n .name(\"example_name\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example_name\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var test = new Domain(\"test\", DomainArgs.builder()\n .name(\"example_name\")\n .domainExecutionRole(domainExecutionRole.arn())\n .build());\n\n var testSecurityGroup = new SecurityGroup(\"testSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example_name\")\n .build());\n\n var testProject = new Project(\"testProject\", ProjectArgs.builder()\n .domainIdentifier(test.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example_name\")\n .description(\"desc\")\n .skipDeletionCheck(true)\n .build());\n\n var testGlossary = new Glossary(\"testGlossary\", GlossaryArgs.builder()\n .description(\"description\")\n .name(\"example_name\")\n .owningProjectIdentifier(testProject.id())\n .status(\"DISABLED\")\n .domainIdentifier(testProject.domainIdentifier())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n domainExecutionRole:\n type: aws:iam:Role\n name: domain_execution_role\n properties:\n name: example_name\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example_name\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n test:\n type: aws:datazone:Domain\n properties:\n name: example_name\n domainExecutionRole: ${domainExecutionRole.arn}\n testSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: test\n properties:\n name: example_name\n testProject:\n type: aws:datazone:Project\n name: test\n properties:\n domainIdentifier: ${test.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example_name\n description: desc\n skipDeletionCheck: true\n testGlossary:\n type: aws:datazone:Glossary\n name: test\n properties:\n description: description\n name: example_name\n owningProjectIdentifier: ${testProject.id}\n status: DISABLED\n domainIdentifier: ${testProject.domainIdentifier}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.datazone.Glossary(\"test\", {\n description: \"description\",\n name: \"example_name\",\n owningProjectIdentifier: testAwsDatazoneProject.id,\n status: \"DISABLED\",\n domainIdentifier: testAwsDatazoneProject.domainIdentifier,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.datazone.Glossary(\"test\",\n description=\"description\",\n name=\"example_name\",\n owning_project_identifier=test_aws_datazone_project[\"id\"],\n status=\"DISABLED\",\n domain_identifier=test_aws_datazone_project[\"domainIdentifier\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.DataZone.Glossary(\"test\", new()\n {\n Description = \"description\",\n Name = \"example_name\",\n OwningProjectIdentifier = testAwsDatazoneProject.Id,\n Status = \"DISABLED\",\n DomainIdentifier = testAwsDatazoneProject.DomainIdentifier,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\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 := datazone.NewGlossary(ctx, \"test\", \u0026datazone.GlossaryArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tOwningProjectIdentifier: pulumi.Any(testAwsDatazoneProject.Id),\n\t\t\tStatus: pulumi.String(\"DISABLED\"),\n\t\t\tDomainIdentifier: pulumi.Any(testAwsDatazoneProject.DomainIdentifier),\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.aws.datazone.Glossary;\nimport com.pulumi.aws.datazone.GlossaryArgs;\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 test = new Glossary(\"test\", GlossaryArgs.builder()\n .description(\"description\")\n .name(\"example_name\")\n .owningProjectIdentifier(testAwsDatazoneProject.id())\n .status(\"DISABLED\")\n .domainIdentifier(testAwsDatazoneProject.domainIdentifier())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:datazone:Glossary\n properties:\n description: description\n name: example_name\n owningProjectIdentifier: ${testAwsDatazoneProject.id}\n status: DISABLED\n domainIdentifier: ${testAwsDatazoneProject.domainIdentifier}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Glossary using the import Datazone Glossary using a comma-delimited string combining the domain id, glossary id, and the id of the project it's under. For example:\n\n```sh\n$ pulumi import aws:datazone/glossary:Glossary example domain-id,glossary-id,owning-project-identifier\n```\n", "properties": { @@ -212339,6 +213418,137 @@ "type": "object" } }, + "aws:datazone/glossaryTerm:GlossaryTerm": { + "description": "Resource for managing an AWS DataZone Glossary Term.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {\n name: \"example\",\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"datazone.amazonaws.com\",\n },\n },\n {\n Action: [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n Effect: \"Allow\",\n Principal: {\n Service: \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inlinePolicies: [{\n name: \"example\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n }],\n});\nconst exampleDomain = new aws.datazone.Domain(\"example\", {\n name: \"example_name\",\n domainExecutionRole: example.arn,\n});\nconst exampleSecurityGroup = new aws.ec2.SecurityGroup(\"example\", {name: \"example_name\"});\nconst exampleProject = new aws.datazone.Project(\"example\", {\n domainIdentifier: exampleDomain.id,\n glossaryTerms: [\"2N8w6XJCwZf\"],\n name: \"example\",\n skipDeletionCheck: true,\n});\nconst exampleGlossary = new aws.datazone.Glossary(\"example\", {\n description: \"description\",\n name: \"example\",\n owningProjectIdentifier: exampleProject.id,\n status: \"ENABLED\",\n domainIdentifier: exampleProject.domainIdentifier,\n});\nconst exampleGlossaryTerm = new aws.datazone.GlossaryTerm(\"example\", {\n domainIdentifier: exampleDomain.id,\n glossaryIdentifier: exampleGlossary.id,\n name: \"example\",\n status: \"ENABLED\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n name=\"example\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"datazone.amazonaws.com\",\n },\n },\n {\n \"Action\": [\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n ],\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"cloudformation.amazonaws.com\",\n },\n },\n ],\n }),\n inline_policies=[{\n \"name\": \"example\",\n \"policy\": json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n }])\nexample_domain = aws.datazone.Domain(\"example\",\n name=\"example_name\",\n domain_execution_role=example.arn)\nexample_security_group = aws.ec2.SecurityGroup(\"example\", name=\"example_name\")\nexample_project = aws.datazone.Project(\"example\",\n domain_identifier=example_domain.id,\n glossary_terms=[\"2N8w6XJCwZf\"],\n name=\"example\",\n skip_deletion_check=True)\nexample_glossary = aws.datazone.Glossary(\"example\",\n description=\"description\",\n name=\"example\",\n owning_project_identifier=example_project.id,\n status=\"ENABLED\",\n domain_identifier=example_project.domain_identifier)\nexample_glossary_term = aws.datazone.GlossaryTerm(\"example\",\n domain_identifier=example_domain.id,\n glossary_identifier=example_glossary.id,\n name=\"example\",\n status=\"ENABLED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"example\",\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"datazone.amazonaws.com\",\n },\n },\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"sts:AssumeRole\",\n \"sts:TagSession\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"cloudformation.amazonaws.com\",\n },\n },\n },\n }),\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"example\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"datazone:*\",\n \"ram:*\",\n \"sso:*\",\n \"kms:*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n },\n });\n\n var exampleDomain = new Aws.DataZone.Domain(\"example\", new()\n {\n Name = \"example_name\",\n DomainExecutionRole = example.Arn,\n });\n\n var exampleSecurityGroup = new Aws.Ec2.SecurityGroup(\"example\", new()\n {\n Name = \"example_name\",\n });\n\n var exampleProject = new Aws.DataZone.Project(\"example\", new()\n {\n DomainIdentifier = exampleDomain.Id,\n GlossaryTerms = new[]\n {\n \"2N8w6XJCwZf\",\n },\n Name = \"example\",\n SkipDeletionCheck = true,\n });\n\n var exampleGlossary = new Aws.DataZone.Glossary(\"example\", new()\n {\n Description = \"description\",\n Name = \"example\",\n OwningProjectIdentifier = exampleProject.Id,\n Status = \"ENABLED\",\n DomainIdentifier = exampleProject.DomainIdentifier,\n });\n\n var exampleGlossaryTerm = new Aws.DataZone.GlossaryTerm(\"example\", new()\n {\n DomainIdentifier = exampleDomain.Id,\n GlossaryIdentifier = exampleGlossary.Id,\n Name = \"example\",\n Status = \"ENABLED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"datazone.amazonaws.com\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t\t\"sts:TagSession\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"cloudformation.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"datazone:*\",\n\t\t\t\t\t\t\"ram:*\",\n\t\t\t\t\t\t\"sso:*\",\n\t\t\t\t\t\t\"kms:*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\n\t\t\t\t\tPolicy: pulumi.String(json1),\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\texampleDomain, err := datazone.NewDomain(ctx, \"example\", \u0026datazone.DomainArgs{\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t\tDomainExecutionRole: example.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroup(ctx, \"example\", \u0026ec2.SecurityGroupArgs{\n\t\t\tName: pulumi.String(\"example_name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleProject, err := datazone.NewProject(ctx, \"example\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: exampleDomain.ID(),\n\t\t\tGlossaryTerms: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"2N8w6XJCwZf\"),\n\t\t\t},\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSkipDeletionCheck: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGlossary, err := datazone.NewGlossary(ctx, \"example\", \u0026datazone.GlossaryArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tOwningProjectIdentifier: exampleProject.ID(),\n\t\t\tStatus: pulumi.String(\"ENABLED\"),\n\t\t\tDomainIdentifier: exampleProject.DomainIdentifier,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datazone.NewGlossaryTerm(ctx, \"example\", \u0026datazone.GlossaryTermArgs{\n\t\t\tDomainIdentifier: exampleDomain.ID(),\n\t\t\tGlossaryIdentifier: exampleGlossary.ID(),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tStatus: pulumi.String(\"ENABLED\"),\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.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport com.pulumi.aws.datazone.Domain;\nimport com.pulumi.aws.datazone.DomainArgs;\nimport com.pulumi.aws.ec2.SecurityGroup;\nimport com.pulumi.aws.ec2.SecurityGroupArgs;\nimport com.pulumi.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\nimport com.pulumi.aws.datazone.Glossary;\nimport com.pulumi.aws.datazone.GlossaryArgs;\nimport com.pulumi.aws.datazone.GlossaryTerm;\nimport com.pulumi.aws.datazone.GlossaryTermArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 example = new Role(\"example\", RoleArgs.builder()\n .name(\"example\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(\n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"datazone.amazonaws.com\")\n ))\n ), \n jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"sts:AssumeRole\", \n \"sts:TagSession\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"cloudformation.amazonaws.com\")\n ))\n )\n ))\n )))\n .inlinePolicies(RoleInlinePolicyArgs.builder()\n .name(\"example\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"datazone:*\", \n \"ram:*\", \n \"sso:*\", \n \"kms:*\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build())\n .build());\n\n var exampleDomain = new Domain(\"exampleDomain\", DomainArgs.builder()\n .name(\"example_name\")\n .domainExecutionRole(example.arn())\n .build());\n\n var exampleSecurityGroup = new SecurityGroup(\"exampleSecurityGroup\", SecurityGroupArgs.builder()\n .name(\"example_name\")\n .build());\n\n var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n .domainIdentifier(exampleDomain.id())\n .glossaryTerms(\"2N8w6XJCwZf\")\n .name(\"example\")\n .skipDeletionCheck(true)\n .build());\n\n var exampleGlossary = new Glossary(\"exampleGlossary\", GlossaryArgs.builder()\n .description(\"description\")\n .name(\"example\")\n .owningProjectIdentifier(exampleProject.id())\n .status(\"ENABLED\")\n .domainIdentifier(exampleProject.domainIdentifier())\n .build());\n\n var exampleGlossaryTerm = new GlossaryTerm(\"exampleGlossaryTerm\", GlossaryTermArgs.builder()\n .domainIdentifier(exampleDomain.id())\n .glossaryIdentifier(exampleGlossary.id())\n .name(\"example\")\n .status(\"ENABLED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: example\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: datazone.amazonaws.com\n - Action:\n - sts:AssumeRole\n - sts:TagSession\n Effect: Allow\n Principal:\n Service: cloudformation.amazonaws.com\n inlinePolicies:\n - name: example\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - datazone:*\n - ram:*\n - sso:*\n - kms:*\n Effect: Allow\n Resource: '*'\n exampleDomain:\n type: aws:datazone:Domain\n name: example\n properties:\n name: example_name\n domainExecutionRole: ${example.arn}\n exampleSecurityGroup:\n type: aws:ec2:SecurityGroup\n name: example\n properties:\n name: example_name\n exampleProject:\n type: aws:datazone:Project\n name: example\n properties:\n domainIdentifier: ${exampleDomain.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: example\n skipDeletionCheck: true\n exampleGlossary:\n type: aws:datazone:Glossary\n name: example\n properties:\n description: description\n name: example\n owningProjectIdentifier: ${exampleProject.id}\n status: ENABLED\n domainIdentifier: ${exampleProject.domainIdentifier}\n exampleGlossaryTerm:\n type: aws:datazone:GlossaryTerm\n name: example\n properties:\n domainIdentifier: ${exampleDomain.id}\n glossaryIdentifier: ${exampleGlossary.id}\n name: example\n status: ENABLED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example:\n\n```sh\n$ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id\n```\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Time of glossary term creation.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of glossary term.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain.\n" + }, + "glossaryIdentifier": { + "type": "string", + "description": "Identifier of glossary.\n" + }, + "longDescription": { + "type": "string", + "description": "Long description of entry.\n" + }, + "name": { + "type": "string", + "description": "Name of glossary term.\n\nThe following arguments are optional:\n" + }, + "shortDescription": { + "type": "string", + "description": "Short description of entry.\n" + }, + "status": { + "type": "string", + "description": "If glossary term is ENABLED or DISABLED.\n" + }, + "termRelations": { + "$ref": "#/types/aws:datazone/GlossaryTermTermRelations:GlossaryTermTermRelations", + "description": "Object classifying the term relations through the following attributes:\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/GlossaryTermTimeouts:GlossaryTermTimeouts" + } + }, + "required": [ + "createdAt", + "createdBy", + "glossaryIdentifier", + "name" + ], + "inputProperties": { + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain.\n" + }, + "glossaryIdentifier": { + "type": "string", + "description": "Identifier of glossary.\n" + }, + "longDescription": { + "type": "string", + "description": "Long description of entry.\n" + }, + "name": { + "type": "string", + "description": "Name of glossary term.\n\nThe following arguments are optional:\n" + }, + "shortDescription": { + "type": "string", + "description": "Short description of entry.\n" + }, + "status": { + "type": "string", + "description": "If glossary term is ENABLED or DISABLED.\n" + }, + "termRelations": { + "$ref": "#/types/aws:datazone/GlossaryTermTermRelations:GlossaryTermTermRelations", + "description": "Object classifying the term relations through the following attributes:\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/GlossaryTermTimeouts:GlossaryTermTimeouts" + } + }, + "requiredInputs": [ + "glossaryIdentifier" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering GlossaryTerm resources.\n", + "properties": { + "createdAt": { + "type": "string", + "description": "Time of glossary term creation.\n" + }, + "createdBy": { + "type": "string", + "description": "Creator of glossary term.\n" + }, + "domainIdentifier": { + "type": "string", + "description": "Identifier of domain.\n" + }, + "glossaryIdentifier": { + "type": "string", + "description": "Identifier of glossary.\n" + }, + "longDescription": { + "type": "string", + "description": "Long description of entry.\n" + }, + "name": { + "type": "string", + "description": "Name of glossary term.\n\nThe following arguments are optional:\n" + }, + "shortDescription": { + "type": "string", + "description": "Short description of entry.\n" + }, + "status": { + "type": "string", + "description": "If glossary term is ENABLED or DISABLED.\n" + }, + "termRelations": { + "$ref": "#/types/aws:datazone/GlossaryTermTermRelations:GlossaryTermTermRelations", + "description": "Object classifying the term relations through the following attributes:\n" + }, + "timeouts": { + "$ref": "#/types/aws:datazone/GlossaryTermTimeouts:GlossaryTermTimeouts" + } + }, + "type": "object" + } + }, "aws:datazone/project:Project": { "description": "Resource for managing an AWS DataZone Project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n test:\n type: aws:datazone:Project\n properties:\n domainId: ${testAwsDatazoneDomain.id}\n glossaryTerms:\n - 2N8w6XJCwZf\n name: name\n description: desc\n skipDeletionCheck: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.datazone.Project(\"test\", {\n domainIdentifier: testAwsDatazoneDomain.id,\n name: \"name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.datazone.Project(\"test\",\n domain_identifier=test_aws_datazone_domain[\"id\"],\n name=\"name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.DataZone.Project(\"test\", new()\n {\n DomainIdentifier = testAwsDatazoneDomain.Id,\n Name = \"name\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone\"\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 := datazone.NewProject(ctx, \"test\", \u0026datazone.ProjectArgs{\n\t\t\tDomainIdentifier: pulumi.Any(testAwsDatazoneDomain.Id),\n\t\t\tName: pulumi.String(\"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.aws.datazone.Project;\nimport com.pulumi.aws.datazone.ProjectArgs;\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 test = new Project(\"test\", ProjectArgs.builder()\n .domainIdentifier(testAwsDatazoneDomain.id())\n .name(\"name\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:datazone:Project\n properties:\n domainIdentifier: ${testAwsDatazoneDomain.id}\n name: name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DataZone Project using the `id`. For example:\n\n```sh\n$ pulumi import aws:datazone/project:Project example projectid123\n```\n", "properties": { @@ -285378,7 +286588,7 @@ } }, "aws:lb/listener:Listener": { - "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"443\")\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.Arn),\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.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(\"443\")\n .protocol(\"TLS\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.Id),\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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(80)\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_arn\": \"...\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", + "description": "Provides a Load Balancer Listener resource.\n\n\u003e **Note:** `aws.alb.Listener` is known as `aws.lb.Listener`. The functionality is identical.\n\n## Example Usage\n\n### Forward Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 443,\n protocol: \"HTTPS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=443,\n protocol=\"HTTPS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 443,\n Protocol = \"HTTPS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"443\")\n .protocol(\"HTTPS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '443'\n protocol: HTTPS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo a NLB:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEndAwsLb.arn,\n port: 443,\n protocol: \"TLS\",\n sslPolicy: \"ELBSecurityPolicy-2016-08\",\n certificateArn: \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpnPolicy: \"HTTP2Preferred\",\n defaultActions: [{\n type: \"forward\",\n targetGroupArn: frontEndAwsLbTargetGroup.arn,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end_aws_lb[\"arn\"],\n port=443,\n protocol=\"TLS\",\n ssl_policy=\"ELBSecurityPolicy-2016-08\",\n certificate_arn=\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n alpn_policy=\"HTTP2Preferred\",\n default_actions=[{\n \"type\": \"forward\",\n \"target_group_arn\": front_end_aws_lb_target_group[\"arn\"],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEndAwsLb.Arn,\n Port = 443,\n Protocol = \"TLS\",\n SslPolicy = \"ELBSecurityPolicy-2016-08\",\n CertificateArn = \"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\",\n AlpnPolicy = \"HTTP2Preferred\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndAwsLbTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\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 := lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn),\n\t\t\tPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"TLS\"),\n\t\t\tSslPolicy: pulumi.String(\"ELBSecurityPolicy-2016-08\"),\n\t\t\tCertificateArn: pulumi.String(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\"),\n\t\t\tAlpnPolicy: pulumi.String(\"HTTP2Preferred\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: pulumi.Any(frontEndAwsLbTargetGroup.Arn),\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.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 frontEnd = new Listener(\"frontEnd\", ListenerArgs.builder()\n .loadBalancerArn(frontEndAwsLb.arn())\n .port(\"443\")\n .protocol(\"TLS\")\n .sslPolicy(\"ELBSecurityPolicy-2016-08\")\n .certificateArn(\"arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\")\n .alpnPolicy(\"HTTP2Preferred\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndAwsLbTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEndAwsLb.arn}\n port: '443'\n protocol: TLS\n sslPolicy: ELBSecurityPolicy-2016-08\n certificateArn: arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4\n alpnPolicy: HTTP2Preferred\n defaultActions:\n - type: forward\n targetGroupArn: ${frontEndAwsLbTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Redirect Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"redirect\",\n redirect: {\n port: \"443\",\n protocol: \"HTTPS\",\n statusCode: \"HTTP_301\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"redirect\",\n \"redirect\": {\n \"port\": \"443\",\n \"protocol\": \"HTTPS\",\n \"status_code\": \"HTTP_301\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"redirect\",\n Redirect = new Aws.LB.Inputs.ListenerDefaultActionRedirectArgs\n {\n Port = \"443\",\n Protocol = \"HTTPS\",\n StatusCode = \"HTTP_301\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\tRedirect: \u0026lb.ListenerDefaultActionRedirectArgs{\n\t\t\t\t\t\tPort: pulumi.String(\"443\"),\n\t\t\t\t\t\tProtocol: pulumi.String(\"HTTPS\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"HTTP_301\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionRedirectArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"redirect\")\n .redirect(ListenerDefaultActionRedirectArgs.builder()\n .port(\"443\")\n .protocol(\"HTTPS\")\n .statusCode(\"HTTP_301\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: redirect\n redirect:\n port: '443'\n protocol: HTTPS\n statusCode: HTTP_301\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Fixed-response Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [{\n type: \"fixed-response\",\n fixedResponse: {\n contentType: \"text/plain\",\n messageBody: \"Fixed response content\",\n statusCode: \"200\",\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[{\n \"type\": \"fixed-response\",\n \"fixed_response\": {\n \"content_type\": \"text/plain\",\n \"message_body\": \"Fixed response content\",\n \"status_code\": \"200\",\n },\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"fixed-response\",\n FixedResponse = new Aws.LB.Inputs.ListenerDefaultActionFixedResponseArgs\n {\n ContentType = \"text/plain\",\n MessageBody = \"Fixed response content\",\n StatusCode = \"200\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"fixed-response\"),\n\t\t\t\t\tFixedResponse: \u0026lb.ListenerDefaultActionFixedResponseArgs{\n\t\t\t\t\t\tContentType: pulumi.String(\"text/plain\"),\n\t\t\t\t\t\tMessageBody: pulumi.String(\"Fixed response content\"),\n\t\t\t\t\t\tStatusCode: pulumi.String(\"200\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionFixedResponseArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions(ListenerDefaultActionArgs.builder()\n .type(\"fixed-response\")\n .fixedResponse(ListenerDefaultActionFixedResponseArgs.builder()\n .contentType(\"text/plain\")\n .messageBody(\"Fixed response content\")\n .statusCode(\"200\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: fixed-response\n fixedResponse:\n contentType: text/plain\n messageBody: Fixed response content\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-cognito Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst pool = new aws.cognito.UserPool(\"pool\", {});\nconst client = new aws.cognito.UserPoolClient(\"client\", {});\nconst domain = new aws.cognito.UserPoolDomain(\"domain\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-cognito\",\n authenticateCognito: {\n userPoolArn: pool.arn,\n userPoolClientId: client.id,\n userPoolDomain: domain.domain,\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\npool = aws.cognito.UserPool(\"pool\")\nclient = aws.cognito.UserPoolClient(\"client\")\ndomain = aws.cognito.UserPoolDomain(\"domain\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-cognito\",\n \"authenticate_cognito\": {\n \"user_pool_arn\": pool.arn,\n \"user_pool_client_id\": client.id,\n \"user_pool_domain\": domain.domain,\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var pool = new Aws.Cognito.UserPool(\"pool\");\n\n var client = new Aws.Cognito.UserPoolClient(\"client\");\n\n var domain = new Aws.Cognito.UserPoolDomain(\"domain\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-cognito\",\n AuthenticateCognito = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateCognitoArgs\n {\n UserPoolArn = pool.Arn,\n UserPoolClientId = client.Id,\n UserPoolDomain = domain.Domain,\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cognito\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cognito.NewUserPool(ctx, \"pool\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tclient, err := cognito.NewUserPoolClient(ctx, \"client\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdomain, err := cognito.NewUserPoolDomain(ctx, \"domain\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-cognito\"),\n\t\t\t\t\tAuthenticateCognito: \u0026lb.ListenerDefaultActionAuthenticateCognitoArgs{\n\t\t\t\t\t\tUserPoolArn: pool.Arn,\n\t\t\t\t\t\tUserPoolClientId: client.ID(),\n\t\t\t\t\t\tUserPoolDomain: domain.Domain,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.cognito.UserPool;\nimport com.pulumi.aws.cognito.UserPoolClient;\nimport com.pulumi.aws.cognito.UserPoolDomain;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateCognitoArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var pool = new UserPool(\"pool\");\n\n var client = new UserPoolClient(\"client\");\n\n var domain = new UserPoolDomain(\"domain\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-cognito\")\n .authenticateCognito(ListenerDefaultActionAuthenticateCognitoArgs.builder()\n .userPoolArn(pool.arn())\n .userPoolClientId(client.id())\n .userPoolDomain(domain.domain())\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n pool:\n type: aws:cognito:UserPool\n client:\n type: aws:cognito:UserPoolClient\n domain:\n type: aws:cognito:UserPoolDomain\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-cognito\n authenticateCognito:\n userPoolArn: ${pool.arn}\n userPoolClientId: ${client.id}\n userPoolDomain: ${domain.domain}\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authenticate-OIDC Action\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst frontEnd = new aws.lb.LoadBalancer(\"front_end\", {});\nconst frontEndTargetGroup = new aws.lb.TargetGroup(\"front_end\", {});\nconst frontEndListener = new aws.lb.Listener(\"front_end\", {\n loadBalancerArn: frontEnd.arn,\n port: 80,\n protocol: \"HTTP\",\n defaultActions: [\n {\n type: \"authenticate-oidc\",\n authenticateOidc: {\n authorizationEndpoint: \"https://example.com/authorization_endpoint\",\n clientId: \"client_id\",\n clientSecret: \"client_secret\",\n issuer: \"https://example.com\",\n tokenEndpoint: \"https://example.com/token_endpoint\",\n userInfoEndpoint: \"https://example.com/user_info_endpoint\",\n },\n },\n {\n type: \"forward\",\n targetGroupArn: frontEndTargetGroup.arn,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfront_end = aws.lb.LoadBalancer(\"front_end\")\nfront_end_target_group = aws.lb.TargetGroup(\"front_end\")\nfront_end_listener = aws.lb.Listener(\"front_end\",\n load_balancer_arn=front_end.arn,\n port=80,\n protocol=\"HTTP\",\n default_actions=[\n {\n \"type\": \"authenticate-oidc\",\n \"authenticate_oidc\": {\n \"authorization_endpoint\": \"https://example.com/authorization_endpoint\",\n \"client_id\": \"client_id\",\n \"client_secret\": \"client_secret\",\n \"issuer\": \"https://example.com\",\n \"token_endpoint\": \"https://example.com/token_endpoint\",\n \"user_info_endpoint\": \"https://example.com/user_info_endpoint\",\n },\n },\n {\n \"type\": \"forward\",\n \"target_group_arn\": front_end_target_group.arn,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var frontEnd = new Aws.LB.LoadBalancer(\"front_end\");\n\n var frontEndTargetGroup = new Aws.LB.TargetGroup(\"front_end\");\n\n var frontEndListener = new Aws.LB.Listener(\"front_end\", new()\n {\n LoadBalancerArn = frontEnd.Arn,\n Port = 80,\n Protocol = \"HTTP\",\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"authenticate-oidc\",\n AuthenticateOidc = new Aws.LB.Inputs.ListenerDefaultActionAuthenticateOidcArgs\n {\n AuthorizationEndpoint = \"https://example.com/authorization_endpoint\",\n ClientId = \"client_id\",\n ClientSecret = \"client_secret\",\n Issuer = \"https://example.com\",\n TokenEndpoint = \"https://example.com/token_endpoint\",\n UserInfoEndpoint = \"https://example.com/user_info_endpoint\",\n },\n },\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n Type = \"forward\",\n TargetGroupArn = frontEndTargetGroup.Arn,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfrontEnd, err := lb.NewLoadBalancer(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontEndTargetGroup, err := lb.NewTargetGroup(ctx, \"front_end\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"front_end\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: frontEnd.Arn,\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"authenticate-oidc\"),\n\t\t\t\t\tAuthenticateOidc: \u0026lb.ListenerDefaultActionAuthenticateOidcArgs{\n\t\t\t\t\t\tAuthorizationEndpoint: pulumi.String(\"https://example.com/authorization_endpoint\"),\n\t\t\t\t\t\tClientId: pulumi.String(\"client_id\"),\n\t\t\t\t\t\tClientSecret: pulumi.String(\"client_secret\"),\n\t\t\t\t\t\tIssuer: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\tTokenEndpoint: pulumi.String(\"https://example.com/token_endpoint\"),\n\t\t\t\t\t\tUserInfoEndpoint: pulumi.String(\"https://example.com/user_info_endpoint\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t\tTargetGroupArn: frontEndTargetGroup.Arn,\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionAuthenticateOidcArgs;\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 frontEnd = new LoadBalancer(\"frontEnd\");\n\n var frontEndTargetGroup = new TargetGroup(\"frontEndTargetGroup\");\n\n var frontEndListener = new Listener(\"frontEndListener\", ListenerArgs.builder()\n .loadBalancerArn(frontEnd.arn())\n .port(\"80\")\n .protocol(\"HTTP\")\n .defaultActions( \n ListenerDefaultActionArgs.builder()\n .type(\"authenticate-oidc\")\n .authenticateOidc(ListenerDefaultActionAuthenticateOidcArgs.builder()\n .authorizationEndpoint(\"https://example.com/authorization_endpoint\")\n .clientId(\"client_id\")\n .clientSecret(\"client_secret\")\n .issuer(\"https://example.com\")\n .tokenEndpoint(\"https://example.com/token_endpoint\")\n .userInfoEndpoint(\"https://example.com/user_info_endpoint\")\n .build())\n .build(),\n ListenerDefaultActionArgs.builder()\n .type(\"forward\")\n .targetGroupArn(frontEndTargetGroup.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n frontEnd:\n type: aws:lb:LoadBalancer\n name: front_end\n frontEndTargetGroup:\n type: aws:lb:TargetGroup\n name: front_end\n frontEndListener:\n type: aws:lb:Listener\n name: front_end\n properties:\n loadBalancerArn: ${frontEnd.arn}\n port: '80'\n protocol: HTTP\n defaultActions:\n - type: authenticate-oidc\n authenticateOidc:\n authorizationEndpoint: https://example.com/authorization_endpoint\n clientId: client_id\n clientSecret: client_secret\n issuer: https://example.com\n tokenEndpoint: https://example.com/token_endpoint\n userInfoEndpoint: https://example.com/user_info_endpoint\n - type: forward\n targetGroupArn: ${frontEndTargetGroup.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Gateway Load Balancer Listener\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {\n loadBalancerType: \"gateway\",\n name: \"example\",\n subnetMappings: [{\n subnetId: exampleAwsSubnet.id,\n }],\n});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {\n name: \"example\",\n port: 6081,\n protocol: \"GENEVE\",\n vpcId: exampleAwsVpc.id,\n healthCheck: {\n port: \"80\",\n protocol: \"HTTP\",\n },\n});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\",\n load_balancer_type=\"gateway\",\n name=\"example\",\n subnet_mappings=[{\n \"subnet_id\": example_aws_subnet[\"id\"],\n }])\nexample_target_group = aws.lb.TargetGroup(\"example\",\n name=\"example\",\n port=6081,\n protocol=\"GENEVE\",\n vpc_id=example_aws_vpc[\"id\"],\n health_check={\n \"port\": \"80\",\n \"protocol\": \"HTTP\",\n })\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"gateway\",\n Name = \"example\",\n SubnetMappings = new[]\n {\n new Aws.LB.Inputs.LoadBalancerSubnetMappingArgs\n {\n SubnetId = exampleAwsSubnet.Id,\n },\n },\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\", new()\n {\n Name = \"example\",\n Port = 6081,\n Protocol = \"GENEVE\",\n VpcId = exampleAwsVpc.Id,\n HealthCheck = new Aws.LB.Inputs.TargetGroupHealthCheckArgs\n {\n Port = \"80\",\n Protocol = \"HTTP\",\n },\n });\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"gateway\"),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tSubnetMappings: lb.LoadBalancerSubnetMappingArray{\n\t\t\t\t\u0026lb.LoadBalancerSubnetMappingArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(exampleAwsSubnet.Id),\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\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tPort: pulumi.Int(6081),\n\t\t\tProtocol: pulumi.String(\"GENEVE\"),\n\t\t\tVpcId: pulumi.Any(exampleAwsVpc.Id),\n\t\t\tHealthCheck: \u0026lb.TargetGroupHealthCheckArgs{\n\t\t\t\tPort: pulumi.String(\"80\"),\n\t\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.inputs.LoadBalancerSubnetMappingArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"gateway\")\n .name(\"example\")\n .subnetMappings(LoadBalancerSubnetMappingArgs.builder()\n .subnetId(exampleAwsSubnet.id())\n .build())\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\", TargetGroupArgs.builder()\n .name(\"example\")\n .port(6081)\n .protocol(\"GENEVE\")\n .vpcId(exampleAwsVpc.id())\n .healthCheck(TargetGroupHealthCheckArgs.builder()\n .port(80)\n .protocol(\"HTTP\")\n .build())\n .build());\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: gateway\n name: example\n subnetMappings:\n - subnetId: ${exampleAwsSubnet.id}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n properties:\n name: example\n port: 6081\n protocol: GENEVE\n vpcId: ${exampleAwsVpc.id}\n healthCheck:\n port: 80\n protocol: HTTP\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Mutual TLS Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.lb.LoadBalancer(\"example\", {loadBalancerType: \"application\"});\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleListener = new aws.lb.Listener(\"example\", {\n loadBalancerArn: example.id,\n defaultActions: [{\n targetGroupArn: exampleTargetGroup.id,\n type: \"forward\",\n }],\n mutualAuthentication: {\n mode: \"verify\",\n trustStoreArn: \"...\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lb.LoadBalancer(\"example\", load_balancer_type=\"application\")\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_listener = aws.lb.Listener(\"example\",\n load_balancer_arn=example.id,\n default_actions=[{\n \"target_group_arn\": example_target_group.id,\n \"type\": \"forward\",\n }],\n mutual_authentication={\n \"mode\": \"verify\",\n \"trust_store_arn\": \"...\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.LB.LoadBalancer(\"example\", new()\n {\n LoadBalancerType = \"application\",\n });\n\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleListener = new Aws.LB.Listener(\"example\", new()\n {\n LoadBalancerArn = example.Id,\n DefaultActions = new[]\n {\n new Aws.LB.Inputs.ListenerDefaultActionArgs\n {\n TargetGroupArn = exampleTargetGroup.Id,\n Type = \"forward\",\n },\n },\n MutualAuthentication = new Aws.LB.Inputs.ListenerMutualAuthenticationArgs\n {\n Mode = \"verify\",\n TrustStoreArn = \"...\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := lb.NewLoadBalancer(ctx, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tLoadBalancerType: pulumi.String(\"application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTargetGroup, err := lb.NewTargetGroup(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewListener(ctx, \"example\", \u0026lb.ListenerArgs{\n\t\t\tLoadBalancerArn: example.ID(),\n\t\t\tDefaultActions: lb.ListenerDefaultActionArray{\n\t\t\t\t\u0026lb.ListenerDefaultActionArgs{\n\t\t\t\t\tTargetGroupArn: exampleTargetGroup.ID(),\n\t\t\t\t\tType: pulumi.String(\"forward\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMutualAuthentication: \u0026lb.ListenerMutualAuthenticationArgs{\n\t\t\t\tMode: pulumi.String(\"verify\"),\n\t\t\t\tTrustStoreArn: pulumi.String(\"...\"),\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.aws.lb.LoadBalancer;\nimport com.pulumi.aws.lb.LoadBalancerArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.Listener;\nimport com.pulumi.aws.lb.ListenerArgs;\nimport com.pulumi.aws.lb.inputs.ListenerDefaultActionArgs;\nimport com.pulumi.aws.lb.inputs.ListenerMutualAuthenticationArgs;\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 example = new LoadBalancer(\"example\", LoadBalancerArgs.builder()\n .loadBalancerType(\"application\")\n .build());\n\n var exampleTargetGroup = new TargetGroup(\"exampleTargetGroup\");\n\n var exampleListener = new Listener(\"exampleListener\", ListenerArgs.builder()\n .loadBalancerArn(example.id())\n .defaultActions(ListenerDefaultActionArgs.builder()\n .targetGroupArn(exampleTargetGroup.id())\n .type(\"forward\")\n .build())\n .mutualAuthentication(ListenerMutualAuthenticationArgs.builder()\n .mode(\"verify\")\n .trustStoreArn(\"...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lb:LoadBalancer\n properties:\n loadBalancerType: application\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleListener:\n type: aws:lb:Listener\n name: example\n properties:\n loadBalancerArn: ${example.id}\n defaultActions:\n - targetGroupArn: ${exampleTargetGroup.id}\n type: forward\n mutualAuthentication:\n mode: verify\n trustStoreArn: '...'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import listeners using their ARN. For example:\n\n```sh\n$ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96\n```\n", "properties": { "alpnPolicy": { "type": "string", @@ -285417,7 +286627,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -285479,7 +286689,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -285534,7 +286744,7 @@ }, "sslPolicy": { "type": "string", - "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`.\n" + "description": "Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`.\n" }, "tags": { "type": "object", @@ -297417,7 +298627,7 @@ } }, "aws:msk/replicator:Replicator": { - "description": "Resource for managing an AWS Managed Streaming for Kafka Replicator.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.msk.Replicator(\"test\", {\n replicatorName: \"test-name\",\n description: \"test-description\",\n serviceExecutionRoleArn: sourceAwsIamRole.arn,\n kafkaClusters: [\n {\n amazonMskCluster: {\n mskClusterArn: source.arn,\n },\n vpcConfig: {\n subnetIds: sourceAwsSubnet.map(__item =\u003e __item.id),\n securityGroupsIds: [sourceAwsSecurityGroup.id],\n },\n },\n {\n amazonMskCluster: {\n mskClusterArn: target.arn,\n },\n vpcConfig: {\n subnetIds: targetAwsSubnet.map(__item =\u003e __item.id),\n securityGroupsIds: [targetAwsSecurityGroup.id],\n },\n },\n ],\n replicationInfoList: {\n sourceKafkaClusterArn: source.arn,\n targetKafkaClusterArn: target.arn,\n targetCompressionType: \"NONE\",\n topicReplications: [{\n topicsToReplicates: [\".*\"],\n }],\n consumerGroupReplications: [{\n consumerGroupsToReplicates: [\".*\"],\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.msk.Replicator(\"test\",\n replicator_name=\"test-name\",\n description=\"test-description\",\n service_execution_role_arn=source_aws_iam_role[\"arn\"],\n kafka_clusters=[\n {\n \"amazon_msk_cluster\": {\n \"msk_cluster_arn\": source[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [__item[\"id\"] for __item in source_aws_subnet],\n \"security_groups_ids\": [source_aws_security_group[\"id\"]],\n },\n },\n {\n \"amazon_msk_cluster\": {\n \"msk_cluster_arn\": target[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [__item[\"id\"] for __item in target_aws_subnet],\n \"security_groups_ids\": [target_aws_security_group[\"id\"]],\n },\n },\n ],\n replication_info_list={\n \"source_kafka_cluster_arn\": source[\"arn\"],\n \"target_kafka_cluster_arn\": target[\"arn\"],\n \"target_compression_type\": \"NONE\",\n \"topic_replications\": [{\n \"topics_to_replicates\": [\".*\"],\n }],\n \"consumer_group_replications\": [{\n \"consumer_groups_to_replicates\": [\".*\"],\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Msk.Replicator(\"test\", new()\n {\n ReplicatorName = \"test-name\",\n Description = \"test-description\",\n ServiceExecutionRoleArn = sourceAwsIamRole.Arn,\n KafkaClusters = new[]\n {\n new Aws.Msk.Inputs.ReplicatorKafkaClusterArgs\n {\n AmazonMskCluster = new Aws.Msk.Inputs.ReplicatorKafkaClusterAmazonMskClusterArgs\n {\n MskClusterArn = source.Arn,\n },\n VpcConfig = new Aws.Msk.Inputs.ReplicatorKafkaClusterVpcConfigArgs\n {\n SubnetIds = sourceAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroupsIds = new[]\n {\n sourceAwsSecurityGroup.Id,\n },\n },\n },\n new Aws.Msk.Inputs.ReplicatorKafkaClusterArgs\n {\n AmazonMskCluster = new Aws.Msk.Inputs.ReplicatorKafkaClusterAmazonMskClusterArgs\n {\n MskClusterArn = target.Arn,\n },\n VpcConfig = new Aws.Msk.Inputs.ReplicatorKafkaClusterVpcConfigArgs\n {\n SubnetIds = targetAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroupsIds = new[]\n {\n targetAwsSecurityGroup.Id,\n },\n },\n },\n },\n ReplicationInfoList = new Aws.Msk.Inputs.ReplicatorReplicationInfoListArgs\n {\n SourceKafkaClusterArn = source.Arn,\n TargetKafkaClusterArn = target.Arn,\n TargetCompressionType = \"NONE\",\n TopicReplications = new[]\n {\n new Aws.Msk.Inputs.ReplicatorReplicationInfoListTopicReplicationArgs\n {\n TopicsToReplicates = new[]\n {\n \".*\",\n },\n },\n },\n ConsumerGroupReplications = new[]\n {\n new Aws.Msk.Inputs.ReplicatorReplicationInfoListConsumerGroupReplicationArgs\n {\n ConsumerGroupsToReplicates = new[]\n {\n \".*\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/msk\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := msk.NewReplicator(ctx, \"test\", \u0026msk.ReplicatorArgs{\nReplicatorName: pulumi.String(\"test-name\"),\nDescription: pulumi.String(\"test-description\"),\nServiceExecutionRoleArn: pulumi.Any(sourceAwsIamRole.Arn),\nKafkaClusters: msk.ReplicatorKafkaClusterArray{\n\u0026msk.ReplicatorKafkaClusterArgs{\nAmazonMskCluster: \u0026msk.ReplicatorKafkaClusterAmazonMskClusterArgs{\nMskClusterArn: pulumi.Any(source.Arn),\n},\nVpcConfig: \u0026msk.ReplicatorKafkaClusterVpcConfigArgs{\nSubnetIds: []pulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:9,27-48)),\nSecurityGroupsIds: pulumi.StringArray{\nsourceAwsSecurityGroup.Id,\n},\n},\n},\n\u0026msk.ReplicatorKafkaClusterArgs{\nAmazonMskCluster: \u0026msk.ReplicatorKafkaClusterAmazonMskClusterArgs{\nMskClusterArn: pulumi.Any(target.Arn),\n},\nVpcConfig: \u0026msk.ReplicatorKafkaClusterVpcConfigArgs{\nSubnetIds: []pulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:17,27-48)),\nSecurityGroupsIds: pulumi.StringArray{\ntargetAwsSecurityGroup.Id,\n},\n},\n},\n},\nReplicationInfoList: \u0026msk.ReplicatorReplicationInfoListArgs{\nSourceKafkaClusterArn: pulumi.Any(source.Arn),\nTargetKafkaClusterArn: pulumi.Any(target.Arn),\nTargetCompressionType: pulumi.String(\"NONE\"),\nTopicReplications: msk.ReplicatorReplicationInfoListTopicReplicationArray{\n\u0026msk.ReplicatorReplicationInfoListTopicReplicationArgs{\nTopicsToReplicates: pulumi.StringArray{\npulumi.String(\".*\"),\n},\n},\n},\nConsumerGroupReplications: msk.ReplicatorReplicationInfoListConsumerGroupReplicationArray{\n\u0026msk.ReplicatorReplicationInfoListConsumerGroupReplicationArgs{\nConsumerGroupsToReplicates: pulumi.StringArray{\npulumi.String(\".*\"),\n},\n},\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.msk.Replicator;\nimport com.pulumi.aws.msk.ReplicatorArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterAmazonMskClusterArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterVpcConfigArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListArgs;\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 test = new Replicator(\"test\", ReplicatorArgs.builder()\n .replicatorName(\"test-name\")\n .description(\"test-description\")\n .serviceExecutionRoleArn(sourceAwsIamRole.arn())\n .kafkaClusters( \n ReplicatorKafkaClusterArgs.builder()\n .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder()\n .mskClusterArn(source.arn())\n .build())\n .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder()\n .subnetIds(sourceAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroupsIds(sourceAwsSecurityGroup.id())\n .build())\n .build(),\n ReplicatorKafkaClusterArgs.builder()\n .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder()\n .mskClusterArn(target.arn())\n .build())\n .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder()\n .subnetIds(targetAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroupsIds(targetAwsSecurityGroup.id())\n .build())\n .build())\n .replicationInfoList(ReplicatorReplicationInfoListArgs.builder()\n .sourceKafkaClusterArn(source.arn())\n .targetKafkaClusterArn(target.arn())\n .targetCompressionType(\"NONE\")\n .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder()\n .topicsToReplicates(\".*\")\n .build())\n .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder()\n .consumerGroupsToReplicates(\".*\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MSK replicators using the replicator ARN. For example:\n\n```sh\n$ pulumi import aws:msk/replicator:Replicator example arn:aws:kafka:us-west-2:123456789012:configuration/example/279c0212-d057-4dba-9aa9-1c4e5a25bfc7-3\n```\n", + "description": "Resource for managing an AWS Managed Streaming for Kafka Replicator.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.msk.Replicator(\"test\", {\n replicatorName: \"test-name\",\n description: \"test-description\",\n serviceExecutionRoleArn: sourceAwsIamRole.arn,\n kafkaClusters: [\n {\n amazonMskCluster: {\n mskClusterArn: source.arn,\n },\n vpcConfig: {\n subnetIds: sourceAwsSubnet.map(__item =\u003e __item.id),\n securityGroupsIds: [sourceAwsSecurityGroup.id],\n },\n },\n {\n amazonMskCluster: {\n mskClusterArn: target.arn,\n },\n vpcConfig: {\n subnetIds: targetAwsSubnet.map(__item =\u003e __item.id),\n securityGroupsIds: [targetAwsSecurityGroup.id],\n },\n },\n ],\n replicationInfoList: {\n sourceKafkaClusterArn: source.arn,\n targetKafkaClusterArn: target.arn,\n targetCompressionType: \"NONE\",\n topicReplications: [{\n topicsToReplicates: [\".*\"],\n startingPosition: {\n type: \"LATEST\",\n },\n }],\n consumerGroupReplications: [{\n consumerGroupsToReplicates: [\".*\"],\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.msk.Replicator(\"test\",\n replicator_name=\"test-name\",\n description=\"test-description\",\n service_execution_role_arn=source_aws_iam_role[\"arn\"],\n kafka_clusters=[\n {\n \"amazon_msk_cluster\": {\n \"msk_cluster_arn\": source[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [__item[\"id\"] for __item in source_aws_subnet],\n \"security_groups_ids\": [source_aws_security_group[\"id\"]],\n },\n },\n {\n \"amazon_msk_cluster\": {\n \"msk_cluster_arn\": target[\"arn\"],\n },\n \"vpc_config\": {\n \"subnet_ids\": [__item[\"id\"] for __item in target_aws_subnet],\n \"security_groups_ids\": [target_aws_security_group[\"id\"]],\n },\n },\n ],\n replication_info_list={\n \"source_kafka_cluster_arn\": source[\"arn\"],\n \"target_kafka_cluster_arn\": target[\"arn\"],\n \"target_compression_type\": \"NONE\",\n \"topic_replications\": [{\n \"topics_to_replicates\": [\".*\"],\n \"starting_position\": {\n \"type\": \"LATEST\",\n },\n }],\n \"consumer_group_replications\": [{\n \"consumer_groups_to_replicates\": [\".*\"],\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Msk.Replicator(\"test\", new()\n {\n ReplicatorName = \"test-name\",\n Description = \"test-description\",\n ServiceExecutionRoleArn = sourceAwsIamRole.Arn,\n KafkaClusters = new[]\n {\n new Aws.Msk.Inputs.ReplicatorKafkaClusterArgs\n {\n AmazonMskCluster = new Aws.Msk.Inputs.ReplicatorKafkaClusterAmazonMskClusterArgs\n {\n MskClusterArn = source.Arn,\n },\n VpcConfig = new Aws.Msk.Inputs.ReplicatorKafkaClusterVpcConfigArgs\n {\n SubnetIds = sourceAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroupsIds = new[]\n {\n sourceAwsSecurityGroup.Id,\n },\n },\n },\n new Aws.Msk.Inputs.ReplicatorKafkaClusterArgs\n {\n AmazonMskCluster = new Aws.Msk.Inputs.ReplicatorKafkaClusterAmazonMskClusterArgs\n {\n MskClusterArn = target.Arn,\n },\n VpcConfig = new Aws.Msk.Inputs.ReplicatorKafkaClusterVpcConfigArgs\n {\n SubnetIds = targetAwsSubnet.Select(__item =\u003e __item.Id).ToList(),\n SecurityGroupsIds = new[]\n {\n targetAwsSecurityGroup.Id,\n },\n },\n },\n },\n ReplicationInfoList = new Aws.Msk.Inputs.ReplicatorReplicationInfoListArgs\n {\n SourceKafkaClusterArn = source.Arn,\n TargetKafkaClusterArn = target.Arn,\n TargetCompressionType = \"NONE\",\n TopicReplications = new[]\n {\n new Aws.Msk.Inputs.ReplicatorReplicationInfoListTopicReplicationArgs\n {\n TopicsToReplicates = new[]\n {\n \".*\",\n },\n StartingPosition = new Aws.Msk.Inputs.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs\n {\n Type = \"LATEST\",\n },\n },\n },\n ConsumerGroupReplications = new[]\n {\n new Aws.Msk.Inputs.ReplicatorReplicationInfoListConsumerGroupReplicationArgs\n {\n ConsumerGroupsToReplicates = new[]\n {\n \".*\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/msk\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := msk.NewReplicator(ctx, \"test\", \u0026msk.ReplicatorArgs{\nReplicatorName: pulumi.String(\"test-name\"),\nDescription: pulumi.String(\"test-description\"),\nServiceExecutionRoleArn: pulumi.Any(sourceAwsIamRole.Arn),\nKafkaClusters: msk.ReplicatorKafkaClusterArray{\n\u0026msk.ReplicatorKafkaClusterArgs{\nAmazonMskCluster: \u0026msk.ReplicatorKafkaClusterAmazonMskClusterArgs{\nMskClusterArn: pulumi.Any(source.Arn),\n},\nVpcConfig: \u0026msk.ReplicatorKafkaClusterVpcConfigArgs{\nSubnetIds: []pulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:9,27-48)),\nSecurityGroupsIds: pulumi.StringArray{\nsourceAwsSecurityGroup.Id,\n},\n},\n},\n\u0026msk.ReplicatorKafkaClusterArgs{\nAmazonMskCluster: \u0026msk.ReplicatorKafkaClusterAmazonMskClusterArgs{\nMskClusterArn: pulumi.Any(target.Arn),\n},\nVpcConfig: \u0026msk.ReplicatorKafkaClusterVpcConfigArgs{\nSubnetIds: []pulumi.String(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:17,27-48)),\nSecurityGroupsIds: pulumi.StringArray{\ntargetAwsSecurityGroup.Id,\n},\n},\n},\n},\nReplicationInfoList: \u0026msk.ReplicatorReplicationInfoListArgs{\nSourceKafkaClusterArn: pulumi.Any(source.Arn),\nTargetKafkaClusterArn: pulumi.Any(target.Arn),\nTargetCompressionType: pulumi.String(\"NONE\"),\nTopicReplications: msk.ReplicatorReplicationInfoListTopicReplicationArray{\n\u0026msk.ReplicatorReplicationInfoListTopicReplicationArgs{\nTopicsToReplicates: pulumi.StringArray{\npulumi.String(\".*\"),\n},\nStartingPosition: \u0026msk.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{\nType: pulumi.String(\"LATEST\"),\n},\n},\n},\nConsumerGroupReplications: msk.ReplicatorReplicationInfoListConsumerGroupReplicationArray{\n\u0026msk.ReplicatorReplicationInfoListConsumerGroupReplicationArgs{\nConsumerGroupsToReplicates: pulumi.StringArray{\npulumi.String(\".*\"),\n},\n},\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.msk.Replicator;\nimport com.pulumi.aws.msk.ReplicatorArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterAmazonMskClusterArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorKafkaClusterVpcConfigArgs;\nimport com.pulumi.aws.msk.inputs.ReplicatorReplicationInfoListArgs;\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 test = new Replicator(\"test\", ReplicatorArgs.builder()\n .replicatorName(\"test-name\")\n .description(\"test-description\")\n .serviceExecutionRoleArn(sourceAwsIamRole.arn())\n .kafkaClusters( \n ReplicatorKafkaClusterArgs.builder()\n .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder()\n .mskClusterArn(source.arn())\n .build())\n .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder()\n .subnetIds(sourceAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroupsIds(sourceAwsSecurityGroup.id())\n .build())\n .build(),\n ReplicatorKafkaClusterArgs.builder()\n .amazonMskCluster(ReplicatorKafkaClusterAmazonMskClusterArgs.builder()\n .mskClusterArn(target.arn())\n .build())\n .vpcConfig(ReplicatorKafkaClusterVpcConfigArgs.builder()\n .subnetIds(targetAwsSubnet.stream().map(element -\u003e element.id()).collect(toList()))\n .securityGroupsIds(targetAwsSecurityGroup.id())\n .build())\n .build())\n .replicationInfoList(ReplicatorReplicationInfoListArgs.builder()\n .sourceKafkaClusterArn(source.arn())\n .targetKafkaClusterArn(target.arn())\n .targetCompressionType(\"NONE\")\n .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder()\n .topicsToReplicates(\".*\")\n .startingPosition(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.builder()\n .type(\"LATEST\")\n .build())\n .build())\n .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder()\n .consumerGroupsToReplicates(\".*\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MSK replicators using the replicator ARN. For example:\n\n```sh\n$ pulumi import aws:msk/replicator:Replicator example arn:aws:kafka:us-west-2:123456789012:configuration/example/279c0212-d057-4dba-9aa9-1c4e5a25bfc7-3\n```\n", "properties": { "arn": { "type": "string", @@ -301229,7 +302439,7 @@ } }, "aws:networkfirewall/loggingConfiguration:LoggingConfiguration": { - "description": "Provides an AWS Network Firewall Logging Configuration Resource\n\n## Example Usage\n\n### Logging to S3\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n bucketName: exampleAwsS3Bucket.bucket,\n prefix: \"/example\",\n },\n logDestinationType: \"S3\",\n logType: \"FLOW\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"bucket_name\": example_aws_s3_bucket[\"bucket\"],\n \"prefix\": \"/example\",\n },\n \"log_destination_type\": \"S3\",\n \"log_type\": \"FLOW\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"bucketName\", exampleAwsS3Bucket.Bucket },\n { \"prefix\", \"/example\" },\n },\n LogDestinationType = \"S3\",\n LogType = \"FLOW\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"bucketName\": pulumi.Any(exampleAwsS3Bucket.Bucket),\n\t\t\t\t\t\t\t\"prefix\": pulumi.String(\"/example\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"S3\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"FLOW\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.ofEntries(\n Map.entry(\"bucketName\", exampleAwsS3Bucket.bucket()),\n Map.entry(\"prefix\", \"/example\")\n ))\n .logDestinationType(\"S3\")\n .logType(\"FLOW\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n bucketName: ${exampleAwsS3Bucket.bucket}\n prefix: /example\n logDestinationType: S3\n logType: FLOW\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging to CloudWatch\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n logGroup: exampleAwsCloudwatchLogGroup.name,\n },\n logDestinationType: \"CloudWatchLogs\",\n logType: \"ALERT\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"log_group\": example_aws_cloudwatch_log_group[\"name\"],\n },\n \"log_destination_type\": \"CloudWatchLogs\",\n \"log_type\": \"ALERT\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"logGroup\", exampleAwsCloudwatchLogGroup.Name },\n },\n LogDestinationType = \"CloudWatchLogs\",\n LogType = \"ALERT\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"logGroup\": pulumi.Any(exampleAwsCloudwatchLogGroup.Name),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"CloudWatchLogs\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"ALERT\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.of(\"logGroup\", exampleAwsCloudwatchLogGroup.name()))\n .logDestinationType(\"CloudWatchLogs\")\n .logType(\"ALERT\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n logGroup: ${exampleAwsCloudwatchLogGroup.name}\n logDestinationType: CloudWatchLogs\n logType: ALERT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging to Kinesis Data Firehose\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n deliveryStream: exampleAwsKinesisFirehoseDeliveryStream.name,\n },\n logDestinationType: \"KinesisDataFirehose\",\n logType: \"ALERT\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"delivery_stream\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n },\n \"log_destination_type\": \"KinesisDataFirehose\",\n \"log_type\": \"ALERT\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"deliveryStream\", exampleAwsKinesisFirehoseDeliveryStream.Name },\n },\n LogDestinationType = \"KinesisDataFirehose\",\n LogType = \"ALERT\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"deliveryStream\": pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"KinesisDataFirehose\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"ALERT\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.of(\"deliveryStream\", exampleAwsKinesisFirehoseDeliveryStream.name()))\n .logDestinationType(\"KinesisDataFirehose\")\n .logType(\"ALERT\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n deliveryStream: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n logDestinationType: KinesisDataFirehose\n logType: ALERT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Network Firewall Logging Configurations using the `firewall_arn`. For example:\n\n```sh\n$ pulumi import aws:networkfirewall/loggingConfiguration:LoggingConfiguration example arn:aws:network-firewall:us-west-1:123456789012:firewall/example\n```\n", + "description": "Provides an AWS Network Firewall Logging Configuration Resource\n\n## Example Usage\n\n### Logging to S3\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n bucketName: exampleAwsS3Bucket.bucket,\n prefix: \"/example\",\n },\n logDestinationType: \"S3\",\n logType: \"FLOW\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"bucket_name\": example_aws_s3_bucket[\"bucket\"],\n \"prefix\": \"/example\",\n },\n \"log_destination_type\": \"S3\",\n \"log_type\": \"FLOW\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"bucketName\", exampleAwsS3Bucket.Bucket },\n { \"prefix\", \"/example\" },\n },\n LogDestinationType = \"S3\",\n LogType = \"FLOW\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"bucketName\": pulumi.Any(exampleAwsS3Bucket.Bucket),\n\t\t\t\t\t\t\t\"prefix\": pulumi.String(\"/example\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"S3\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"FLOW\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.ofEntries(\n Map.entry(\"bucketName\", exampleAwsS3Bucket.bucket()),\n Map.entry(\"prefix\", \"/example\")\n ))\n .logDestinationType(\"S3\")\n .logType(\"FLOW\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n bucketName: ${exampleAwsS3Bucket.bucket}\n prefix: /example\n logDestinationType: S3\n logType: FLOW\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging to CloudWatch\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n logGroup: exampleAwsCloudwatchLogGroup.name,\n },\n logDestinationType: \"CloudWatchLogs\",\n logType: \"ALERT\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"log_group\": example_aws_cloudwatch_log_group[\"name\"],\n },\n \"log_destination_type\": \"CloudWatchLogs\",\n \"log_type\": \"ALERT\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"logGroup\", exampleAwsCloudwatchLogGroup.Name },\n },\n LogDestinationType = \"CloudWatchLogs\",\n LogType = \"ALERT\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"logGroup\": pulumi.Any(exampleAwsCloudwatchLogGroup.Name),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"CloudWatchLogs\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"ALERT\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.of(\"logGroup\", exampleAwsCloudwatchLogGroup.name()))\n .logDestinationType(\"CloudWatchLogs\")\n .logType(\"ALERT\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n logGroup: ${exampleAwsCloudwatchLogGroup.name}\n logDestinationType: CloudWatchLogs\n logType: ALERT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Logging to Kinesis Data Firehose\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.LoggingConfiguration(\"example\", {\n firewallArn: exampleAwsNetworkfirewallFirewall.arn,\n loggingConfiguration: {\n logDestinationConfigs: [{\n logDestination: {\n deliveryStream: exampleAwsKinesisFirehoseDeliveryStream.name,\n },\n logDestinationType: \"KinesisDataFirehose\",\n logType: \"TLS\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.LoggingConfiguration(\"example\",\n firewall_arn=example_aws_networkfirewall_firewall[\"arn\"],\n logging_configuration={\n \"log_destination_configs\": [{\n \"log_destination\": {\n \"delivery_stream\": example_aws_kinesis_firehose_delivery_stream[\"name\"],\n },\n \"log_destination_type\": \"KinesisDataFirehose\",\n \"log_type\": \"TLS\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkFirewall.LoggingConfiguration(\"example\", new()\n {\n FirewallArn = exampleAwsNetworkfirewallFirewall.Arn,\n LoggingConfig = new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationArgs\n {\n LogDestinationConfigs = new[]\n {\n new Aws.NetworkFirewall.Inputs.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs\n {\n LogDestination = \n {\n { \"deliveryStream\", exampleAwsKinesisFirehoseDeliveryStream.Name },\n },\n LogDestinationType = \"KinesisDataFirehose\",\n LogType = \"TLS\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/networkfirewall\"\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 := networkfirewall.NewLoggingConfiguration(ctx, \"example\", \u0026networkfirewall.LoggingConfigurationArgs{\n\t\t\tFirewallArn: pulumi.Any(exampleAwsNetworkfirewallFirewall.Arn),\n\t\t\tLoggingConfiguration: \u0026networkfirewall.LoggingConfigurationLoggingConfigurationArgs{\n\t\t\t\tLogDestinationConfigs: networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArray{\n\t\t\t\t\t\u0026networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs{\n\t\t\t\t\t\tLogDestination: pulumi.StringMap{\n\t\t\t\t\t\t\t\"deliveryStream\": pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tLogDestinationType: pulumi.String(\"KinesisDataFirehose\"),\n\t\t\t\t\t\tLogType: pulumi.String(\"TLS\"),\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.aws.networkfirewall.LoggingConfiguration;\nimport com.pulumi.aws.networkfirewall.LoggingConfigurationArgs;\nimport com.pulumi.aws.networkfirewall.inputs.LoggingConfigurationLoggingConfigurationArgs;\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 example = new LoggingConfiguration(\"example\", LoggingConfigurationArgs.builder()\n .firewallArn(exampleAwsNetworkfirewallFirewall.arn())\n .loggingConfiguration(LoggingConfigurationLoggingConfigurationArgs.builder()\n .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder()\n .logDestination(Map.of(\"deliveryStream\", exampleAwsKinesisFirehoseDeliveryStream.name()))\n .logDestinationType(\"KinesisDataFirehose\")\n .logType(\"TLS\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkfirewall:LoggingConfiguration\n properties:\n firewallArn: ${exampleAwsNetworkfirewallFirewall.arn}\n loggingConfiguration:\n logDestinationConfigs:\n - logDestination:\n deliveryStream: ${exampleAwsKinesisFirehoseDeliveryStream.name}\n logDestinationType: KinesisDataFirehose\n logType: TLS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Network Firewall Logging Configurations using the `firewall_arn`. For example:\n\n```sh\n$ pulumi import aws:networkfirewall/loggingConfiguration:LoggingConfiguration example arn:aws:network-firewall:us-west-1:123456789012:firewall/example\n```\n", "properties": { "firewallArn": { "type": "string", @@ -314230,7 +315440,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" + "description": "*Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" } }, "required": [ @@ -314263,7 +315473,7 @@ }, "roleArn": { "type": "string", - "description": "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" + "description": "*Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" } }, "requiredInputs": [ @@ -314301,7 +315511,101 @@ }, "roleArn": { "type": "string", - "description": "The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" + "description": "*Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service.\n" + } + }, + "type": "object" + } + }, + "aws:pinpoint/emailTemplate:EmailTemplate": { + "description": "Provides a Pinpoint Email Template resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.pinpoint.EmailTemplate(\"test\", {\n templateName: \"testing\",\n emailTemplates: [{\n subject: \"testing\",\n textPart: \"we are testing template text part\",\n headers: [{\n name: \"testingname\",\n value: \"testingvalue\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.pinpoint.EmailTemplate(\"test\",\n template_name=\"testing\",\n email_templates=[{\n \"subject\": \"testing\",\n \"text_part\": \"we are testing template text part\",\n \"headers\": [{\n \"name\": \"testingname\",\n \"value\": \"testingvalue\",\n }],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Pinpoint.EmailTemplate(\"test\", new()\n {\n TemplateName = \"testing\",\n EmailTemplates = new[]\n {\n new Aws.Pinpoint.Inputs.EmailTemplateEmailTemplateArgs\n {\n Subject = \"testing\",\n TextPart = \"we are testing template text part\",\n Headers = new[]\n {\n new Aws.Pinpoint.Inputs.EmailTemplateEmailTemplateHeaderArgs\n {\n Name = \"testingname\",\n Value = \"testingvalue\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pinpoint\"\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 := pinpoint.NewEmailTemplate(ctx, \"test\", \u0026pinpoint.EmailTemplateArgs{\n\t\t\tTemplateName: pulumi.String(\"testing\"),\n\t\t\tEmailTemplates: pinpoint.EmailTemplateEmailTemplateArray{\n\t\t\t\t\u0026pinpoint.EmailTemplateEmailTemplateArgs{\n\t\t\t\t\tSubject: pulumi.String(\"testing\"),\n\t\t\t\t\tTextPart: pulumi.String(\"we are testing template text part\"),\n\t\t\t\t\tHeaders: pinpoint.EmailTemplateEmailTemplateHeaderArray{\n\t\t\t\t\t\t\u0026pinpoint.EmailTemplateEmailTemplateHeaderArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"testingname\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"testingvalue\"),\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.aws.pinpoint.EmailTemplate;\nimport com.pulumi.aws.pinpoint.EmailTemplateArgs;\nimport com.pulumi.aws.pinpoint.inputs.EmailTemplateEmailTemplateArgs;\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 test = new EmailTemplate(\"test\", EmailTemplateArgs.builder()\n .templateName(\"testing\")\n .emailTemplates(EmailTemplateEmailTemplateArgs.builder()\n .subject(\"testing\")\n .textPart(\"we are testing template text part\")\n .headers(EmailTemplateEmailTemplateHeaderArgs.builder()\n .name(\"testingname\")\n .value(\"testingvalue\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:pinpoint:EmailTemplate\n properties:\n templateName: testing\n emailTemplates:\n - subject: testing\n textPart: we are testing template text part\n headers:\n - name: testingname\n value: testingvalue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Pinpoint Email Template using the `template_name`. For example:\n\n```sh\n$ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the message template.\n" + }, + "emailTemplates": { + "type": "array", + "items": { + "$ref": "#/types/aws:pinpoint/EmailTemplateEmailTemplate:EmailTemplateEmailTemplate" + }, + "description": "Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "deprecationMessage": "Please use `tags` instead." + }, + "templateName": { + "type": "string", + "description": "name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.\n" + } + }, + "required": [ + "arn", + "tagsAll", + "templateName" + ], + "inputProperties": { + "emailTemplates": { + "type": "array", + "items": { + "$ref": "#/types/aws:pinpoint/EmailTemplateEmailTemplate:EmailTemplateEmailTemplate" + }, + "description": "Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "templateName": { + "type": "string", + "description": "name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.\n" + } + }, + "requiredInputs": [ + "templateName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering EmailTemplate resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the message template.\n" + }, + "emailTemplates": { + "type": "array", + "items": { + "$ref": "#/types/aws:pinpoint/EmailTemplateEmailTemplate:EmailTemplateEmailTemplate" + }, + "description": "Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "tagsAll": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "deprecationMessage": "Please use `tags` instead." + }, + "templateName": { + "type": "string", + "description": "name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive.\n" } }, "type": "object" @@ -314518,7 +315822,7 @@ } }, "aws:pipes/pipe:Pipe": { - "description": "Resource for managing an AWS EventBridge Pipes Pipe.\n\nYou can find out more about EventBridge Pipes in the [User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html).\n\nEventBridge Pipes are very configurable, and may require IAM permissions to work correctly. More information on the configuration options and IAM permissions can be found in the [User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html).\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = aws.getCallerIdentity({});\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: {\n Effect: \"Allow\",\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"pipes.amazonaws.com\",\n },\n Condition: {\n StringEquals: {\n \"aws:SourceAccount\": main.then(main =\u003e main.accountId),\n },\n },\n },\n})});\nconst sourceQueue = new aws.sqs.Queue(\"source\", {});\nconst source = new aws.iam.RolePolicy(\"source\", {\n role: example.id,\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [{\n Effect: \"Allow\",\n Action: [\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n ],\n Resource: [sourceQueue.arn],\n }],\n }),\n});\nconst targetQueue = new aws.sqs.Queue(\"target\", {});\nconst target = new aws.iam.RolePolicy(\"target\", {\n role: example.id,\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [{\n Effect: \"Allow\",\n Action: [\"sqs:SendMessage\"],\n Resource: [targetQueue.arn],\n }],\n }),\n});\nconst examplePipe = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: example.arn,\n source: sourceQueue.arn,\n target: targetQueue.arn,\n}, {\n dependsOn: [\n source,\n target,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmain = aws.get_caller_identity()\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"pipes.amazonaws.com\",\n },\n \"Condition\": {\n \"StringEquals\": {\n \"aws:SourceAccount\": main.account_id,\n },\n },\n },\n}))\nsource_queue = aws.sqs.Queue(\"source\")\nsource = aws.iam.RolePolicy(\"source\",\n role=example.id,\n policy=pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n ],\n \"Resource\": [source_queue.arn],\n }],\n }))\ntarget_queue = aws.sqs.Queue(\"target\")\ntarget = aws.iam.RolePolicy(\"target\",\n role=example.id,\n policy=pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Action\": [\"sqs:SendMessage\"],\n \"Resource\": [target_queue.arn],\n }],\n }))\nexample_pipe = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example.arn,\n source=source_queue.arn,\n target=target_queue.arn,\n opts = pulumi.ResourceOptions(depends_on=[\n source,\n target,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"pipes.amazonaws.com\",\n },\n [\"Condition\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"StringEquals\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"aws:SourceAccount\"] = main.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n },\n },\n },\n }),\n });\n\n var sourceQueue = new Aws.Sqs.Queue(\"source\");\n\n var source = new Aws.Iam.RolePolicy(\"source\", new()\n {\n Role = example.Id,\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = new[]\n {\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n },\n [\"Resource\"] = new[]\n {\n sourceQueue.Arn,\n },\n },\n },\n })),\n });\n\n var targetQueue = new Aws.Sqs.Queue(\"target\");\n\n var target = new Aws.Iam.RolePolicy(\"target\", new()\n {\n Role = example.Id,\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = new[]\n {\n \"sqs:SendMessage\",\n },\n [\"Resource\"] = new[]\n {\n targetQueue.Arn,\n },\n },\n },\n })),\n });\n\n var examplePipe = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = example.Arn,\n Source = sourceQueue.Arn,\n Target = targetQueue.Arn,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n source,\n target,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": map[string]interface{}{\n\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\"Service\": \"pipes.amazonaws.com\",\n\t\t\t\t},\n\t\t\t\t\"Condition\": map[string]interface{}{\n\t\t\t\t\t\"StringEquals\": map[string]interface{}{\n\t\t\t\t\t\t\"aws:SourceAccount\": main.AccountId,\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\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceQueue, err := sqs.NewQueue(ctx, \"source\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := iam.NewRolePolicy(ctx, \"source\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: example.ID(),\n\t\t\tPolicy: sourceQueue.Arn.ApplyT(func(arn string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"sqs:DeleteMessage\",\n\t\t\t\t\t\t\t\t\"sqs:GetQueueAttributes\",\n\t\t\t\t\t\t\t\t\"sqs:ReceiveMessage\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tarn,\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\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson1 := string(tmpJSON1)\n\t\t\t\treturn pulumi.String(json1), 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\ttargetQueue, err := sqs.NewQueue(ctx, \"target\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttarget, err := iam.NewRolePolicy(ctx, \"target\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: example.ID(),\n\t\t\tPolicy: targetQueue.Arn.ApplyT(func(arn string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"sqs:SendMessage\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tarn,\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\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson2 := string(tmpJSON2)\n\t\t\t\treturn pulumi.String(json2), 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\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: example.Arn,\n\t\t\tSource: sourceQueue.Arn,\n\t\t\tTarget: targetQueue.Arn,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsource,\n\t\t\ttarget,\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.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 main = AwsFunctions.getCallerIdentity();\n\n var example = new Role(\"example\", RoleArgs.builder()\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"pipes.amazonaws.com\")\n )),\n jsonProperty(\"Condition\", jsonObject(\n jsonProperty(\"StringEquals\", jsonObject(\n jsonProperty(\"aws:SourceAccount\", main.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n ))\n ))\n ))\n )))\n .build());\n\n var sourceQueue = new Queue(\"sourceQueue\");\n\n var source = new RolePolicy(\"source\", RolePolicyArgs.builder()\n .role(example.id())\n .policy(sourceQueue.arn().applyValue(arn -\u003e serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", jsonArray(\n \"sqs:DeleteMessage\", \n \"sqs:GetQueueAttributes\", \n \"sqs:ReceiveMessage\"\n )),\n jsonProperty(\"Resource\", jsonArray(arn))\n )))\n ))))\n .build());\n\n var targetQueue = new Queue(\"targetQueue\");\n\n var target = new RolePolicy(\"target\", RolePolicyArgs.builder()\n .role(example.id())\n .policy(targetQueue.arn().applyValue(arn -\u003e serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", jsonArray(\"sqs:SendMessage\")),\n jsonProperty(\"Resource\", jsonArray(arn))\n )))\n ))))\n .build());\n\n var examplePipe = new Pipe(\"examplePipe\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(example.arn())\n .source(sourceQueue.arn())\n .target(targetQueue.arn())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n source,\n target)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n Effect: Allow\n Action: sts:AssumeRole\n Principal:\n Service: pipes.amazonaws.com\n Condition:\n StringEquals:\n aws:SourceAccount: ${main.accountId}\n source:\n type: aws:iam:RolePolicy\n properties:\n role: ${example.id}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Effect: Allow\n Action:\n - sqs:DeleteMessage\n - sqs:GetQueueAttributes\n - sqs:ReceiveMessage\n Resource:\n - ${sourceQueue.arn}\n sourceQueue:\n type: aws:sqs:Queue\n name: source\n target:\n type: aws:iam:RolePolicy\n properties:\n role: ${example.id}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Effect: Allow\n Action:\n - sqs:SendMessage\n Resource:\n - ${targetQueue.arn}\n targetQueue:\n type: aws:sqs:Queue\n name: target\n examplePipe:\n type: aws:pipes:Pipe\n name: example\n properties:\n name: example-pipe\n roleArn: ${example.arn}\n source: ${sourceQueue.arn}\n target: ${targetQueue.arn}\n options:\n dependson:\n - ${source}\n - ${target}\nvariables:\n main:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enrichment Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: source.arn,\n target: target.arn,\n enrichment: exampleAwsCloudwatchEventApiDestination.arn,\n enrichmentParameters: {\n httpParameters: {\n pathParameterValues: \"example-path-param\",\n headerParameters: {\n \"example-header\": \"example-value\",\n \"second-example-header\": \"second-example-value\",\n },\n queryStringParameters: {\n \"example-query-string\": \"example-value\",\n \"second-example-query-string\": \"second-example-value\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source[\"arn\"],\n target=target[\"arn\"],\n enrichment=example_aws_cloudwatch_event_api_destination[\"arn\"],\n enrichment_parameters={\n \"http_parameters\": {\n \"path_parameter_values\": \"example-path-param\",\n \"header_parameters\": {\n \"example_header\": \"example-value\",\n \"second_example_header\": \"second-example-value\",\n },\n \"query_string_parameters\": {\n \"example_query_string\": \"example-value\",\n \"second_example_query_string\": \"second-example-value\",\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = source.Arn,\n Target = target.Arn,\n Enrichment = exampleAwsCloudwatchEventApiDestination.Arn,\n EnrichmentParameters = new Aws.Pipes.Inputs.PipeEnrichmentParametersArgs\n {\n HttpParameters = new Aws.Pipes.Inputs.PipeEnrichmentParametersHttpParametersArgs\n {\n PathParameterValues = \"example-path-param\",\n HeaderParameters = \n {\n { \"example-header\", \"example-value\" },\n { \"second-example-header\", \"second-example-value\" },\n },\n QueryStringParameters = \n {\n { \"example-query-string\", \"example-value\" },\n { \"second-example-query-string\", \"second-example-value\" },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\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 := pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(source.Arn),\n\t\t\tTarget: pulumi.Any(target.Arn),\n\t\t\tEnrichment: pulumi.Any(exampleAwsCloudwatchEventApiDestination.Arn),\n\t\t\tEnrichmentParameters: \u0026pipes.PipeEnrichmentParametersArgs{\n\t\t\t\tHttpParameters: \u0026pipes.PipeEnrichmentParametersHttpParametersArgs{\n\t\t\t\t\tPathParameterValues: pulumi.String(\"example-path-param\"),\n\t\t\t\t\tHeaderParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"example-header\": pulumi.String(\"example-value\"),\n\t\t\t\t\t\t\"second-example-header\": pulumi.String(\"second-example-value\"),\n\t\t\t\t\t},\n\t\t\t\t\tQueryStringParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"example-query-string\": pulumi.String(\"example-value\"),\n\t\t\t\t\t\t\"second-example-query-string\": pulumi.String(\"second-example-value\"),\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.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeEnrichmentParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeEnrichmentParametersHttpParametersArgs;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .enrichment(exampleAwsCloudwatchEventApiDestination.arn())\n .enrichmentParameters(PipeEnrichmentParametersArgs.builder()\n .httpParameters(PipeEnrichmentParametersHttpParametersArgs.builder()\n .pathParameterValues(\"example-path-param\")\n .headerParameters(Map.ofEntries(\n Map.entry(\"example-header\", \"example-value\"),\n Map.entry(\"second-example-header\", \"second-example-value\")\n ))\n .queryStringParameters(Map.ofEntries(\n Map.entry(\"example-query-string\", \"example-value\"),\n Map.entry(\"second-example-query-string\", \"second-example-value\")\n ))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n enrichment: ${exampleAwsCloudwatchEventApiDestination.arn}\n enrichmentParameters:\n httpParameters:\n pathParameterValues: example-path-param\n headerParameters:\n example-header: example-value\n second-example-header: second-example-value\n queryStringParameters:\n example-query-string: example-value\n second-example-query-string: second-example-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: source.arn,\n target: target.arn,\n sourceParameters: {\n filterCriteria: {\n filters: [{\n pattern: JSON.stringify({\n source: [\"event-source\"],\n }),\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source[\"arn\"],\n target=target[\"arn\"],\n source_parameters={\n \"filter_criteria\": {\n \"filters\": [{\n \"pattern\": json.dumps({\n \"source\": [\"event-source\"],\n }),\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = source.Arn,\n Target = target.Arn,\n SourceParameters = new Aws.Pipes.Inputs.PipeSourceParametersArgs\n {\n FilterCriteria = new Aws.Pipes.Inputs.PipeSourceParametersFilterCriteriaArgs\n {\n Filters = new[]\n {\n new Aws.Pipes.Inputs.PipeSourceParametersFilterCriteriaFilterArgs\n {\n Pattern = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"source\"] = new[]\n {\n \"event-source\",\n },\n }),\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"source\": []string{\n\t\t\t\t\"event-source\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(source.Arn),\n\t\t\tTarget: pulumi.Any(target.Arn),\n\t\t\tSourceParameters: \u0026pipes.PipeSourceParametersArgs{\n\t\t\t\tFilterCriteria: \u0026pipes.PipeSourceParametersFilterCriteriaArgs{\n\t\t\t\t\tFilters: pipes.PipeSourceParametersFilterCriteriaFilterArray{\n\t\t\t\t\t\t\u0026pipes.PipeSourceParametersFilterCriteriaFilterArgs{\n\t\t\t\t\t\t\tPattern: pulumi.String(json0),\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.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersFilterCriteriaArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .sourceParameters(PipeSourceParametersArgs.builder()\n .filterCriteria(PipeSourceParametersFilterCriteriaArgs.builder()\n .filters(PipeSourceParametersFilterCriteriaFilterArgs.builder()\n .pattern(serializeJson(\n jsonObject(\n jsonProperty(\"source\", jsonArray(\"event-source\"))\n )))\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n sourceParameters:\n filterCriteria:\n filters:\n - pattern:\n fn::toJSON:\n source:\n - event-source\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### CloudWatch Logs Logging Configuration Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudwatch.LogGroup(\"example\", {name: \"example-pipe-target\"});\nconst examplePipe = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: sourceAwsSqsQueue.arn,\n target: targetAwsSqsQueue.arn,\n logConfiguration: {\n includeExecutionDatas: [\"ALL\"],\n level: \"INFO\",\n cloudwatchLogsLogDestination: {\n logGroupArn: targetAwsCloudwatchLogGroup.arn,\n },\n },\n}, {\n dependsOn: [\n source,\n target,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudwatch.LogGroup(\"example\", name=\"example-pipe-target\")\nexample_pipe = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source_aws_sqs_queue[\"arn\"],\n target=target_aws_sqs_queue[\"arn\"],\n log_configuration={\n \"include_execution_datas\": [\"ALL\"],\n \"level\": \"INFO\",\n \"cloudwatch_logs_log_destination\": {\n \"log_group_arn\": target_aws_cloudwatch_log_group[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n source,\n target,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"example-pipe-target\",\n });\n\n var examplePipe = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = sourceAwsSqsQueue.Arn,\n Target = targetAwsSqsQueue.Arn,\n LogConfiguration = new Aws.Pipes.Inputs.PipeLogConfigurationArgs\n {\n IncludeExecutionDatas = new[]\n {\n \"ALL\",\n },\n Level = \"INFO\",\n CloudwatchLogsLogDestination = new Aws.Pipes.Inputs.PipeLogConfigurationCloudwatchLogsLogDestinationArgs\n {\n LogGroupArn = targetAwsCloudwatchLogGroup.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n source,\n target,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\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 := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"example-pipe-target\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(sourceAwsSqsQueue.Arn),\n\t\t\tTarget: pulumi.Any(targetAwsSqsQueue.Arn),\n\t\t\tLogConfiguration: \u0026pipes.PipeLogConfigurationArgs{\n\t\t\t\tIncludeExecutionDatas: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t},\n\t\t\t\tLevel: pulumi.String(\"INFO\"),\n\t\t\t\tCloudwatchLogsLogDestination: \u0026pipes.PipeLogConfigurationCloudwatchLogsLogDestinationArgs{\n\t\t\t\t\tLogGroupArn: pulumi.Any(targetAwsCloudwatchLogGroup.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsource,\n\t\t\ttarget,\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.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeLogConfigurationArgs;\nimport com.pulumi.aws.pipes.inputs.PipeLogConfigurationCloudwatchLogsLogDestinationArgs;\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 example = new LogGroup(\"example\", LogGroupArgs.builder()\n .name(\"example-pipe-target\")\n .build());\n\n var examplePipe = new Pipe(\"examplePipe\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(sourceAwsSqsQueue.arn())\n .target(targetAwsSqsQueue.arn())\n .logConfiguration(PipeLogConfigurationArgs.builder()\n .includeExecutionDatas(\"ALL\")\n .level(\"INFO\")\n .cloudwatchLogsLogDestination(PipeLogConfigurationCloudwatchLogsLogDestinationArgs.builder()\n .logGroupArn(targetAwsCloudwatchLogGroup.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n source,\n target)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudwatch:LogGroup\n properties:\n name: example-pipe-target\n examplePipe:\n type: aws:pipes:Pipe\n name: example\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${sourceAwsSqsQueue.arn}\n target: ${targetAwsSqsQueue.arn}\n logConfiguration:\n includeExecutionDatas:\n - ALL\n level: INFO\n cloudwatchLogsLogDestination:\n logGroupArn: ${targetAwsCloudwatchLogGroup.arn}\n options:\n dependson:\n - ${source}\n - ${target}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS Source and Target Configuration Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersSqsQueueParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeTargetParametersArgs;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .sourceParameters(PipeSourceParametersArgs.builder()\n .sqsQueueParameters(PipeSourceParametersSqsQueueParametersArgs.builder()\n .batchSize(1)\n .maximumBatchingWindowInSeconds(2)\n .build())\n .build())\n .targetParameters(PipeTargetParametersArgs.builder()\n .sqsQueue(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n sourceParameters:\n sqsQueueParameters:\n batchSize: 1\n maximumBatchingWindowInSeconds: 2\n targetParameters:\n sqsQueue:\n - messageDeduplicationId: example-dedupe\n messageGroupId: example-group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import pipes using the `name`. For example:\n\n```sh\n$ pulumi import aws:pipes/pipe:Pipe example my-pipe\n```\n", + "description": "Resource for managing an AWS EventBridge Pipes Pipe.\n\nYou can find out more about EventBridge Pipes in the [User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html).\n\nEventBridge Pipes are very configurable, and may require IAM permissions to work correctly. More information on the configuration options and IAM permissions can be found in the [User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html).\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = aws.getCallerIdentity({});\nconst example = new aws.iam.Role(\"example\", {assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: {\n Effect: \"Allow\",\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"pipes.amazonaws.com\",\n },\n Condition: {\n StringEquals: {\n \"aws:SourceAccount\": main.then(main =\u003e main.accountId),\n },\n },\n },\n})});\nconst sourceQueue = new aws.sqs.Queue(\"source\", {});\nconst source = new aws.iam.RolePolicy(\"source\", {\n role: example.id,\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [{\n Effect: \"Allow\",\n Action: [\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n ],\n Resource: [sourceQueue.arn],\n }],\n }),\n});\nconst targetQueue = new aws.sqs.Queue(\"target\", {});\nconst target = new aws.iam.RolePolicy(\"target\", {\n role: example.id,\n policy: pulumi.jsonStringify({\n Version: \"2012-10-17\",\n Statement: [{\n Effect: \"Allow\",\n Action: [\"sqs:SendMessage\"],\n Resource: [targetQueue.arn],\n }],\n }),\n});\nconst examplePipe = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: example.arn,\n source: sourceQueue.arn,\n target: targetQueue.arn,\n}, {\n dependsOn: [\n source,\n target,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmain = aws.get_caller_identity()\nexample = aws.iam.Role(\"example\", assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"pipes.amazonaws.com\",\n },\n \"Condition\": {\n \"StringEquals\": {\n \"aws:SourceAccount\": main.account_id,\n },\n },\n },\n}))\nsource_queue = aws.sqs.Queue(\"source\")\nsource = aws.iam.RolePolicy(\"source\",\n role=example.id,\n policy=pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n ],\n \"Resource\": [source_queue.arn],\n }],\n }))\ntarget_queue = aws.sqs.Queue(\"target\")\ntarget = aws.iam.RolePolicy(\"target\",\n role=example.id,\n policy=pulumi.Output.json_dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Action\": [\"sqs:SendMessage\"],\n \"Resource\": [target_queue.arn],\n }],\n }))\nexample_pipe = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example.arn,\n source=source_queue.arn,\n target=target_queue.arn,\n opts = pulumi.ResourceOptions(depends_on=[\n source,\n target,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"pipes.amazonaws.com\",\n },\n [\"Condition\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"StringEquals\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"aws:SourceAccount\"] = main.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n },\n },\n },\n }),\n });\n\n var sourceQueue = new Aws.Sqs.Queue(\"source\");\n\n var source = new Aws.Iam.RolePolicy(\"source\", new()\n {\n Role = example.Id,\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = new[]\n {\n \"sqs:DeleteMessage\",\n \"sqs:GetQueueAttributes\",\n \"sqs:ReceiveMessage\",\n },\n [\"Resource\"] = new[]\n {\n sourceQueue.Arn,\n },\n },\n },\n })),\n });\n\n var targetQueue = new Aws.Sqs.Queue(\"target\");\n\n var target = new Aws.Iam.RolePolicy(\"target\", new()\n {\n Role = example.Id,\n Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Effect\"] = \"Allow\",\n [\"Action\"] = new[]\n {\n \"sqs:SendMessage\",\n },\n [\"Resource\"] = new[]\n {\n targetQueue.Arn,\n },\n },\n },\n })),\n });\n\n var examplePipe = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = example.Arn,\n Source = sourceQueue.Arn,\n Target = targetQueue.Arn,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n source,\n target,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": map[string]interface{}{\n\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\"Service\": \"pipes.amazonaws.com\",\n\t\t\t\t},\n\t\t\t\t\"Condition\": map[string]interface{}{\n\t\t\t\t\t\"StringEquals\": map[string]interface{}{\n\t\t\t\t\t\t\"aws:SourceAccount\": main.AccountId,\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\tjson0 := string(tmpJSON0)\n\t\texample, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceQueue, err := sqs.NewQueue(ctx, \"source\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := iam.NewRolePolicy(ctx, \"source\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: example.ID(),\n\t\t\tPolicy: sourceQueue.Arn.ApplyT(func(arn string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"sqs:DeleteMessage\",\n\t\t\t\t\t\t\t\t\"sqs:GetQueueAttributes\",\n\t\t\t\t\t\t\t\t\"sqs:ReceiveMessage\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tarn,\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\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson1 := string(tmpJSON1)\n\t\t\t\treturn pulumi.String(json1), 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\ttargetQueue, err := sqs.NewQueue(ctx, \"target\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttarget, err := iam.NewRolePolicy(ctx, \"target\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: example.ID(),\n\t\t\tPolicy: targetQueue.Arn.ApplyT(func(arn string) (pulumi.String, error) {\n\t\t\t\tvar _zero pulumi.String\n\t\t\t\ttmpJSON2, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"sqs:SendMessage\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tarn,\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\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson2 := string(tmpJSON2)\n\t\t\t\treturn pulumi.String(json2), 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\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: example.Arn,\n\t\t\tSource: sourceQueue.Arn,\n\t\t\tTarget: targetQueue.Arn,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsource,\n\t\t\ttarget,\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.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.sqs.Queue;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 main = AwsFunctions.getCallerIdentity();\n\n var example = new Role(\"example\", RoleArgs.builder()\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"pipes.amazonaws.com\")\n )),\n jsonProperty(\"Condition\", jsonObject(\n jsonProperty(\"StringEquals\", jsonObject(\n jsonProperty(\"aws:SourceAccount\", main.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n ))\n ))\n ))\n )))\n .build());\n\n var sourceQueue = new Queue(\"sourceQueue\");\n\n var source = new RolePolicy(\"source\", RolePolicyArgs.builder()\n .role(example.id())\n .policy(sourceQueue.arn().applyValue(arn -\u003e serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", jsonArray(\n \"sqs:DeleteMessage\", \n \"sqs:GetQueueAttributes\", \n \"sqs:ReceiveMessage\"\n )),\n jsonProperty(\"Resource\", jsonArray(arn))\n )))\n ))))\n .build());\n\n var targetQueue = new Queue(\"targetQueue\");\n\n var target = new RolePolicy(\"target\", RolePolicyArgs.builder()\n .role(example.id())\n .policy(targetQueue.arn().applyValue(arn -\u003e serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Action\", jsonArray(\"sqs:SendMessage\")),\n jsonProperty(\"Resource\", jsonArray(arn))\n )))\n ))))\n .build());\n\n var examplePipe = new Pipe(\"examplePipe\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(example.arn())\n .source(sourceQueue.arn())\n .target(targetQueue.arn())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n source,\n target)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n Effect: Allow\n Action: sts:AssumeRole\n Principal:\n Service: pipes.amazonaws.com\n Condition:\n StringEquals:\n aws:SourceAccount: ${main.accountId}\n source:\n type: aws:iam:RolePolicy\n properties:\n role: ${example.id}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Effect: Allow\n Action:\n - sqs:DeleteMessage\n - sqs:GetQueueAttributes\n - sqs:ReceiveMessage\n Resource:\n - ${sourceQueue.arn}\n sourceQueue:\n type: aws:sqs:Queue\n name: source\n target:\n type: aws:iam:RolePolicy\n properties:\n role: ${example.id}\n policy:\n fn::toJSON:\n Version: 2012-10-17\n Statement:\n - Effect: Allow\n Action:\n - sqs:SendMessage\n Resource:\n - ${targetQueue.arn}\n targetQueue:\n type: aws:sqs:Queue\n name: target\n examplePipe:\n type: aws:pipes:Pipe\n name: example\n properties:\n name: example-pipe\n roleArn: ${example.arn}\n source: ${sourceQueue.arn}\n target: ${targetQueue.arn}\n options:\n dependson:\n - ${source}\n - ${target}\nvariables:\n main:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enrichment Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: source.arn,\n target: target.arn,\n enrichment: exampleAwsCloudwatchEventApiDestination.arn,\n enrichmentParameters: {\n httpParameters: {\n pathParameterValues: \"example-path-param\",\n headerParameters: {\n \"example-header\": \"example-value\",\n \"second-example-header\": \"second-example-value\",\n },\n queryStringParameters: {\n \"example-query-string\": \"example-value\",\n \"second-example-query-string\": \"second-example-value\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source[\"arn\"],\n target=target[\"arn\"],\n enrichment=example_aws_cloudwatch_event_api_destination[\"arn\"],\n enrichment_parameters={\n \"http_parameters\": {\n \"path_parameter_values\": \"example-path-param\",\n \"header_parameters\": {\n \"example_header\": \"example-value\",\n \"second_example_header\": \"second-example-value\",\n },\n \"query_string_parameters\": {\n \"example_query_string\": \"example-value\",\n \"second_example_query_string\": \"second-example-value\",\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = source.Arn,\n Target = target.Arn,\n Enrichment = exampleAwsCloudwatchEventApiDestination.Arn,\n EnrichmentParameters = new Aws.Pipes.Inputs.PipeEnrichmentParametersArgs\n {\n HttpParameters = new Aws.Pipes.Inputs.PipeEnrichmentParametersHttpParametersArgs\n {\n PathParameterValues = \"example-path-param\",\n HeaderParameters = \n {\n { \"example-header\", \"example-value\" },\n { \"second-example-header\", \"second-example-value\" },\n },\n QueryStringParameters = \n {\n { \"example-query-string\", \"example-value\" },\n { \"second-example-query-string\", \"second-example-value\" },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\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 := pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(source.Arn),\n\t\t\tTarget: pulumi.Any(target.Arn),\n\t\t\tEnrichment: pulumi.Any(exampleAwsCloudwatchEventApiDestination.Arn),\n\t\t\tEnrichmentParameters: \u0026pipes.PipeEnrichmentParametersArgs{\n\t\t\t\tHttpParameters: \u0026pipes.PipeEnrichmentParametersHttpParametersArgs{\n\t\t\t\t\tPathParameterValues: pulumi.String(\"example-path-param\"),\n\t\t\t\t\tHeaderParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"example-header\": pulumi.String(\"example-value\"),\n\t\t\t\t\t\t\"second-example-header\": pulumi.String(\"second-example-value\"),\n\t\t\t\t\t},\n\t\t\t\t\tQueryStringParameters: pulumi.StringMap{\n\t\t\t\t\t\t\"example-query-string\": pulumi.String(\"example-value\"),\n\t\t\t\t\t\t\"second-example-query-string\": pulumi.String(\"second-example-value\"),\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.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeEnrichmentParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeEnrichmentParametersHttpParametersArgs;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .enrichment(exampleAwsCloudwatchEventApiDestination.arn())\n .enrichmentParameters(PipeEnrichmentParametersArgs.builder()\n .httpParameters(PipeEnrichmentParametersHttpParametersArgs.builder()\n .pathParameterValues(\"example-path-param\")\n .headerParameters(Map.ofEntries(\n Map.entry(\"example-header\", \"example-value\"),\n Map.entry(\"second-example-header\", \"second-example-value\")\n ))\n .queryStringParameters(Map.ofEntries(\n Map.entry(\"example-query-string\", \"example-value\"),\n Map.entry(\"second-example-query-string\", \"second-example-value\")\n ))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n enrichment: ${exampleAwsCloudwatchEventApiDestination.arn}\n enrichmentParameters:\n httpParameters:\n pathParameterValues: example-path-param\n headerParameters:\n example-header: example-value\n second-example-header: second-example-value\n queryStringParameters:\n example-query-string: example-value\n second-example-query-string: second-example-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: source.arn,\n target: target.arn,\n sourceParameters: {\n filterCriteria: {\n filters: [{\n pattern: JSON.stringify({\n source: [\"event-source\"],\n }),\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source[\"arn\"],\n target=target[\"arn\"],\n source_parameters={\n \"filter_criteria\": {\n \"filters\": [{\n \"pattern\": json.dumps({\n \"source\": [\"event-source\"],\n }),\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = source.Arn,\n Target = target.Arn,\n SourceParameters = new Aws.Pipes.Inputs.PipeSourceParametersArgs\n {\n FilterCriteria = new Aws.Pipes.Inputs.PipeSourceParametersFilterCriteriaArgs\n {\n Filters = new[]\n {\n new Aws.Pipes.Inputs.PipeSourceParametersFilterCriteriaFilterArgs\n {\n Pattern = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"source\"] = new[]\n {\n \"event-source\",\n },\n }),\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"source\": []string{\n\t\t\t\t\"event-source\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(source.Arn),\n\t\t\tTarget: pulumi.Any(target.Arn),\n\t\t\tSourceParameters: \u0026pipes.PipeSourceParametersArgs{\n\t\t\t\tFilterCriteria: \u0026pipes.PipeSourceParametersFilterCriteriaArgs{\n\t\t\t\t\tFilters: pipes.PipeSourceParametersFilterCriteriaFilterArray{\n\t\t\t\t\t\t\u0026pipes.PipeSourceParametersFilterCriteriaFilterArgs{\n\t\t\t\t\t\t\tPattern: pulumi.String(json0),\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.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersFilterCriteriaArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .sourceParameters(PipeSourceParametersArgs.builder()\n .filterCriteria(PipeSourceParametersFilterCriteriaArgs.builder()\n .filters(PipeSourceParametersFilterCriteriaFilterArgs.builder()\n .pattern(serializeJson(\n jsonObject(\n jsonProperty(\"source\", jsonArray(\"event-source\"))\n )))\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n sourceParameters:\n filterCriteria:\n filters:\n - pattern:\n fn::toJSON:\n source:\n - event-source\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### CloudWatch Logs Logging Configuration Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cloudwatch.LogGroup(\"example\", {name: \"example-pipe-target\"});\nconst examplePipe = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: sourceAwsSqsQueue.arn,\n target: targetAwsSqsQueue.arn,\n logConfiguration: {\n includeExecutionDatas: [\"ALL\"],\n level: \"INFO\",\n cloudwatchLogsLogDestination: {\n logGroupArn: targetAwsCloudwatchLogGroup.arn,\n },\n },\n}, {\n dependsOn: [\n source,\n target,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudwatch.LogGroup(\"example\", name=\"example-pipe-target\")\nexample_pipe = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source_aws_sqs_queue[\"arn\"],\n target=target_aws_sqs_queue[\"arn\"],\n log_configuration={\n \"include_execution_datas\": [\"ALL\"],\n \"level\": \"INFO\",\n \"cloudwatch_logs_log_destination\": {\n \"log_group_arn\": target_aws_cloudwatch_log_group[\"arn\"],\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n source,\n target,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CloudWatch.LogGroup(\"example\", new()\n {\n Name = \"example-pipe-target\",\n });\n\n var examplePipe = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = sourceAwsSqsQueue.Arn,\n Target = targetAwsSqsQueue.Arn,\n LogConfiguration = new Aws.Pipes.Inputs.PipeLogConfigurationArgs\n {\n IncludeExecutionDatas = new[]\n {\n \"ALL\",\n },\n Level = \"INFO\",\n CloudwatchLogsLogDestination = new Aws.Pipes.Inputs.PipeLogConfigurationCloudwatchLogsLogDestinationArgs\n {\n LogGroupArn = targetAwsCloudwatchLogGroup.Arn,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n source,\n target,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\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 := cloudwatch.NewLogGroup(ctx, \"example\", \u0026cloudwatch.LogGroupArgs{\n\t\t\tName: pulumi.String(\"example-pipe-target\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(sourceAwsSqsQueue.Arn),\n\t\t\tTarget: pulumi.Any(targetAwsSqsQueue.Arn),\n\t\t\tLogConfiguration: \u0026pipes.PipeLogConfigurationArgs{\n\t\t\t\tIncludeExecutionDatas: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ALL\"),\n\t\t\t\t},\n\t\t\t\tLevel: pulumi.String(\"INFO\"),\n\t\t\t\tCloudwatchLogsLogDestination: \u0026pipes.PipeLogConfigurationCloudwatchLogsLogDestinationArgs{\n\t\t\t\t\tLogGroupArn: pulumi.Any(targetAwsCloudwatchLogGroup.Arn),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsource,\n\t\t\ttarget,\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.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.cloudwatch.LogGroupArgs;\nimport com.pulumi.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeLogConfigurationArgs;\nimport com.pulumi.aws.pipes.inputs.PipeLogConfigurationCloudwatchLogsLogDestinationArgs;\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 example = new LogGroup(\"example\", LogGroupArgs.builder()\n .name(\"example-pipe-target\")\n .build());\n\n var examplePipe = new Pipe(\"examplePipe\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(sourceAwsSqsQueue.arn())\n .target(targetAwsSqsQueue.arn())\n .logConfiguration(PipeLogConfigurationArgs.builder()\n .includeExecutionDatas(\"ALL\")\n .level(\"INFO\")\n .cloudwatchLogsLogDestination(PipeLogConfigurationCloudwatchLogsLogDestinationArgs.builder()\n .logGroupArn(targetAwsCloudwatchLogGroup.arn())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n source,\n target)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudwatch:LogGroup\n properties:\n name: example-pipe-target\n examplePipe:\n type: aws:pipes:Pipe\n name: example\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${sourceAwsSqsQueue.arn}\n target: ${targetAwsSqsQueue.arn}\n logConfiguration:\n includeExecutionDatas:\n - ALL\n level: INFO\n cloudwatchLogsLogDestination:\n logGroupArn: ${targetAwsCloudwatchLogGroup.arn}\n options:\n dependson:\n - ${source}\n - ${target}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### SQS Source and Target Configuration Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.pipes.Pipe(\"example\", {\n name: \"example-pipe\",\n roleArn: exampleAwsIamRole.arn,\n source: source.arn,\n target: target.arn,\n sourceParameters: {\n sqsQueueParameters: {\n batchSize: 1,\n maximumBatchingWindowInSeconds: 2,\n },\n },\n targetParameters: {\n sqsQueueParameters: {\n messageDeduplicationId: \"example-dedupe\",\n messageGroupId: \"example-group\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.pipes.Pipe(\"example\",\n name=\"example-pipe\",\n role_arn=example_aws_iam_role[\"arn\"],\n source=source[\"arn\"],\n target=target[\"arn\"],\n source_parameters={\n \"sqs_queue_parameters\": {\n \"batch_size\": 1,\n \"maximum_batching_window_in_seconds\": 2,\n },\n },\n target_parameters={\n \"sqs_queue_parameters\": {\n \"message_deduplication_id\": \"example-dedupe\",\n \"message_group_id\": \"example-group\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Pipes.Pipe(\"example\", new()\n {\n Name = \"example-pipe\",\n RoleArn = exampleAwsIamRole.Arn,\n Source = source.Arn,\n Target = target.Arn,\n SourceParameters = new Aws.Pipes.Inputs.PipeSourceParametersArgs\n {\n SqsQueueParameters = new Aws.Pipes.Inputs.PipeSourceParametersSqsQueueParametersArgs\n {\n BatchSize = 1,\n MaximumBatchingWindowInSeconds = 2,\n },\n },\n TargetParameters = new Aws.Pipes.Inputs.PipeTargetParametersArgs\n {\n SqsQueueParameters = new Aws.Pipes.Inputs.PipeTargetParametersSqsQueueParametersArgs\n {\n MessageDeduplicationId = \"example-dedupe\",\n MessageGroupId = \"example-group\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes\"\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 := pipes.NewPipe(ctx, \"example\", \u0026pipes.PipeArgs{\n\t\t\tName: pulumi.String(\"example-pipe\"),\n\t\t\tRoleArn: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tSource: pulumi.Any(source.Arn),\n\t\t\tTarget: pulumi.Any(target.Arn),\n\t\t\tSourceParameters: \u0026pipes.PipeSourceParametersArgs{\n\t\t\t\tSqsQueueParameters: \u0026pipes.PipeSourceParametersSqsQueueParametersArgs{\n\t\t\t\t\tBatchSize: pulumi.Int(1),\n\t\t\t\t\tMaximumBatchingWindowInSeconds: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTargetParameters: \u0026pipes.PipeTargetParametersArgs{\n\t\t\t\tSqsQueueParameters: \u0026pipes.PipeTargetParametersSqsQueueParametersArgs{\n\t\t\t\t\tMessageDeduplicationId: pulumi.String(\"example-dedupe\"),\n\t\t\t\t\tMessageGroupId: pulumi.String(\"example-group\"),\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.aws.pipes.Pipe;\nimport com.pulumi.aws.pipes.PipeArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeSourceParametersSqsQueueParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeTargetParametersArgs;\nimport com.pulumi.aws.pipes.inputs.PipeTargetParametersSqsQueueParametersArgs;\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 example = new Pipe(\"example\", PipeArgs.builder()\n .name(\"example-pipe\")\n .roleArn(exampleAwsIamRole.arn())\n .source(source.arn())\n .target(target.arn())\n .sourceParameters(PipeSourceParametersArgs.builder()\n .sqsQueueParameters(PipeSourceParametersSqsQueueParametersArgs.builder()\n .batchSize(1)\n .maximumBatchingWindowInSeconds(2)\n .build())\n .build())\n .targetParameters(PipeTargetParametersArgs.builder()\n .sqsQueueParameters(PipeTargetParametersSqsQueueParametersArgs.builder()\n .messageDeduplicationId(\"example-dedupe\")\n .messageGroupId(\"example-group\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:pipes:Pipe\n properties:\n name: example-pipe\n roleArn: ${exampleAwsIamRole.arn}\n source: ${source.arn}\n target: ${target.arn}\n sourceParameters:\n sqsQueueParameters:\n batchSize: 1\n maximumBatchingWindowInSeconds: 2\n targetParameters:\n sqsQueueParameters:\n messageDeduplicationId: example-dedupe\n messageGroupId: example-group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import pipes using the `name`. For example:\n\n```sh\n$ pulumi import aws:pipes/pipe:Pipe example my-pipe\n```\n", "properties": { "arn": { "type": "string", @@ -319697,7 +321001,7 @@ }, "dbSubnetGroupName": { "type": "string", - "description": "DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n" + "description": "Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n" }, "dbiResourceId": { "type": "string", @@ -319872,7 +321176,7 @@ }, "dbSubnetGroupName": { "type": "string", - "description": "DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n", + "description": "Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n", "willReplaceOnChanges": true }, "engine": { @@ -320001,7 +321305,7 @@ }, "dbSubnetGroupName": { "type": "string", - "description": "DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n", + "description": "Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`.\n", "willReplaceOnChanges": true }, "dbiResourceId": { @@ -339494,7 +340798,7 @@ }, "appType": { "type": "string", - "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`.\n" + "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`.\n" }, "arn": { "type": "string", @@ -339548,7 +340852,7 @@ }, "appType": { "type": "string", - "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`.\n", + "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`.\n", "willReplaceOnChanges": true }, "domainId": { @@ -339594,7 +340898,7 @@ }, "appType": { "type": "string", - "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`.\n", + "description": "The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`.\n", "willReplaceOnChanges": true }, "arn": { @@ -373287,6 +374591,53 @@ "type": "object" } }, + "aws:bedrock/getAgentAgentVersions:getAgentAgentVersions": { + "description": "Data source for managing an AWS Amazon BedrockAgent Agent Versions.\n\n## Example Usage\n\n### Basic Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.bedrock.getAgentAgentVersions({\n agentId: testAwsBedrockagentAgent.agentId,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.bedrock.get_agent_agent_versions(agent_id=test_aws_bedrockagent_agent[\"agentId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Bedrock.GetAgentAgentVersions.Invoke(new()\n {\n AgentId = testAwsBedrockagentAgent.AgentId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.GetAgentAgentVersions(ctx, \u0026bedrock.GetAgentAgentVersionsArgs{\n\t\t\tAgentId: testAwsBedrockagentAgent.AgentId,\n\t\t}, nil)\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.aws.bedrock.BedrockFunctions;\nimport com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs;\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 test = BedrockFunctions.getAgentAgentVersions(GetAgentAgentVersionsArgs.builder()\n .agentId(testAwsBedrockagentAgent.agentId())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:bedrock:getAgentAgentVersions\n Arguments:\n agentId: ${testAwsBedrockagentAgent.agentId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getAgentAgentVersions.\n", + "properties": { + "agentId": { + "type": "string", + "description": "Unique identifier of the agent.\n" + }, + "agentVersionSummaries": { + "type": "array", + "items": { + "$ref": "#/types/aws:bedrock/getAgentAgentVersionsAgentVersionSummary:getAgentAgentVersionsAgentVersionSummary" + }, + "description": "List of objects, each of which contains information about a version of the agent. See Agent Version Summaries\n" + } + }, + "type": "object", + "required": [ + "agentId" + ] + }, + "outputs": { + "description": "A collection of values returned by getAgentAgentVersions.\n", + "properties": { + "agentId": { + "type": "string" + }, + "agentVersionSummaries": { + "description": "List of objects, each of which contains information about a version of the agent. See Agent Version Summaries\n", + "items": { + "$ref": "#/types/aws:bedrock/getAgentAgentVersionsAgentVersionSummary:getAgentAgentVersionsAgentVersionSummary" + }, + "type": "array" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + } + }, + "required": [ + "agentId", + "id" + ], + "type": "object" + } + }, "aws:bedrock/getCustomModel:getCustomModel": { "description": "Returns properties of a specific Amazon Bedrock custom model.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.bedrock.getCustomModel({\n modelId: \"arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 \",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.bedrock.get_custom_model(model_id=\"arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 \")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Bedrock.GetCustomModel.Invoke(new()\n {\n ModelId = \"arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 \",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock\"\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 := bedrock.LookupCustomModel(ctx, \u0026bedrock.LookupCustomModelArgs{\n\t\t\tModelId: \"arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 \",\n\t\t}, nil)\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.aws.bedrock.BedrockFunctions;\nimport com.pulumi.aws.bedrock.inputs.GetCustomModelArgs;\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 test = BedrockFunctions.getCustomModel(GetCustomModelArgs.builder()\n .modelId(\"arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 \")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:bedrock:getCustomModel\n Arguments:\n modelId: 'arn:aws:bedrock:us-west-2:123456789012:custom-model/amazon.titan-text-express-v1:0:8k/ly16hhi765j4 '\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index bb0421eac74..63185e02e76 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -80,7 +80,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 // indirect github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 // indirect - github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0 // indirect github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4 // indirect github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.22.4 // indirect github.com/aws/aws-sdk-go-v2/service/appfabric v1.9.3 // indirect @@ -91,9 +91,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/applicationsignals v1.3.0 // indirect github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3 // indirect - github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0 // indirect + github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0 // indirect - github.com/aws/aws-sdk-go-v2/service/athena v1.44.3 // indirect + github.com/aws/aws-sdk-go-v2/service/athena v1.44.4 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/autoscalingplans v1.22.4 // indirect @@ -119,7 +119,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3 // indirect github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.25.0 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.27.3 // indirect @@ -129,9 +129,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/codestarconnections v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5 // indirect - github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0 // indirect + github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1 // indirect github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3 // indirect - github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3 // indirect + github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4 // indirect github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.16.4 // indirect @@ -156,12 +156,12 @@ require ( github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 // indirect github.com/aws/aws-sdk-go-v2/service/efs v1.31.3 // indirect - github.com/aws/aws-sdk-go-v2/service/eks v1.47.0 // indirect + github.com/aws/aws-sdk-go-v2/service/eks v1.48.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.26.3 // indirect @@ -173,15 +173,16 @@ require ( github.com/aws/aws-sdk-go-v2/service/evidently v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 // indirect - github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/fis v1.27.0 // indirect github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2 // indirect + github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 // indirect - github.com/aws/aws-sdk-go-v2/service/glue v1.92.0 // indirect + github.com/aws/aws-sdk-go-v2/service/glue v1.94.0 // indirect github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4 // indirect github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3 // indirect github.com/aws/aws-sdk-go-v2/service/healthlake v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.34.3 // indirect @@ -206,25 +207,27 @@ require ( github.com/aws/aws-sdk-go-v2/service/kinesis v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/lakeformation v1.35.3 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.56.3 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3 // indirect github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0 // indirect + github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/location v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/m2 v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.15.0 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/memorydb v1.21.5 // indirect github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 // indirect - github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 // indirect + github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0 // indirect github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0 // indirect github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/oam v1.13.4 // indirect @@ -233,6 +236,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/osis v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.42.3 // indirect github.com/aws/aws-sdk-go-v2/service/pricing v1.30.3 // indirect @@ -252,8 +256,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/route53 v1.42.3 // indirect github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3 // indirect + github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/rum v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4 // indirect @@ -271,7 +280,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/signer v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/sns v1.31.3 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4 // indirect github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 // indirect github.com/aws/aws-sdk-go-v2/service/ssmsap v1.15.3 // indirect @@ -295,7 +304,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/workspaces v1.45.0 // indirect github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/xray v1.27.3 // indirect - github.com/aws/smithy-go v1.20.3 // indirect + github.com/aws/smithy-go v1.20.4 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beevik/etree v1.4.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect @@ -362,7 +371,7 @@ require ( github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect - github.com/hashicorp/hc-install v0.7.0 // indirect + github.com/hashicorp/hc-install v0.8.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect @@ -377,7 +386,7 @@ require ( github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect - github.com/hashicorp/terraform-plugin-testing v1.9.0 // indirect + github.com/hashicorp/terraform-plugin-testing v1.10.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.12.0 // indirect @@ -462,7 +471,7 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/yuin/goldmark v1.7.4 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-sdk-go-v2/otelaws v0.52.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index 6c802f9357f..bf4833dcf06 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1266,8 +1266,8 @@ github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0 h1:GZ7eaCsYZar0pOQPzBJeP8ImF github.com/aws/aws-sdk-go-v2/service/acmpca v1.35.0/go.mod h1:vDUysl9ROGF6GAsl1OgTg6xHDnw391hCc5+IYg2U/GQ= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3 h1:o1cMErMp45oKZ2ScvBOdVXYhvu6FdUcz0Xn+JpDd408= github.com/aws/aws-sdk-go-v2/service/amp v1.27.3/go.mod h1:TuSBSV1IedYHHrC4A3bW84WjQXNSzc6XasgvuDRDb4E= -github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3 h1:Plmg9O8/Pt4SKvPtUfSqCfv+SSSllouzlISFcvHK4bM= -github.com/aws/aws-sdk-go-v2/service/amplify v1.23.3/go.mod h1:aP9g/m4SSSWUU+htIGXJIY8qy+pGydwr3gpt3OcjBJE= +github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0 h1:AahC79lvGvneGrV4eKufnVjdUW/KySMvwsByQtkumXc= +github.com/aws/aws-sdk-go-v2/service/amplify v1.24.0/go.mod h1:aP9g/m4SSSWUU+htIGXJIY8qy+pGydwr3gpt3OcjBJE= github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4 h1:tya0sBEw+Sb9ztjykjX+InfZLufo4v1XyXhy4uPsyW4= github.com/aws/aws-sdk-go-v2/service/apigateway v1.25.4/go.mod h1:jmTl7BrsxCEUl4HwtL9tCDVfmSmCwatcUQA7QXgtT34= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.22.4 h1:CRu+uzE4qzjJBNkcwCKdzGzx1bMPsmulB7q8qyoa6FI= @@ -1290,12 +1290,12 @@ github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3 h1:UorKcN0SsvTcL4CGZsh2xcK3 github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.3/go.mod h1:Jei7cWyXVkr10MXWBHbbFDIzDWEsVRGDicGNE2Kh05M= github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3 h1:x6wptcqKbH2eQw7v43MI25ILW3OtIyYwZ9gifEM0DW8= github.com/aws/aws-sdk-go-v2/service/apprunner v1.30.3/go.mod h1:buTv8bJjlKxqALyK7/2G1206H/YYllu0R/F9Hz0rhv4= -github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0 h1:novlmw4mzemK9FHfneoni0pG0eCPISgeW72apbWSxdY= -github.com/aws/aws-sdk-go-v2/service/appstream v1.37.0/go.mod h1:zgB9SASIAI0KWFuUSlo9pGC37f6DDjh1ZJfZEhQcPhU= +github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0 h1:fEUEq067unJlCnfcXPBAqS7ZrP4yI1Po8SB6gJsWBwE= +github.com/aws/aws-sdk-go-v2/service/appstream v1.38.0/go.mod h1:zgB9SASIAI0KWFuUSlo9pGC37f6DDjh1ZJfZEhQcPhU= github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0 h1:JAfFXlcC/DzLu6+5QOMAHCCq0spH59Ex00idQUyWkyM= github.com/aws/aws-sdk-go-v2/service/appsync v1.35.0/go.mod h1:1BIEiY+76rNP8PEcv/Iyt7ybml38JqitIbrHfMDEYb8= -github.com/aws/aws-sdk-go-v2/service/athena v1.44.3 h1:T2tJUqFEs8+2944NHspI3dRFELzKH4HfPXdrrIy18WA= -github.com/aws/aws-sdk-go-v2/service/athena v1.44.3/go.mod h1:Vn+X6oPpEMNBFAlGGHHNiNc+Tk10F3dPYLbtbED7fIE= +github.com/aws/aws-sdk-go-v2/service/athena v1.44.4 h1:/pKCxCslWWJpiVuYD1cF5xaklegUpG+qfAg1314DnIM= +github.com/aws/aws-sdk-go-v2/service/athena v1.44.4/go.mod h1:Vn+X6oPpEMNBFAlGGHHNiNc+Tk10F3dPYLbtbED7fIE= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3 h1:bUG4DuAXPb0inqsuG/kugMUwsJxxc2l7Sw2+jR+lvmI= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.35.3/go.mod h1:2uO8WcgMPuckIGMQd4HpDsUFhE8G6t3MkMNnrqREnl0= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.43.3 h1:y4kBd6IXizNoJ1QnVa1kFFmonxnv6mm6z+q7z0Jkdhg= @@ -1346,8 +1346,8 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3 h1:pnvujeesw3tP0iDLK github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.37.3/go.mod h1:eJZGfJNuTmvBgiy2O5XIPlHMBi4GUYoJoKZ6U6wCVVk= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3 h1:9eAjfGKFWduKyCR94Qi/JfORoJLndGydph2dcLtM7gI= github.com/aws/aws-sdk-go-v2/service/codeartifact v1.30.3/go.mod h1:AdirH4VV5v1ik2pOOU0WdEdojBBgzTdECBrOQl0ojOc= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3 h1:v+CiUB5RsmyRpGQ5Tddwn3prS1Y+uCIKVAzZ0Wb3Nyk= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.40.3/go.mod h1:HDiBVjDHX2n7UGFgynZLkVGPXvEnurxlEeaxPF/Ql/0= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0 h1:6PFiOLDIeIvzBKdeIBT9ZnR+SJbEAlHV5k+wrwfzzfw= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.41.0/go.mod h1:HDiBVjDHX2n7UGFgynZLkVGPXvEnurxlEeaxPF/Ql/0= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3 h1:Bz3QJAdZd1z1rxlllKMl0s5y8kjbryqeMhlX57XJ5q8= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.15.3/go.mod h1:R3dXCLxoYZu1zDODLw810Je3DOydgMUC2MZqyf8Gi9g= github.com/aws/aws-sdk-go-v2/service/codecommit v1.25.0 h1:EyXii3hsD7M6mLoZjVbnIo14NI+ig8lopPGYVua/a+M= @@ -1366,12 +1366,12 @@ github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3 h1:dOpVsTQ+KP github.com/aws/aws-sdk-go-v2/service/codestarnotifications v1.24.3/go.mod h1:jzetUSpzLqwmfFc8YWImGPkkrgNrQHR0AeDSPZBVVNY= github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5 h1:iMKC49JNJGq0MLvdKU7DSuB5uZUg33bIfcasNZjoMh4= github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.25.5/go.mod h1:nEqtURWmhc/EXQ1yYIoEtvCqQYgl5yYKxdQU8taJnv0= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0 h1:avuVTcO5UlAqeRGgldWXHv9yvanZmC7Ss8vszi9Cc/c= -github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.42.0/go.mod h1:aynIysFCBIq18wfN2GrIYAeofOnQKV3LtkjyrQKfaFY= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1 h1:sUmqM7zfIHud8iY+fTGcnJXZIVLVcepUv0Vflvmya58= +github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.43.1/go.mod h1:aynIysFCBIq18wfN2GrIYAeofOnQKV3LtkjyrQKfaFY= github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3 h1:3ZaUAjyN1VEdvH8xVTu87GLDpzp/BDTb5WjqpHU8po8= github.com/aws/aws-sdk-go-v2/service/comprehend v1.33.3/go.mod h1:IKMf00PVvTyj1E/ey0MGDuI58VHdRiiMtAf/2+c74EE= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3 h1:0T+EzT9/cWUDqMmZ1Hvg7l7ZOso3satQ2T9trD8T6Ro= -github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.3/go.mod h1:Du8rTxK7DvQDcYWZnAH2kJfCxvIwNfKcdb/1MJJzmn4= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4 h1:eTi7MoaDP2nv0cUUirWN7fduCYVIMJbYRgvVItd/D60= +github.com/aws/aws-sdk-go-v2/service/computeoptimizer v1.37.4/go.mod h1:Du8rTxK7DvQDcYWZnAH2kJfCxvIwNfKcdb/1MJJzmn4= github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3 h1:Ir1tfXyCY3XE/ENEb0mRUBn6VoWb1w9SDKYFwO+otJI= github.com/aws/aws-sdk-go-v2/service/configservice v1.48.3/go.mod h1:Z4sA07QNZ7IWEix3oW3QeiIe21jaCTTOW8ftLgeWI3s= github.com/aws/aws-sdk-go-v2/service/connectcases v1.19.3 h1:6UpDqIDPvl6j+OpjjMfAWRyAKfNvZdRp6e88/gKubis= @@ -1420,8 +1420,8 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.28.3 h1:ss4Ib/kWbYA4pveQtSOluDE/Kf0e github.com/aws/aws-sdk-go-v2/service/drs v1.28.3/go.mod h1:tjzPl3EOCkojHm9Q4y+Kuq7GGSJJw/P0UIqc4eHvtFI= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4 h1:utG3S4T+X7nONPIpRoi1tVcQdAdJxntiVS2yolPJyXc= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.4/go.mod h1:q9vzW3Xr1KEXa8n4waHiFt1PrppNDlMymlYP+xpsFbY= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 h1:ta62lid9JkIpKZtZZXSj6rP2AqY5x1qYGq53ffxqD9Q= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0 h1:t8ACYzijrk828orkkmk0GT+RQnB1sQ7tXBIFq58yG0M= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.175.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY= github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0 h1:lZoKOTEQUf5Oi9qVaZM/Hb0Z6SHIwwpDjbLFOVgB2t8= github.com/aws/aws-sdk-go-v2/service/ecr v1.32.0/go.mod h1:RhaP7Wil0+uuuhiE4FzOOEFZwkmFAk1ZflXzK+O3ptU= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.25.3 h1:n2eqzO9VabUkd77b88Hos6OEtbGohB/TRrtXLTZi38Y= @@ -1430,8 +1430,8 @@ github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3 h1:JkVDQ9mfUSwMOGWIEmyB74mIznjK github.com/aws/aws-sdk-go-v2/service/ecs v1.44.3/go.mod h1:MsQWy/90Xwn3cy5u+eiiXqC521xIm21wOODIweLo4hs= github.com/aws/aws-sdk-go-v2/service/efs v1.31.3 h1:vHNTbv0pFB/E19MokZcWAxZIggWgcLlcixNePBe6iZc= github.com/aws/aws-sdk-go-v2/service/efs v1.31.3/go.mod h1:P1X7sDHKpqZCLac7bRsFF/EN2REOgmeKStQTa14FpEA= -github.com/aws/aws-sdk-go-v2/service/eks v1.47.0 h1:u0VeIQ02COfhmp37ub8zv29bdRtosCYzXoWd+QRebbY= -github.com/aws/aws-sdk-go-v2/service/eks v1.47.0/go.mod h1:awleuSoavuUt32hemzWdSrI47zq7slFtIj8St07EXpE= +github.com/aws/aws-sdk-go-v2/service/eks v1.48.0 h1:KuCjjkUNMUn8RV5ncnJ5rUlkkzKqS5qod67jgU4k/aA= +github.com/aws/aws-sdk-go-v2/service/eks v1.48.0/go.mod h1:awleuSoavuUt32hemzWdSrI47zq7slFtIj8St07EXpE= github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5 h1:SIr8tXccDSncRPMK4Fifl9r6sBqHiHSFepSdIFxSfE8= github.com/aws/aws-sdk-go-v2/service/elasticache v1.40.5/go.mod h1:OcUtpbcNsyMdA/Wv5XenKl8aG3yrqA6HVIOF7ms+Ikc= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.26.2 h1:OA2kqnEcSqpnznO4hb4MKDXxeCRuEkADGgnihLwvn4E= @@ -1456,24 +1456,26 @@ github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3 h1:Y8VS/XHyeJ1cxSCtmvUOFLq github.com/aws/aws-sdk-go-v2/service/finspace v1.26.3/go.mod h1:xbE7o+ADq+h0DeKA/05618ox75wY/jtoZTF9XuvSvnI= github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0 h1:1ovnU04ZuvpaqJUGmqrcwJ9xZViHmdJpZQ0NUqMT5co= github.com/aws/aws-sdk-go-v2/service/firehose v1.32.0/go.mod h1:8rN4JsVXcCHl/f4hwOWVuy+iQ5iolXOdSX+QFYZyubw= -github.com/aws/aws-sdk-go-v2/service/fis v1.26.3 h1:NwddG0xUTBM2zoq4D8rotQmT2Z/S8IGM+D2wYzKFSQs= -github.com/aws/aws-sdk-go-v2/service/fis v1.26.3/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= +github.com/aws/aws-sdk-go-v2/service/fis v1.27.0 h1:UfzjSUfxR7Suy/t1OfkExG0s1vxPgIP1//gIYutlZ9I= +github.com/aws/aws-sdk-go-v2/service/fis v1.27.0/go.mod h1:QmdVf0N/vrhckZLHK4x+f+u9EUuMhetsRgu1rjU1eL0= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3 h1:QeYAz3JhpkTxkS+fifDBfmgWFdSRBI21MQzN2bCO1xo= github.com/aws/aws-sdk-go-v2/service/fms v1.35.3/go.mod h1:GXASgVouW5X/bmEgOoV/tkzJkp5ib7ZeA+YxMc5piqs= github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2 h1:EDZ4UX4c8NJl5Zm2tj1OlbVdNA0wv2xNt55L6g38Va4= github.com/aws/aws-sdk-go-v2/service/fsx v1.47.2/go.mod h1:OKCxqzNOd8LpwsIgoWIhjTkDONHuv3uLoObiT/fbS4Q= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3 h1:VPxT+CQtkd3KB2UHF851tDSUcfExpJCY/Jc/KuuZ1x0= +github.com/aws/aws-sdk-go-v2/service/gamelift v1.33.3/go.mod h1:qwK24U3+b0JBk154r1NkgAJzMfV3qUVktUB2WrBtFwc= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3 h1:de8RU808VMx8km6t2wY3WDWigB6GqbNEcyVQRJFaIYs= github.com/aws/aws-sdk-go-v2/service/glacier v1.24.3/go.mod h1:F/qjepwnxPHHUTK9ikZp14jLyrvB18kZ/22MmaPxtHE= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0 h1:nlm6tZX8gwsVktDKTQe3IOagNVK1+6CGf9IpdWM6x+E= github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.27.0/go.mod h1:ehkx8lBkJkZbdKYX2GyMFmdOAfcGs0mjcbaNXNiHAEE= -github.com/aws/aws-sdk-go-v2/service/glue v1.92.0 h1:6Ah/jvbCgwjii/37TmzYlBNmcTMIgye72GaIVqvV0dM= -github.com/aws/aws-sdk-go-v2/service/glue v1.92.0/go.mod h1:FewbVAhRiTt+/8nKDBFTY68lTmtKlI6QMPKMB6aMboQ= +github.com/aws/aws-sdk-go-v2/service/glue v1.94.0 h1:UP0b6p3uL6WzRPsBUAAEmoJLDTKJXqPbi5rJ24GLSx4= +github.com/aws/aws-sdk-go-v2/service/glue v1.94.0/go.mod h1:FewbVAhRiTt+/8nKDBFTY68lTmtKlI6QMPKMB6aMboQ= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3 h1:riHLAJSqo5zczCyMSo8XDA46X2aDpQvB46F0seKuNEM= github.com/aws/aws-sdk-go-v2/service/grafana v1.24.3/go.mod h1:2ipW9QX9MlePs99Dy8ohwfdW847hMJG6BU9jvixIpxE= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3 h1:5KauP/IHPWGoHni4mt2Sjp0EtHMkdWtPP3v81qaHHyg= github.com/aws/aws-sdk-go-v2/service/greengrass v1.25.3/go.mod h1:Cw18f8jWmb5IQlxd48bIDSXOPfKf5am3Zr9GnOyCcTw= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3 h1:qo3UtqkypEXmUSOGepFqFt1bbEi1EAsJcHm6I3WQtOk= -github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.3/go.mod h1:upTLlgFk3Yw83uo6jNxlFD2EdU/iwZc+FM1OG+Zhikw= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4 h1:1FrnSFwFHcH3SW9yfg2HY4cQG5+IOg4/Yo9z1/BezcA= +github.com/aws/aws-sdk-go-v2/service/groundstation v1.29.4/go.mod h1:upTLlgFk3Yw83uo6jNxlFD2EdU/iwZc+FM1OG+Zhikw= github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3 h1:V7+xcerreGBsoLqraRPAJRCaFiN/04kP85mMeQjgRO4= github.com/aws/aws-sdk-go-v2/service/guardduty v1.45.3/go.mod h1:zjxzcOjdQYMgh90Xm5XRVbeQD7bSeD7XaPB77CNq1C8= github.com/aws/aws-sdk-go-v2/service/healthlake v1.26.3 h1:hIlZp+8MV4c5dWOelj4ygDv8w/uyuKURga1FHT8MI44= @@ -1522,6 +1524,8 @@ github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3 h1:jlRe7BuV+4SghH9 github.com/aws/aws-sdk-go-v2/service/kinesisanalytics v1.23.3/go.mod h1:qb0UKyBXIZbkXmn8M3WoRRZPyfbr1exhN1F21Od1S2o= github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2 h1:0ihcsCNzq2iuIaNEiLDFd7YcUKnuhNvKjoGWV+WaEpA= github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.28.2/go.mod h1:MTVEJMay748rHk8FSi6SqxyOsehY0dbcG+R+KOp9Oig= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3 h1:Ag5oIVdwWHGu4Da0lNPg6iivuQJUmTzBaAyJz7eY7M8= +github.com/aws/aws-sdk-go-v2/service/kinesisvideo v1.25.3/go.mod h1:ZwH9gpRAFa3TSocqR5Qm+Vb1sUBitXq0N1+n67ljqcw= github.com/aws/aws-sdk-go-v2/service/kms v1.35.3 h1:UPTdlTOwWUX49fVi7cymEN6hDqCwe3LNv1vi7TXUutk= github.com/aws/aws-sdk-go-v2/service/kms v1.35.3/go.mod h1:gjDP16zn+WWalyaUqwCCioQ8gU8lzttCCc9jYsiQI/8= github.com/aws/aws-sdk-go-v2/service/lakeformation v1.35.3 h1:Rfl7JjXVdriUprd8TTlbgcTyPU/Pl+v/O/nMD9HYpgA= @@ -1532,6 +1536,8 @@ github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3 h1:HlZn+zJoCEFuUvKLGbGX github.com/aws/aws-sdk-go-v2/service/launchwizard v1.6.3/go.mod h1:IJIHGsE1X4tRCw3s+SMG0NlIQM4yM7rlj5CfUDqT/+M= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0 h1:xA65FxW3dErPwbSXxqfvS4nddclWOqSNGXfy9f32rEU= github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.46.0/go.mod h1:GE1lDQwM3Dm7Fysaet+yeNanYwwTvfLIUlK3P/owUw8= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3 h1:oUTGt/MXO80UlPnEL6vfZjsdaK+M5/kiBQueB5r3/WI= +github.com/aws/aws-sdk-go-v2/service/licensemanager v1.27.3/go.mod h1:tIZEgscb0JE5oYdt3zbdMTiB/zZlsPW2XFCkiZnDtco= github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3 h1:dy4sbyGy7BS4c0KaPZwg1P5ZP+lW+auTVcPiwrmbn8M= github.com/aws/aws-sdk-go-v2/service/lightsail v1.40.3/go.mod h1:EMgqMhof+RuaYvQavxKC0ZWvP7yB4B4NJhP+dbm13u0= github.com/aws/aws-sdk-go-v2/service/location v1.40.3 h1:7wOe0NlRIY/BHJlMHUxkBsChapWvdiVBZQ1myhxWLhc= @@ -1544,8 +1550,8 @@ github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0 h1:Y79CoATONI7M7deTCC5 github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.32.0/go.mod h1:6cpEF3W3oCNX9shBj9N3lrehYdxLuzDbYZdhOiaoN94= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3 h1:1ls4o+377rEfTuZ4YaqDrSo75qpC1ySv8m2FfVk23tw= github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.57.3/go.mod h1:JAiHALb6LfTclPNBdUUTL8xmDZcwBCTbSVgJEkgiIv4= -github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0 h1:H1cqEGQ5rFpTPZawnOH8txXm2+KksldmlaIrAGBifOc= -github.com/aws/aws-sdk-go-v2/service/medialive v1.55.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= +github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0 h1:d4hRdipJh3IzlaxPJ5NARzGy61CmEoRwzp2wRyt0G+s= +github.com/aws/aws-sdk-go-v2/service/medialive v1.56.0/go.mod h1:49kVyWdlOWpusFyzDrmxCG9PqXlKtpKmHYoTv5h1O5k= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3 h1:fBtklFkqk6QhJBzSBgNJiwWySt1RvspmvCvY+giXgdI= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.32.3/go.mod h1:BejXbLdRRWr6uMl4wZrz3iAcJDVgJu3EEstqDq8wxEE= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.15.0 h1:1uii7pAgncfem27f3/Fi86kXK0TASrbujiq1Wn0ETA0= @@ -1558,8 +1564,8 @@ github.com/aws/aws-sdk-go-v2/service/mq v1.25.3 h1:SyRcb9GRPcoNKCuLnpj1qGIr/8stn github.com/aws/aws-sdk-go-v2/service/mq v1.25.3/go.mod h1:Xu8nT/Yj64z5Gj1ebVB3drPEIBsPNDoFhx2xZDrdGlc= github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4 h1:lptYTP7Br5zll9USf2aKY1ZlN69vYAlZOSCv1Q+k1S4= github.com/aws/aws-sdk-go-v2/service/mwaa v1.29.4/go.mod h1:mtgvj3nNI+LiRNT07JaHbTh6E/y8QRrClvd+/GMhMS4= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3 h1:XEbvRhi+ELazJaqh8k0KgTZrAgXM3rmR0hsGPTIpUIo= -github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.10.3/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0 h1:2x6N4qsLINDC7rWxucwNDe61WWqKLBnjNksLqHA+s9w= +github.com/aws/aws-sdk-go-v2/service/neptunegraph v1.11.0/go.mod h1:tfCOS8E/SwIkqHHGgpwRZTly3ZQxcsORZPEVBKMkbx4= github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0 h1:mvbaX3/zHNXRHqHNuk6NOS3JkaxqxPYLqWC4v7tObTI= github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.41.0/go.mod h1:Y9mINPJv+o9q8Ztr5/PRh2C1Iynik64IhPzwe2ERGqQ= github.com/aws/aws-sdk-go-v2/service/networkmonitor v1.5.3 h1:I+m+rITTdVA9BNJeuCzYgMQjqbUE10xcY0OqgBvFEFE= @@ -1576,6 +1582,8 @@ github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3 h1:9oQMCF4oLvWS github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.12.3/go.mod h1:NNyvgUO7XweCVxGTSnllS6XdsD/9Il6Kc63D/stKgiM= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3 h1:xKVSPlN0K1r9VBe6MaKHgUi3EvJotLE9s4etstJq0jw= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.7.3/go.mod h1:4Lk91jzPQQKOzml7LHOR/zAE5FF4+mL0CPrArI8vnCY= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3 h1:uBukpBpEOhnT/iWfhiunEjbPTWXgurgLUr5NJlk7yJk= +github.com/aws/aws-sdk-go-v2/service/pinpoint v1.32.3/go.mod h1:yv43WVYryFKJFbThuv8mHV3zGt4RfnzB/+Om7iwRyxs= github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3 h1:fYZlFa1OvrgaFODrdf0KVDp4qCRHMZNr8S/F3aGNuno= github.com/aws/aws-sdk-go-v2/service/pipes v1.14.3/go.mod h1:S0g2KF8IpU6Ptn46eSywrS+w1PMUwrf/xWF8szcTZ2Q= github.com/aws/aws-sdk-go-v2/service/polly v1.42.3 h1:MuoVKFJr/TUimLdT6nvio+OehAPM7kILgNLF3rYcaP0= @@ -1616,12 +1624,22 @@ github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3 h1:VGLIgiClxmwxBpGzH github.com/aws/aws-sdk-go-v2/service/route53domains v1.25.3/go.mod h1:Kgq5O7ZaDk0mTZmX6YCL+ZtZ1YcJHtGsVubp0OT77MA= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3 h1:N4f5sliNiWcp3abC+8YpcaVjXuaNJIlz/dBd+saimm0= github.com/aws/aws-sdk-go-v2/service/route53profiles v1.2.3/go.mod h1:r2B4BvTn3zSMK+BFHGl0q63B/nJMOk9/NukLZzqO8sY= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3 h1:apYav6exfbLJ+kRGPa27GTrUuCS4ctI0mJEeiDxSeDE= +github.com/aws/aws-sdk-go-v2/service/route53recoverycontrolconfig v1.23.3/go.mod h1:citOcziml/EM6I2ycb7XHuBw0whC8jVD2y+vU7wQD4k= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3 h1:M6D+IRT6YdeL+qLIdy4u4zEoMOqq3lJnNUGt0cxEI04= +github.com/aws/aws-sdk-go-v2/service/route53recoveryreadiness v1.19.3/go.mod h1:y4m7VlTWV77mBzMdAZWjudnobe0E77tKy5Z9+IQIku0= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3 h1:qbQ9OMsuBvjTfSiY8S7/mxezvSRtjyqcZcoBtPN4sqo= +github.com/aws/aws-sdk-go-v2/service/route53resolver v1.30.3/go.mod h1:BQBJkxokRLgXiBgHDYichq3aNynMRSqXu26Z2Fd8bao= github.com/aws/aws-sdk-go-v2/service/rum v1.19.3 h1:DR+GYJRPL7eEZknnGdwm+lH686LmUBB/X2YVQDHLNY4= github.com/aws/aws-sdk-go-v2/service/rum v1.19.3/go.mod h1:5jFxbuc05P/+BbJvVbBspMbzDR2IFU0LegQG3iUvj8g= github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3 h1:hT8ZAZRIfqBqHbzKTII+CIiY8G2oC9OpLedkZ51DWl8= github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3/go.mod h1:Lcxzg5rojyVPU/0eFwLtcyTaek/6Mtic5B1gJo7e/zE= github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3 h1:3De8/YQpup0mLNKh0G9JHWJLEkWNdghd5z84vw4v+yw= github.com/aws/aws-sdk-go-v2/service/s3control v1.46.3/go.mod h1:sUA7DOI2fdRHQQUpvRVfYKTo9P0+UAsWYBHvyqFHcC0= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3 h1:Hg1FVxD9pelFS8j3ilHJDUe6J/Q/VVwzWaNtN8vyNUQ= +github.com/aws/aws-sdk-go-v2/service/s3outposts v1.26.3/go.mod h1:GVq0lM4BUD3GyiLzlNWXUq9U/H5t+2eytsEDirQSAn4= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0 h1:daHocIfZjMiDNghao41FO0QqFf6J71aGmxl1+nXQ5PU= +github.com/aws/aws-sdk-go-v2/service/sagemaker v1.153.0/go.mod h1:lDmK3DHWV6Y6hpzeUAaXq4w+ks6fFYXdkjavIe8STCE= github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3 h1:gmpU7E0ntMzXr+yQQIXbiiueOewf/1BQ9WgeaXo6BcQ= github.com/aws/aws-sdk-go-v2/service/scheduler v1.10.3/go.mod h1:jnQp5kPPvEgPmVPm0h/XZPmlx7DQ0pqUiISRO4s6U3s= github.com/aws/aws-sdk-go-v2/service/schemas v1.26.3 h1:ZJW2OQNpkR8P7URtISmF8twpvz2V0tUN/OgMenlxkao= @@ -1656,8 +1674,8 @@ github.com/aws/aws-sdk-go-v2/service/sns v1.31.3 h1:eSTEdxkfle2G98FE+Xl3db/XAXXV github.com/aws/aws-sdk-go-v2/service/sns v1.31.3/go.mod h1:1dn0delSO3J69THuty5iwP0US2Glt0mx2qBBlI13pvw= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3 h1:Vjqy5BZCOIsn4Pj8xzyqgGmsSqzz7y/WXbN3RgOoVrc= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3/go.mod h1:L0enV3GCRd5iG9B64W35C4/hwsCB00Ib+DKVGTadKHI= -github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3 h1:iu53lwRKbZOGCVUH09g3J0xU8A+bAGVo09VR9K4d0Yg= -github.com/aws/aws-sdk-go-v2/service/ssm v1.52.3/go.mod h1:v7NIzEFIHBiicOMaMTuEmbnzGnqW0d+6ulNALul6fYE= +github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4 h1:hgSBvRT7JEWx2+vEGI9/Ld5rZtl7M5lu8PqdvOmbRHw= +github.com/aws/aws-sdk-go-v2/service/ssm v1.52.4/go.mod h1:v7NIzEFIHBiicOMaMTuEmbnzGnqW0d+6ulNALul6fYE= github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3 h1:j2hdqn1dz8FPePLCQNXtDMd/6URmRya2Ys3Um78a1Es= github.com/aws/aws-sdk-go-v2/service/ssmcontacts v1.24.3/go.mod h1:jTZ3loeBr6JRNIhq7C24OwjtzEaV9tAJUtWjLIKoin8= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.32.3 h1:IXODiFsgKoyW7QVWWHoIjdBB2dWPRFPT5KREfBxHoQ8= @@ -1704,8 +1722,8 @@ github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3 h1:fZVJVU+fgDbHDZpHv4 github.com/aws/aws-sdk-go-v2/service/workspacesweb v1.21.3/go.mod h1:CWln0RlRf0Cc4Csr4HkyXI6BkkIujyTeWuwTo3hijP0= github.com/aws/aws-sdk-go-v2/service/xray v1.27.3 h1:0jSgvovW7R95P8XJiGxYfrnxdryQyClvebJeYbUlecw= github.com/aws/aws-sdk-go-v2/service/xray v1.27.3/go.mod h1:yKewwhgsy9idJZ7oJLrFleYmy2oq/JSLQWdHNgLUYMM= -github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= -github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/beevik/etree v1.4.1 h1:PmQJDDYahBGNKDcpdX8uPy1xRCwoCGVUiW669MEirVI= @@ -2102,8 +2120,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hc-install v0.6.2/go.mod h1:2JBpd+NCFKiHiu/yYCGaPyPHhZLxXTpz8oreHa/a3Ps= github.com/hashicorp/hc-install v0.6.3/go.mod h1:KamGdbodYzlufbWh4r9NRo8y6GLHWZP2GBtdnms1Ln0= -github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= -github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI= +github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -2142,8 +2160,8 @@ github.com/hashicorp/terraform-plugin-mux v0.16.0/go.mod h1:PF79mAsPc8CpusXPfEVa github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= -github.com/hashicorp/terraform-plugin-testing v1.9.0 h1:xOsQRqqlHKXpFq6etTxih3ubdK3HVDtfE1IY7Rpd37o= -github.com/hashicorp/terraform-plugin-testing v1.9.0/go.mod h1:fhhVx/8+XNJZTD5o3b4stfZ6+q7z9+lIWigIYdT6/44= +github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw= +github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= @@ -2555,8 +2573,8 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.14.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= diff --git a/provider/resources.go b/provider/resources.go index bf286f7177b..2bfbe1f364d 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -4343,7 +4343,7 @@ compatibility shim in favor of the new "name" field.`) "aws_vpclattice_listener_rule": {Tok: awsResource(vpclatticeMod, "ListenerRule")}, }, ExtraResources: resourceOverlays, - ExtraTypes: extraTypes, + ExtraTypes: extraTypes, DataSources: map[string]*tfbridge.DataSourceInfo{ "aws_auditmanager_control": { Tok: awsDataSource(auditmanagerMod, "getControl"), @@ -5789,4 +5789,13 @@ func setupComputedIDs(prov *tfbridge.ProviderInfo) { prov.Resources["aws_chatbot_teams_channel_configuration"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { return attr(state, "configurationName"), nil } + prov.Resources["aws_bedrock_guardrail"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "guardrailId", "version"), nil + } + prov.Resources["aws_datazone_form_type"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "domainIdentifier", "name", "revision"), nil + } + prov.Resources["aws_pinpoint_email_template"].ComputeID = func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) { + return attr(state, "templateName"), nil + } } diff --git a/sdk/dotnet/Alb/Listener.cs b/sdk/dotnet/Alb/Listener.cs index f43adde8269..6b39f62ff59 100644 --- a/sdk/dotnet/Alb/Listener.cs +++ b/sdk/dotnet/Alb/Listener.cs @@ -65,6 +65,7 @@ namespace Pulumi.Aws.Alb /// LoadBalancerArn = frontEndAwsLb.Arn, /// Port = 443, /// Protocol = "TLS", + /// SslPolicy = "ELBSecurityPolicy-2016-08", /// CertificateArn = "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", /// AlpnPolicy = "HTTP2Preferred", /// DefaultActions = new[] @@ -395,7 +396,7 @@ public partial class Listener : global::Pulumi.CustomResource public Output Protocol { get; private set; } = null!; /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Output("sslPolicy")] public Output SslPolicy { get; private set; } = null!; @@ -515,7 +516,7 @@ public InputList DefaultActions public Input? Protocol { get; set; } /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Input("sslPolicy")] public Input? SslPolicy { get; set; } @@ -599,7 +600,7 @@ public InputList DefaultActions public Input? Protocol { get; set; } /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Input("sslPolicy")] public Input? SslPolicy { get; set; } diff --git a/sdk/dotnet/Bedrock/AgentAgentKnowledgeBaseAssociation.cs b/sdk/dotnet/Bedrock/AgentAgentKnowledgeBaseAssociation.cs index bf616483f94..a950d4c9aa7 100644 --- a/sdk/dotnet/Bedrock/AgentAgentKnowledgeBaseAssociation.cs +++ b/sdk/dotnet/Bedrock/AgentAgentKnowledgeBaseAssociation.cs @@ -78,6 +78,9 @@ public partial class AgentAgentKnowledgeBaseAssociation : global::Pulumi.CustomR [Output("knowledgeBaseState")] public Output KnowledgeBaseState { get; private set; } = null!; + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + /// /// Create a AgentAgentKnowledgeBaseAssociation resource with the given unique name, arguments, and options. @@ -156,6 +159,9 @@ public sealed class AgentAgentKnowledgeBaseAssociationArgs : global::Pulumi.Reso [Input("knowledgeBaseState", required: true)] public Input KnowledgeBaseState { get; set; } = null!; + [Input("timeouts")] + public Input? Timeouts { get; set; } + public AgentAgentKnowledgeBaseAssociationArgs() { } @@ -196,6 +202,9 @@ public sealed class AgentAgentKnowledgeBaseAssociationState : global::Pulumi.Res [Input("knowledgeBaseState")] public Input? KnowledgeBaseState { get; set; } + [Input("timeouts")] + public Input? Timeouts { get; set; } + public AgentAgentKnowledgeBaseAssociationState() { } diff --git a/sdk/dotnet/Bedrock/GetAgentAgentVersions.cs b/sdk/dotnet/Bedrock/GetAgentAgentVersions.cs new file mode 100644 index 00000000000..f0d1098b6bc --- /dev/null +++ b/sdk/dotnet/Bedrock/GetAgentAgentVersions.cs @@ -0,0 +1,147 @@ +// *** 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.Aws.Bedrock +{ + public static class GetAgentAgentVersions + { + /// + /// Data source for managing an AWS Amazon BedrockAgent Agent Versions. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.Bedrock.GetAgentAgentVersions.Invoke(new() + /// { + /// AgentId = testAwsBedrockagentAgent.AgentId, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetAgentAgentVersionsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", args ?? new GetAgentAgentVersionsArgs(), options.WithDefaults()); + + /// + /// Data source for managing an AWS Amazon BedrockAgent Agent Versions. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Aws.Bedrock.GetAgentAgentVersions.Invoke(new() + /// { + /// AgentId = testAwsBedrockagentAgent.AgentId, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetAgentAgentVersionsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", args ?? new GetAgentAgentVersionsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAgentAgentVersionsArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique identifier of the agent. + /// + [Input("agentId", required: true)] + public string AgentId { get; set; } = null!; + + [Input("agentVersionSummaries")] + private List? _agentVersionSummaries; + + /// + /// List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + /// + public List AgentVersionSummaries + { + get => _agentVersionSummaries ?? (_agentVersionSummaries = new List()); + set => _agentVersionSummaries = value; + } + + public GetAgentAgentVersionsArgs() + { + } + public static new GetAgentAgentVersionsArgs Empty => new GetAgentAgentVersionsArgs(); + } + + public sealed class GetAgentAgentVersionsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique identifier of the agent. + /// + [Input("agentId", required: true)] + public Input AgentId { get; set; } = null!; + + [Input("agentVersionSummaries")] + private InputList? _agentVersionSummaries; + + /// + /// List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + /// + public InputList AgentVersionSummaries + { + get => _agentVersionSummaries ?? (_agentVersionSummaries = new InputList()); + set => _agentVersionSummaries = value; + } + + public GetAgentAgentVersionsInvokeArgs() + { + } + public static new GetAgentAgentVersionsInvokeArgs Empty => new GetAgentAgentVersionsInvokeArgs(); + } + + + [OutputType] + public sealed class GetAgentAgentVersionsResult + { + public readonly string AgentId; + /// + /// List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + /// + public readonly ImmutableArray AgentVersionSummaries; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + + [OutputConstructor] + private GetAgentAgentVersionsResult( + string agentId, + + ImmutableArray agentVersionSummaries, + + string id) + { + AgentId = agentId; + AgentVersionSummaries = agentVersionSummaries; + Id = id; + } + } +} diff --git a/sdk/dotnet/Bedrock/Guardrail.cs b/sdk/dotnet/Bedrock/Guardrail.cs new file mode 100644 index 00000000000..585b25b1c13 --- /dev/null +++ b/sdk/dotnet/Bedrock/Guardrail.cs @@ -0,0 +1,471 @@ +// *** 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.Aws.Bedrock +{ + /// + /// Resource for managing an Amazon Bedrock Guardrail. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Bedrock.Guardrail("example", new() + /// { + /// Name = "example", + /// BlockedInputMessaging = "example", + /// BlockedOutputsMessaging = "example", + /// Description = "example", + /// ContentPolicyConfig = new Aws.Bedrock.Inputs.GuardrailContentPolicyConfigArgs + /// { + /// FiltersConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailContentPolicyConfigFiltersConfigArgs + /// { + /// InputStrength = "MEDIUM", + /// OutputStrength = "MEDIUM", + /// Type = "HATE", + /// }, + /// }, + /// }, + /// SensitiveInformationPolicyConfig = new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigArgs + /// { + /// PiiEntitiesConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs + /// { + /// Action = "BLOCK", + /// Type = "NAME", + /// }, + /// }, + /// RegexesConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs + /// { + /// Action = "BLOCK", + /// Description = "example regex", + /// Name = "regex_example", + /// Pattern = "^\\d{3}-\\d{2}-\\d{4}$", + /// }, + /// }, + /// }, + /// TopicPolicyConfig = new Aws.Bedrock.Inputs.GuardrailTopicPolicyConfigArgs + /// { + /// TopicsConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailTopicPolicyConfigTopicsConfigArgs + /// { + /// Name = "investment_topic", + /// Examples = new[] + /// { + /// "Where should I invest my money ?", + /// }, + /// Type = "DENY", + /// Definition = "Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .", + /// }, + /// }, + /// }, + /// WordPolicyConfig = new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigArgs + /// { + /// ManagedWordListsConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigManagedWordListsConfigArgs + /// { + /// Type = "PROFANITY", + /// }, + /// }, + /// WordsConfigs = new[] + /// { + /// new Aws.Bedrock.Inputs.GuardrailWordPolicyConfigWordsConfigArgs + /// { + /// Text = "HATE", + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: + /// + /// ```sh + /// $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT + /// ``` + /// + [AwsResourceType("aws:bedrock/guardrail:Guardrail")] + public partial class Guardrail : global::Pulumi.CustomResource + { + /// + /// Message to return when the guardrail blocks a prompt. + /// + [Output("blockedInputMessaging")] + public Output BlockedInputMessaging { get; private set; } = null!; + + /// + /// Message to return when the guardrail blocks a model response. + /// + [Output("blockedOutputsMessaging")] + public Output BlockedOutputsMessaging { get; private set; } = null!; + + /// + /// Content policy config for a guardrail. See Content Policy Config for more information. + /// + [Output("contentPolicyConfig")] + public Output ContentPolicyConfig { get; private set; } = null!; + + /// + /// Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + /// + [Output("contextualGroundingPolicyConfig")] + public Output ContextualGroundingPolicyConfig { get; private set; } = null!; + + /// + /// Unix epoch timestamp in seconds for when the Guardrail was created. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Description of the guardrail or its version. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// ARN of the Guardrail. + /// + [Output("guardrailArn")] + public Output GuardrailArn { get; private set; } = null!; + + /// + /// ID of the Guardrail. + /// + [Output("guardrailId")] + public Output GuardrailId { get; private set; } = null!; + + /// + /// The KMS key with which the guardrail was encrypted at rest. + /// + [Output("kmsKeyArn")] + public Output KmsKeyArn { get; private set; } = null!; + + /// + /// Name of the guardrail. + /// + /// The following arguments are optional: + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + /// + [Output("sensitiveInformationPolicyConfig")] + public Output SensitiveInformationPolicyConfig { get; private set; } = null!; + + /// + /// Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + /// + /// Topic policy config for a guardrail. See Topic Policy Config for more information. + /// + [Output("topicPolicyConfig")] + public Output TopicPolicyConfig { get; private set; } = null!; + + /// + /// Version of the Guardrail. + /// + [Output("version")] + public Output Version { get; private set; } = null!; + + /// + /// Word policy config for a guardrail. See Word Policy Config for more information. + /// + [Output("wordPolicyConfig")] + public Output WordPolicyConfig { get; private set; } = null!; + + + /// + /// Create a Guardrail 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 Guardrail(string name, GuardrailArgs args, CustomResourceOptions? options = null) + : base("aws:bedrock/guardrail:Guardrail", name, args ?? new GuardrailArgs(), MakeResourceOptions(options, "")) + { + } + + private Guardrail(string name, Input id, GuardrailState? state = null, CustomResourceOptions? options = null) + : base("aws:bedrock/guardrail:Guardrail", 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 Guardrail 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 Guardrail Get(string name, Input id, GuardrailState? state = null, CustomResourceOptions? options = null) + { + return new Guardrail(name, id, state, options); + } + } + + public sealed class GuardrailArgs : global::Pulumi.ResourceArgs + { + /// + /// Message to return when the guardrail blocks a prompt. + /// + [Input("blockedInputMessaging", required: true)] + public Input BlockedInputMessaging { get; set; } = null!; + + /// + /// Message to return when the guardrail blocks a model response. + /// + [Input("blockedOutputsMessaging", required: true)] + public Input BlockedOutputsMessaging { get; set; } = null!; + + /// + /// Content policy config for a guardrail. See Content Policy Config for more information. + /// + [Input("contentPolicyConfig")] + public Input? ContentPolicyConfig { get; set; } + + /// + /// Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + /// + [Input("contextualGroundingPolicyConfig")] + public Input? ContextualGroundingPolicyConfig { get; set; } + + /// + /// Description of the guardrail or its version. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The KMS key with which the guardrail was encrypted at rest. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// Name of the guardrail. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + /// + [Input("sensitiveInformationPolicyConfig")] + public Input? SensitiveInformationPolicyConfig { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// Topic policy config for a guardrail. See Topic Policy Config for more information. + /// + [Input("topicPolicyConfig")] + public Input? TopicPolicyConfig { get; set; } + + /// + /// Word policy config for a guardrail. See Word Policy Config for more information. + /// + [Input("wordPolicyConfig")] + public Input? WordPolicyConfig { get; set; } + + public GuardrailArgs() + { + } + public static new GuardrailArgs Empty => new GuardrailArgs(); + } + + public sealed class GuardrailState : global::Pulumi.ResourceArgs + { + /// + /// Message to return when the guardrail blocks a prompt. + /// + [Input("blockedInputMessaging")] + public Input? BlockedInputMessaging { get; set; } + + /// + /// Message to return when the guardrail blocks a model response. + /// + [Input("blockedOutputsMessaging")] + public Input? BlockedOutputsMessaging { get; set; } + + /// + /// Content policy config for a guardrail. See Content Policy Config for more information. + /// + [Input("contentPolicyConfig")] + public Input? ContentPolicyConfig { get; set; } + + /// + /// Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + /// + [Input("contextualGroundingPolicyConfig")] + public Input? ContextualGroundingPolicyConfig { get; set; } + + /// + /// Unix epoch timestamp in seconds for when the Guardrail was created. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Description of the guardrail or its version. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// ARN of the Guardrail. + /// + [Input("guardrailArn")] + public Input? GuardrailArn { get; set; } + + /// + /// ID of the Guardrail. + /// + [Input("guardrailId")] + public Input? GuardrailId { get; set; } + + /// + /// The KMS key with which the guardrail was encrypted at rest. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// Name of the guardrail. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + /// + [Input("sensitiveInformationPolicyConfig")] + public Input? SensitiveInformationPolicyConfig { get; set; } + + /// + /// Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + /// + [Input("status")] + public Input? Status { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + /// + /// Topic policy config for a guardrail. See Topic Policy Config for more information. + /// + [Input("topicPolicyConfig")] + public Input? TopicPolicyConfig { get; set; } + + /// + /// Version of the Guardrail. + /// + [Input("version")] + public Input? Version { get; set; } + + /// + /// Word policy config for a guardrail. See Word Policy Config for more information. + /// + [Input("wordPolicyConfig")] + public Input? WordPolicyConfig { get; set; } + + public GuardrailState() + { + } + public static new GuardrailState Empty => new GuardrailState(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.cs new file mode 100644 index 00000000000..de6c5575995 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentKnowledgeBaseAssociationTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public AgentAgentKnowledgeBaseAssociationTimeoutsArgs() + { + } + public static new AgentAgentKnowledgeBaseAssociationTimeoutsArgs Empty => new AgentAgentKnowledgeBaseAssociationTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs.cs new file mode 100644 index 00000000000..e605b7db0b5 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs() + { + } + public static new AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs Empty => new AgentAgentKnowledgeBaseAssociationTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummary.cs b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummary.cs new file mode 100644 index 00000000000..b5e9a8cf433 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummary.cs @@ -0,0 +1,65 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GetAgentAgentVersionsAgentVersionSummaryArgs : global::Pulumi.InvokeArgs + { + /// + /// Name of agent to which the version belongs. + /// + [Input("agentName", required: true)] + public string AgentName { get; set; } = null!; + + /// + /// Status of the agent to which the version belongs. + /// + [Input("agentStatus", required: true)] + public string AgentStatus { get; set; } = null!; + + /// + /// Version of the agent. + /// + [Input("agentVersion", required: true)] + public string AgentVersion { get; set; } = null!; + + /// + /// Time at which the version was created. + /// + [Input("createdAt", required: true)] + public string CreatedAt { get; set; } = null!; + + /// + /// Description of the version of the agent. + /// * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + /// + [Input("description", required: true)] + public string Description { get; set; } = null!; + + [Input("guardrailConfigurations")] + private List? _guardrailConfigurations; + public List GuardrailConfigurations + { + get => _guardrailConfigurations ?? (_guardrailConfigurations = new List()); + set => _guardrailConfigurations = value; + } + + /// + /// Time at which the version was last updated. + /// + [Input("updatedAt", required: true)] + public string UpdatedAt { get; set; } = null!; + + public GetAgentAgentVersionsAgentVersionSummaryArgs() + { + } + public static new GetAgentAgentVersionsAgentVersionSummaryArgs Empty => new GetAgentAgentVersionsAgentVersionSummaryArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.cs b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.cs new file mode 100644 index 00000000000..228991eed84 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.cs @@ -0,0 +1,65 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GetAgentAgentVersionsAgentVersionSummaryInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of agent to which the version belongs. + /// + [Input("agentName", required: true)] + public Input AgentName { get; set; } = null!; + + /// + /// Status of the agent to which the version belongs. + /// + [Input("agentStatus", required: true)] + public Input AgentStatus { get; set; } = null!; + + /// + /// Version of the agent. + /// + [Input("agentVersion", required: true)] + public Input AgentVersion { get; set; } = null!; + + /// + /// Time at which the version was created. + /// + [Input("createdAt", required: true)] + public Input CreatedAt { get; set; } = null!; + + /// + /// Description of the version of the agent. + /// * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + [Input("guardrailConfigurations")] + private InputList? _guardrailConfigurations; + public InputList GuardrailConfigurations + { + get => _guardrailConfigurations ?? (_guardrailConfigurations = new InputList()); + set => _guardrailConfigurations = value; + } + + /// + /// Time at which the version was last updated. + /// + [Input("updatedAt", required: true)] + public Input UpdatedAt { get; set; } = null!; + + public GetAgentAgentVersionsAgentVersionSummaryInputArgs() + { + } + public static new GetAgentAgentVersionsAgentVersionSummaryInputArgs Empty => new GetAgentAgentVersionsAgentVersionSummaryInputArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.cs b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.cs new file mode 100644 index 00000000000..e4efc6e519c --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.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.Aws.Bedrock.Inputs +{ + + public sealed class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs : global::Pulumi.InvokeArgs + { + /// + /// Unique identifier of the guardrail. + /// + [Input("guardrailIdentifier", required: true)] + public string GuardrailIdentifier { get; set; } = null!; + + /// + /// Version of the guardrail. + /// + [Input("guardrailVersion", required: true)] + public string GuardrailVersion { get; set; } = null!; + + public GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs() + { + } + public static new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs Empty => new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.cs new file mode 100644 index 00000000000..9b4dee7ebae --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Unique identifier of the guardrail. + /// + [Input("guardrailIdentifier", required: true)] + public Input GuardrailIdentifier { get; set; } = null!; + + /// + /// Version of the guardrail. + /// + [Input("guardrailVersion", required: true)] + public Input GuardrailVersion { get; set; } = null!; + + public GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInputArgs() + { + } + public static new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInputArgs Empty => new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInputArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigArgs.cs new file mode 100644 index 00000000000..35a20e79b6f --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContentPolicyConfigArgs : global::Pulumi.ResourceArgs + { + [Input("filtersConfigs")] + private InputList? _filtersConfigs; + + /// + /// List of content filter configs in content policy. See Filters Config for more information. + /// + public InputList FiltersConfigs + { + get => _filtersConfigs ?? (_filtersConfigs = new InputList()); + set => _filtersConfigs = value; + } + + public GuardrailContentPolicyConfigArgs() + { + } + public static new GuardrailContentPolicyConfigArgs Empty => new GuardrailContentPolicyConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigArgs.cs new file mode 100644 index 00000000000..eae2e07c5c2 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigArgs.cs @@ -0,0 +1,38 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContentPolicyConfigFiltersConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Strength for filters. + /// + [Input("inputStrength", required: true)] + public Input InputStrength { get; set; } = null!; + + /// + /// Strength for filters. + /// + [Input("outputStrength", required: true)] + public Input OutputStrength { get; set; } = null!; + + /// + /// Type of contextual grounding filter. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailContentPolicyConfigFiltersConfigArgs() + { + } + public static new GuardrailContentPolicyConfigFiltersConfigArgs Empty => new GuardrailContentPolicyConfigFiltersConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigGetArgs.cs new file mode 100644 index 00000000000..661462374b9 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigFiltersConfigGetArgs.cs @@ -0,0 +1,38 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContentPolicyConfigFiltersConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Strength for filters. + /// + [Input("inputStrength", required: true)] + public Input InputStrength { get; set; } = null!; + + /// + /// Strength for filters. + /// + [Input("outputStrength", required: true)] + public Input OutputStrength { get; set; } = null!; + + /// + /// Type of contextual grounding filter. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailContentPolicyConfigFiltersConfigGetArgs() + { + } + public static new GuardrailContentPolicyConfigFiltersConfigGetArgs Empty => new GuardrailContentPolicyConfigFiltersConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigGetArgs.cs new file mode 100644 index 00000000000..943524dccc8 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContentPolicyConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContentPolicyConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("filtersConfigs")] + private InputList? _filtersConfigs; + + /// + /// List of content filter configs in content policy. See Filters Config for more information. + /// + public InputList FiltersConfigs + { + get => _filtersConfigs ?? (_filtersConfigs = new InputList()); + set => _filtersConfigs = value; + } + + public GuardrailContentPolicyConfigGetArgs() + { + } + public static new GuardrailContentPolicyConfigGetArgs Empty => new GuardrailContentPolicyConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigArgs.cs new file mode 100644 index 00000000000..9b8ca49e334 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContextualGroundingPolicyConfigArgs : global::Pulumi.ResourceArgs + { + [Input("filtersConfigs")] + private InputList? _filtersConfigs; + + /// + /// List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + /// + public InputList FiltersConfigs + { + get => _filtersConfigs ?? (_filtersConfigs = new InputList()); + set => _filtersConfigs = value; + } + + public GuardrailContextualGroundingPolicyConfigArgs() + { + } + public static new GuardrailContextualGroundingPolicyConfigArgs Empty => new GuardrailContextualGroundingPolicyConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.cs new file mode 100644 index 00000000000..39a54e9b7c7 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContextualGroundingPolicyConfigFiltersConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The threshold for this filter. + /// + [Input("threshold", required: true)] + public Input Threshold { get; set; } = null!; + + /// + /// Type of contextual grounding filter. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailContextualGroundingPolicyConfigFiltersConfigArgs() + { + } + public static new GuardrailContextualGroundingPolicyConfigFiltersConfigArgs Empty => new GuardrailContextualGroundingPolicyConfigFiltersConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs.cs new file mode 100644 index 00000000000..38f961d7dcb --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The threshold for this filter. + /// + [Input("threshold", required: true)] + public Input Threshold { get; set; } = null!; + + /// + /// Type of contextual grounding filter. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs() + { + } + public static new GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs Empty => new GuardrailContextualGroundingPolicyConfigFiltersConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigGetArgs.cs new file mode 100644 index 00000000000..345f5ab7453 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailContextualGroundingPolicyConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailContextualGroundingPolicyConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("filtersConfigs")] + private InputList? _filtersConfigs; + + /// + /// List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + /// + public InputList FiltersConfigs + { + get => _filtersConfigs ?? (_filtersConfigs = new InputList()); + set => _filtersConfigs = value; + } + + public GuardrailContextualGroundingPolicyConfigGetArgs() + { + } + public static new GuardrailContextualGroundingPolicyConfigGetArgs Empty => new GuardrailContextualGroundingPolicyConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigArgs.cs new file mode 100644 index 00000000000..950f5b5c214 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigArgs : global::Pulumi.ResourceArgs + { + [Input("piiEntitiesConfigs")] + private InputList? _piiEntitiesConfigs; + + /// + /// List of entities. See PII Entities Config for more information. + /// + public InputList PiiEntitiesConfigs + { + get => _piiEntitiesConfigs ?? (_piiEntitiesConfigs = new InputList()); + set => _piiEntitiesConfigs = value; + } + + [Input("regexesConfigs")] + private InputList? _regexesConfigs; + + /// + /// List of regex. See Regexes Config for more information. + /// + public InputList RegexesConfigs + { + get => _regexesConfigs ?? (_regexesConfigs = new InputList()); + set => _regexesConfigs = value; + } + + public GuardrailSensitiveInformationPolicyConfigArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigArgs Empty => new GuardrailSensitiveInformationPolicyConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigGetArgs.cs new file mode 100644 index 00000000000..a4835008954 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("piiEntitiesConfigs")] + private InputList? _piiEntitiesConfigs; + + /// + /// List of entities. See PII Entities Config for more information. + /// + public InputList PiiEntitiesConfigs + { + get => _piiEntitiesConfigs ?? (_piiEntitiesConfigs = new InputList()); + set => _piiEntitiesConfigs = value; + } + + [Input("regexesConfigs")] + private InputList? _regexesConfigs; + + /// + /// List of regex. See Regexes Config for more information. + /// + public InputList RegexesConfigs + { + get => _regexesConfigs ?? (_regexesConfigs = new InputList()); + set => _regexesConfigs = value; + } + + public GuardrailSensitiveInformationPolicyConfigGetArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigGetArgs Empty => new GuardrailSensitiveInformationPolicyConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.cs new file mode 100644 index 00000000000..8f2a4b51e53 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for sensitive information action. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The currently supported PII entities. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs Empty => new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs.cs new file mode 100644 index 00000000000..4ede1de7f72 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for sensitive information action. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The currently supported PII entities. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs Empty => new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.cs new file mode 100644 index 00000000000..ef95f853005 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for sensitive information action. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The regex description. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The regex name. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The regex pattern. + /// + [Input("pattern", required: true)] + public Input Pattern { get; set; } = null!; + + public GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs Empty => new GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs.cs new file mode 100644 index 00000000000..b62973c9c98 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for sensitive information action. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The regex description. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The regex name. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// The regex pattern. + /// + [Input("pattern", required: true)] + public Input Pattern { get; set; } = null!; + + public GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs() + { + } + public static new GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs Empty => new GuardrailSensitiveInformationPolicyConfigRegexesConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsArgs.cs new file mode 100644 index 00000000000..57d9728cc26 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsArgs.cs @@ -0,0 +1,38 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public GuardrailTimeoutsArgs() + { + } + public static new GuardrailTimeoutsArgs Empty => new GuardrailTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsGetArgs.cs new file mode 100644 index 00000000000..d5a8b2b313e --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTimeoutsGetArgs.cs @@ -0,0 +1,38 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + [Input("delete")] + public Input? Delete { get; set; } + + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("update")] + public Input? Update { get; set; } + + public GuardrailTimeoutsGetArgs() + { + } + public static new GuardrailTimeoutsGetArgs Empty => new GuardrailTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigArgs.cs new file mode 100644 index 00000000000..9c771d24a30 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTopicPolicyConfigArgs : global::Pulumi.ResourceArgs + { + [Input("topicsConfigs")] + private InputList? _topicsConfigs; + + /// + /// List of topic configs in topic policy. See Topics Config for more information. + /// + public InputList TopicsConfigs + { + get => _topicsConfigs ?? (_topicsConfigs = new InputList()); + set => _topicsConfigs = value; + } + + public GuardrailTopicPolicyConfigArgs() + { + } + public static new GuardrailTopicPolicyConfigArgs Empty => new GuardrailTopicPolicyConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigGetArgs.cs new file mode 100644 index 00000000000..85deaf9201f --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTopicPolicyConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("topicsConfigs")] + private InputList? _topicsConfigs; + + /// + /// List of topic configs in topic policy. See Topics Config for more information. + /// + public InputList TopicsConfigs + { + get => _topicsConfigs ?? (_topicsConfigs = new InputList()); + set => _topicsConfigs = value; + } + + public GuardrailTopicPolicyConfigGetArgs() + { + } + public static new GuardrailTopicPolicyConfigGetArgs Empty => new GuardrailTopicPolicyConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.cs new file mode 100644 index 00000000000..c932ffc5ac2 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.cs @@ -0,0 +1,50 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTopicPolicyConfigTopicsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Definition of topic in topic policy. + /// + [Input("definition", required: true)] + public Input Definition { get; set; } = null!; + + [Input("examples")] + private InputList? _examples; + + /// + /// List of text examples. + /// + public InputList Examples + { + get => _examples ?? (_examples = new InputList()); + set => _examples = value; + } + + /// + /// Name of topic in topic policy. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Type of topic in a policy. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailTopicPolicyConfigTopicsConfigArgs() + { + } + public static new GuardrailTopicPolicyConfigTopicsConfigArgs Empty => new GuardrailTopicPolicyConfigTopicsConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigGetArgs.cs new file mode 100644 index 00000000000..07e5cb63b5a --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailTopicPolicyConfigTopicsConfigGetArgs.cs @@ -0,0 +1,50 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailTopicPolicyConfigTopicsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Definition of topic in topic policy. + /// + [Input("definition", required: true)] + public Input Definition { get; set; } = null!; + + [Input("examples")] + private InputList? _examples; + + /// + /// List of text examples. + /// + public InputList Examples + { + get => _examples ?? (_examples = new InputList()); + set => _examples = value; + } + + /// + /// Name of topic in topic policy. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Type of topic in a policy. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailTopicPolicyConfigTopicsConfigGetArgs() + { + } + public static new GuardrailTopicPolicyConfigTopicsConfigGetArgs Empty => new GuardrailTopicPolicyConfigTopicsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigArgs.cs new file mode 100644 index 00000000000..81c36c4d863 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigArgs : global::Pulumi.ResourceArgs + { + [Input("managedWordListsConfigs")] + private InputList? _managedWordListsConfigs; + + /// + /// A config for the list of managed words. See Managed Word Lists Config for more information. + /// + public InputList ManagedWordListsConfigs + { + get => _managedWordListsConfigs ?? (_managedWordListsConfigs = new InputList()); + set => _managedWordListsConfigs = value; + } + + [Input("wordsConfigs")] + private InputList? _wordsConfigs; + + /// + /// List of custom word configs. See Words Config for more information. + /// + public InputList WordsConfigs + { + get => _wordsConfigs ?? (_wordsConfigs = new InputList()); + set => _wordsConfigs = value; + } + + public GuardrailWordPolicyConfigArgs() + { + } + public static new GuardrailWordPolicyConfigArgs Empty => new GuardrailWordPolicyConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigGetArgs.cs new file mode 100644 index 00000000000..de3cd4d2cc2 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigGetArgs.cs @@ -0,0 +1,44 @@ +// *** 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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("managedWordListsConfigs")] + private InputList? _managedWordListsConfigs; + + /// + /// A config for the list of managed words. See Managed Word Lists Config for more information. + /// + public InputList ManagedWordListsConfigs + { + get => _managedWordListsConfigs ?? (_managedWordListsConfigs = new InputList()); + set => _managedWordListsConfigs = value; + } + + [Input("wordsConfigs")] + private InputList? _wordsConfigs; + + /// + /// List of custom word configs. See Words Config for more information. + /// + public InputList WordsConfigs + { + get => _wordsConfigs ?? (_wordsConfigs = new InputList()); + set => _wordsConfigs = value; + } + + public GuardrailWordPolicyConfigGetArgs() + { + } + public static new GuardrailWordPolicyConfigGetArgs Empty => new GuardrailWordPolicyConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.cs new file mode 100644 index 00000000000..9ecaf17a788 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigManagedWordListsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for managed words. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailWordPolicyConfigManagedWordListsConfigArgs() + { + } + public static new GuardrailWordPolicyConfigManagedWordListsConfigArgs Empty => new GuardrailWordPolicyConfigManagedWordListsConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigGetArgs.cs new file mode 100644 index 00000000000..6991724f1e1 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigManagedWordListsConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigManagedWordListsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Options for managed words. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public GuardrailWordPolicyConfigManagedWordListsConfigGetArgs() + { + } + public static new GuardrailWordPolicyConfigManagedWordListsConfigGetArgs Empty => new GuardrailWordPolicyConfigManagedWordListsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigArgs.cs new file mode 100644 index 00000000000..a1ff6159916 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigWordsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The custom word text. + /// + [Input("text", required: true)] + public Input Text { get; set; } = null!; + + public GuardrailWordPolicyConfigWordsConfigArgs() + { + } + public static new GuardrailWordPolicyConfigWordsConfigArgs Empty => new GuardrailWordPolicyConfigWordsConfigArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigGetArgs.cs b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigGetArgs.cs new file mode 100644 index 00000000000..77c2d1ab988 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/GuardrailWordPolicyConfigWordsConfigGetArgs.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.Aws.Bedrock.Inputs +{ + + public sealed class GuardrailWordPolicyConfigWordsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The custom word text. + /// + [Input("text", required: true)] + public Input Text { get; set; } = null!; + + public GuardrailWordPolicyConfigWordsConfigGetArgs() + { + } + public static new GuardrailWordPolicyConfigWordsConfigGetArgs Empty => new GuardrailWordPolicyConfigWordsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAgentKnowledgeBaseAssociationTimeouts.cs b/sdk/dotnet/Bedrock/Outputs/AgentAgentKnowledgeBaseAssociationTimeouts.cs new file mode 100644 index 00000000000..e51ed5542b7 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAgentKnowledgeBaseAssociationTimeouts.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentAgentKnowledgeBaseAssociationTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private AgentAgentKnowledgeBaseAssociationTimeouts( + string? create, + + string? update) + { + Create = create; + Update = update; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult.cs b/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult.cs new file mode 100644 index 00000000000..ae836c881a4 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult + { + /// + /// Unique identifier of the guardrail. + /// + public readonly string GuardrailIdentifier; + /// + /// Version of the guardrail. + /// + public readonly string GuardrailVersion; + + [OutputConstructor] + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult( + string guardrailIdentifier, + + string guardrailVersion) + { + GuardrailIdentifier = guardrailIdentifier; + GuardrailVersion = guardrailVersion; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryResult.cs b/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryResult.cs new file mode 100644 index 00000000000..91ce6684f32 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GetAgentAgentVersionsAgentVersionSummaryResult.cs @@ -0,0 +1,68 @@ +// *** 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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GetAgentAgentVersionsAgentVersionSummaryResult + { + /// + /// Name of agent to which the version belongs. + /// + public readonly string AgentName; + /// + /// Status of the agent to which the version belongs. + /// + public readonly string AgentStatus; + /// + /// Version of the agent. + /// + public readonly string AgentVersion; + /// + /// Time at which the version was created. + /// + public readonly string CreatedAt; + /// + /// Description of the version of the agent. + /// * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + /// + public readonly string Description; + public readonly ImmutableArray GuardrailConfigurations; + /// + /// Time at which the version was last updated. + /// + public readonly string UpdatedAt; + + [OutputConstructor] + private GetAgentAgentVersionsAgentVersionSummaryResult( + string agentName, + + string agentStatus, + + string agentVersion, + + string createdAt, + + string description, + + ImmutableArray guardrailConfigurations, + + string updatedAt) + { + AgentName = agentName; + AgentStatus = agentStatus; + AgentVersion = agentVersion; + CreatedAt = createdAt; + Description = description; + GuardrailConfigurations = guardrailConfigurations; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfig.cs new file mode 100644 index 00000000000..868e9b51084 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailContentPolicyConfig + { + /// + /// List of content filter configs in content policy. See Filters Config for more information. + /// + public readonly ImmutableArray FiltersConfigs; + + [OutputConstructor] + private GuardrailContentPolicyConfig(ImmutableArray filtersConfigs) + { + FiltersConfigs = filtersConfigs; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfigFiltersConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfigFiltersConfig.cs new file mode 100644 index 00000000000..92ccedd7d13 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailContentPolicyConfigFiltersConfig.cs @@ -0,0 +1,42 @@ +// *** 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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailContentPolicyConfigFiltersConfig + { + /// + /// Strength for filters. + /// + public readonly string InputStrength; + /// + /// Strength for filters. + /// + public readonly string OutputStrength; + /// + /// Type of contextual grounding filter. + /// + public readonly string Type; + + [OutputConstructor] + private GuardrailContentPolicyConfigFiltersConfig( + string inputStrength, + + string outputStrength, + + string type) + { + InputStrength = inputStrength; + OutputStrength = outputStrength; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfig.cs new file mode 100644 index 00000000000..f8559db193d --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailContextualGroundingPolicyConfig + { + /// + /// List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + /// + public readonly ImmutableArray FiltersConfigs; + + [OutputConstructor] + private GuardrailContextualGroundingPolicyConfig(ImmutableArray filtersConfigs) + { + FiltersConfigs = filtersConfigs; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.cs new file mode 100644 index 00000000000..8632b88a834 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailContextualGroundingPolicyConfigFiltersConfig + { + /// + /// The threshold for this filter. + /// + public readonly double Threshold; + /// + /// Type of contextual grounding filter. + /// + public readonly string Type; + + [OutputConstructor] + private GuardrailContextualGroundingPolicyConfigFiltersConfig( + double threshold, + + string type) + { + Threshold = threshold; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfig.cs new file mode 100644 index 00000000000..59c9c1a73c3 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailSensitiveInformationPolicyConfig + { + /// + /// List of entities. See PII Entities Config for more information. + /// + public readonly ImmutableArray PiiEntitiesConfigs; + /// + /// List of regex. See Regexes Config for more information. + /// + public readonly ImmutableArray RegexesConfigs; + + [OutputConstructor] + private GuardrailSensitiveInformationPolicyConfig( + ImmutableArray piiEntitiesConfigs, + + ImmutableArray regexesConfigs) + { + PiiEntitiesConfigs = piiEntitiesConfigs; + RegexesConfigs = regexesConfigs; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.cs new file mode 100644 index 00000000000..dfffd93ace2 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig + { + /// + /// Options for sensitive information action. + /// + public readonly string Action; + /// + /// The currently supported PII entities. + /// + public readonly string Type; + + [OutputConstructor] + private GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig( + string action, + + string type) + { + Action = action; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.cs new file mode 100644 index 00000000000..585f92940ed --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.cs @@ -0,0 +1,49 @@ +// *** 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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailSensitiveInformationPolicyConfigRegexesConfig + { + /// + /// Options for sensitive information action. + /// + public readonly string Action; + /// + /// The regex description. + /// + public readonly string? Description; + /// + /// The regex name. + /// + public readonly string Name; + /// + /// The regex pattern. + /// + public readonly string Pattern; + + [OutputConstructor] + private GuardrailSensitiveInformationPolicyConfigRegexesConfig( + string action, + + string? description, + + string name, + + string pattern) + { + Action = action; + Description = description; + Name = name; + Pattern = pattern; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailTimeouts.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailTimeouts.cs new file mode 100644 index 00000000000..25950af1a33 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailTimeouts.cs @@ -0,0 +1,42 @@ +// *** 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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + /// + public readonly string? Delete; + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Update; + + [OutputConstructor] + private GuardrailTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfig.cs new file mode 100644 index 00000000000..0bb8ff58322 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailTopicPolicyConfig + { + /// + /// List of topic configs in topic policy. See Topics Config for more information. + /// + public readonly ImmutableArray TopicsConfigs; + + [OutputConstructor] + private GuardrailTopicPolicyConfig(ImmutableArray topicsConfigs) + { + TopicsConfigs = topicsConfigs; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfigTopicsConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfigTopicsConfig.cs new file mode 100644 index 00000000000..704a2c1c849 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailTopicPolicyConfigTopicsConfig.cs @@ -0,0 +1,49 @@ +// *** 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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailTopicPolicyConfigTopicsConfig + { + /// + /// Definition of topic in topic policy. + /// + public readonly string Definition; + /// + /// List of text examples. + /// + public readonly ImmutableArray Examples; + /// + /// Name of topic in topic policy. + /// + public readonly string Name; + /// + /// Type of topic in a policy. + /// + public readonly string Type; + + [OutputConstructor] + private GuardrailTopicPolicyConfigTopicsConfig( + string definition, + + ImmutableArray examples, + + string name, + + string type) + { + Definition = definition; + Examples = examples; + Name = name; + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfig.cs new file mode 100644 index 00000000000..1fe21467a1a --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailWordPolicyConfig + { + /// + /// A config for the list of managed words. See Managed Word Lists Config for more information. + /// + public readonly ImmutableArray ManagedWordListsConfigs; + /// + /// List of custom word configs. See Words Config for more information. + /// + public readonly ImmutableArray WordsConfigs; + + [OutputConstructor] + private GuardrailWordPolicyConfig( + ImmutableArray managedWordListsConfigs, + + ImmutableArray wordsConfigs) + { + ManagedWordListsConfigs = managedWordListsConfigs; + WordsConfigs = wordsConfigs; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigManagedWordListsConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigManagedWordListsConfig.cs new file mode 100644 index 00000000000..30c002fa435 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigManagedWordListsConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailWordPolicyConfigManagedWordListsConfig + { + /// + /// Options for managed words. + /// + public readonly string Type; + + [OutputConstructor] + private GuardrailWordPolicyConfigManagedWordListsConfig(string type) + { + Type = type; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigWordsConfig.cs b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigWordsConfig.cs new file mode 100644 index 00000000000..85ab86d0f67 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/GuardrailWordPolicyConfigWordsConfig.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.Aws.Bedrock.Outputs +{ + + [OutputType] + public sealed class GuardrailWordPolicyConfigWordsConfig + { + /// + /// The custom word text. + /// + public readonly string Text; + + [OutputConstructor] + private GuardrailWordPolicyConfigWordsConfig(string text) + { + Text = text; + } + } +} diff --git a/sdk/dotnet/CloudTrail/OrganizationDelegatedAdminAccount.cs b/sdk/dotnet/CloudTrail/OrganizationDelegatedAdminAccount.cs new file mode 100644 index 00000000000..21c78620232 --- /dev/null +++ b/sdk/dotnet/CloudTrail/OrganizationDelegatedAdminAccount.cs @@ -0,0 +1,173 @@ +// *** 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.Aws.CloudTrail +{ + /// + /// Provides a resource to manage an AWS CloudTrail Delegated Administrator. + /// + /// ## Example Usage + /// + /// Basic usage: + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var delegated = Aws.GetCallerIdentity.Invoke(); + /// + /// var example = new Aws.CloudTrail.OrganizationDelegatedAdminAccount("example", new() + /// { + /// AccountId = delegated.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId), + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 + /// ``` + /// + [AwsResourceType("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount")] + public partial class OrganizationDelegatedAdminAccount : global::Pulumi.CustomResource + { + /// + /// An organization member account ID that you want to designate as a delegated administrator. + /// + [Output("accountId")] + public Output AccountId { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the delegated administrator's account. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The email address that is associated with the delegated administrator's AWS account. + /// + [Output("email")] + public Output Email { get; private set; } = null!; + + /// + /// The friendly name of the delegated administrator's account. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The AWS CloudTrail service principal name. + /// + [Output("servicePrincipal")] + public Output ServicePrincipal { get; private set; } = null!; + + + /// + /// Create a OrganizationDelegatedAdminAccount 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 OrganizationDelegatedAdminAccount(string name, OrganizationDelegatedAdminAccountArgs args, CustomResourceOptions? options = null) + : base("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", name, args ?? new OrganizationDelegatedAdminAccountArgs(), MakeResourceOptions(options, "")) + { + } + + private OrganizationDelegatedAdminAccount(string name, Input id, OrganizationDelegatedAdminAccountState? state = null, CustomResourceOptions? options = null) + : base("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", 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 OrganizationDelegatedAdminAccount 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 OrganizationDelegatedAdminAccount Get(string name, Input id, OrganizationDelegatedAdminAccountState? state = null, CustomResourceOptions? options = null) + { + return new OrganizationDelegatedAdminAccount(name, id, state, options); + } + } + + public sealed class OrganizationDelegatedAdminAccountArgs : global::Pulumi.ResourceArgs + { + /// + /// An organization member account ID that you want to designate as a delegated administrator. + /// + [Input("accountId", required: true)] + public Input AccountId { get; set; } = null!; + + public OrganizationDelegatedAdminAccountArgs() + { + } + public static new OrganizationDelegatedAdminAccountArgs Empty => new OrganizationDelegatedAdminAccountArgs(); + } + + public sealed class OrganizationDelegatedAdminAccountState : global::Pulumi.ResourceArgs + { + /// + /// An organization member account ID that you want to designate as a delegated administrator. + /// + [Input("accountId")] + public Input? AccountId { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the delegated administrator's account. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The email address that is associated with the delegated administrator's AWS account. + /// + [Input("email")] + public Input? Email { get; set; } + + /// + /// The friendly name of the delegated administrator's account. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The AWS CloudTrail service principal name. + /// + [Input("servicePrincipal")] + public Input? ServicePrincipal { get; set; } + + public OrganizationDelegatedAdminAccountState() + { + } + public static new OrganizationDelegatedAdminAccountState Empty => new OrganizationDelegatedAdminAccountState(); + } +} diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs index 8f2a706c4aa..661fb811361 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs @@ -22,7 +22,7 @@ public sealed class PipelineStageActionArgs : global::Pulumi.ResourceArgs private InputMap? _configuration; /// - /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. /// public InputMap Configuration { diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs index a2e1a9c214b..fd33101378c 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs @@ -22,7 +22,7 @@ public sealed class PipelineStageActionGetArgs : global::Pulumi.ResourceArgs private InputMap? _configuration; /// - /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. /// public InputMap Configuration { diff --git a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs index de79ceedf05..128349b861e 100644 --- a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs +++ b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs @@ -18,7 +18,7 @@ public sealed class PipelineStageAction /// public readonly string Category; /// - /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + /// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. /// public readonly ImmutableDictionary? Configuration; /// diff --git a/sdk/dotnet/DataZone/EnvironmentProfile.cs b/sdk/dotnet/DataZone/EnvironmentProfile.cs new file mode 100644 index 00000000000..29de42833c7 --- /dev/null +++ b/sdk/dotnet/DataZone/EnvironmentProfile.cs @@ -0,0 +1,427 @@ +// *** 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.Aws.DataZone +{ + /// + /// Resource for managing an AWS DataZone Environment Profile. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var domainExecutionRole = new Aws.Iam.Role("domain_execution_role", new() + /// { + /// Name = "example-name", + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "datazone.amazonaws.com", + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "cloudformation.amazonaws.com", + /// }, + /// }, + /// }, + /// }), + /// InlinePolicies = new[] + /// { + /// new Aws.Iam.Inputs.RoleInlinePolicyArgs + /// { + /// Name = "example-name", + /// Policy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "datazone:*", + /// "ram:*", + /// "sso:*", + /// "kms:*", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = "*", + /// }, + /// }, + /// }), + /// }, + /// }, + /// }); + /// + /// var testDomain = new Aws.DataZone.Domain("test", new() + /// { + /// Name = "example-name", + /// DomainExecutionRole = domainExecutionRole.Arn, + /// }); + /// + /// var testSecurityGroup = new Aws.Ec2.SecurityGroup("test", new() + /// { + /// Name = "example-name", + /// }); + /// + /// var testProject = new Aws.DataZone.Project("test", new() + /// { + /// DomainIdentifier = testDomain.Id, + /// GlossaryTerms = new[] + /// { + /// "2N8w6XJCwZf", + /// }, + /// Name = "example-name", + /// Description = "desc", + /// SkipDeletionCheck = true, + /// }); + /// + /// var test = Aws.GetCallerIdentity.Invoke(); + /// + /// var testGetRegion = Aws.GetRegion.Invoke(); + /// + /// var testGetEnvironmentBlueprint = Aws.DataZone.GetEnvironmentBlueprint.Invoke(new() + /// { + /// DomainId = testDomain.Id, + /// Name = "DefaultDataLake", + /// Managed = true, + /// }); + /// + /// var testEnvironmentBlueprintConfiguration = new Aws.DataZone.EnvironmentBlueprintConfiguration("test", new() + /// { + /// DomainId = testDomain.Id, + /// EnvironmentBlueprintId = testGetEnvironmentBlueprint.Apply(getEnvironmentBlueprintResult => getEnvironmentBlueprintResult.Id), + /// ProvisioningRoleArn = domainExecutionRole.Arn, + /// EnabledRegions = new[] + /// { + /// testGetRegion.Apply(getRegionResult => getRegionResult.Name), + /// }, + /// }); + /// + /// var testEnvironmentProfile = new Aws.DataZone.EnvironmentProfile("test", new() + /// { + /// AwsAccountId = test.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId), + /// AwsAccountRegion = testGetRegion.Apply(getRegionResult => getRegionResult.Name), + /// Description = "description", + /// EnvironmentBlueprintIdentifier = testGetEnvironmentBlueprint.Apply(getEnvironmentBlueprintResult => getEnvironmentBlueprintResult.Id), + /// Name = "example-name", + /// ProjectIdentifier = testProject.Id, + /// DomainIdentifier = testDomain.Id, + /// UserParameters = new[] + /// { + /// new Aws.DataZone.Inputs.EnvironmentProfileUserParameterArgs + /// { + /// Name = "consumerGlueDbName", + /// Value = "value", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: + /// + /// ```sh + /// $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 + /// ``` + /// + [AwsResourceType("aws:datazone/environmentProfile:EnvironmentProfile")] + public partial class EnvironmentProfile : global::Pulumi.CustomResource + { + /// + /// Id of the AWS account being used. + /// + [Output("awsAccountId")] + public Output AwsAccountId { get; private set; } = null!; + + /// + /// Desired region for environment profile. + /// + [Output("awsAccountRegion")] + public Output AwsAccountRegion { get; private set; } = null!; + + /// + /// Creation time of environment profile. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Creator of environment profile. + /// + [Output("createdBy")] + public Output CreatedBy { get; private set; } = null!; + + /// + /// Description of environment profile. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Domain Identifier for environment profile. + /// + [Output("domainIdentifier")] + public Output DomainIdentifier { get; private set; } = null!; + + /// + /// ID of the blueprint which the environment will be created with. + /// + [Output("environmentBlueprintIdentifier")] + public Output EnvironmentBlueprintIdentifier { get; private set; } = null!; + + /// + /// Name of the environment profile. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Project identifier for environment profile. + /// + /// The following arguments are optional: + /// + [Output("projectIdentifier")] + public Output ProjectIdentifier { get; private set; } = null!; + + /// + /// Time of last update to environment profile. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + /// + /// Array of user parameters of the environment profile with the following attributes: + /// + [Output("userParameters")] + public Output> UserParameters { get; private set; } = null!; + + + /// + /// Create a EnvironmentProfile 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 EnvironmentProfile(string name, EnvironmentProfileArgs args, CustomResourceOptions? options = null) + : base("aws:datazone/environmentProfile:EnvironmentProfile", name, args ?? new EnvironmentProfileArgs(), MakeResourceOptions(options, "")) + { + } + + private EnvironmentProfile(string name, Input id, EnvironmentProfileState? state = null, CustomResourceOptions? options = null) + : base("aws:datazone/environmentProfile:EnvironmentProfile", 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 EnvironmentProfile 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 EnvironmentProfile Get(string name, Input id, EnvironmentProfileState? state = null, CustomResourceOptions? options = null) + { + return new EnvironmentProfile(name, id, state, options); + } + } + + public sealed class EnvironmentProfileArgs : global::Pulumi.ResourceArgs + { + /// + /// Id of the AWS account being used. + /// + [Input("awsAccountId")] + public Input? AwsAccountId { get; set; } + + /// + /// Desired region for environment profile. + /// + [Input("awsAccountRegion", required: true)] + public Input AwsAccountRegion { get; set; } = null!; + + /// + /// Description of environment profile. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Domain Identifier for environment profile. + /// + [Input("domainIdentifier", required: true)] + public Input DomainIdentifier { get; set; } = null!; + + /// + /// ID of the blueprint which the environment will be created with. + /// + [Input("environmentBlueprintIdentifier", required: true)] + public Input EnvironmentBlueprintIdentifier { get; set; } = null!; + + /// + /// Name of the environment profile. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Project identifier for environment profile. + /// + /// The following arguments are optional: + /// + [Input("projectIdentifier", required: true)] + public Input ProjectIdentifier { get; set; } = null!; + + [Input("userParameters")] + private InputList? _userParameters; + + /// + /// Array of user parameters of the environment profile with the following attributes: + /// + public InputList UserParameters + { + get => _userParameters ?? (_userParameters = new InputList()); + set => _userParameters = value; + } + + public EnvironmentProfileArgs() + { + } + public static new EnvironmentProfileArgs Empty => new EnvironmentProfileArgs(); + } + + public sealed class EnvironmentProfileState : global::Pulumi.ResourceArgs + { + /// + /// Id of the AWS account being used. + /// + [Input("awsAccountId")] + public Input? AwsAccountId { get; set; } + + /// + /// Desired region for environment profile. + /// + [Input("awsAccountRegion")] + public Input? AwsAccountRegion { get; set; } + + /// + /// Creation time of environment profile. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Creator of environment profile. + /// + [Input("createdBy")] + public Input? CreatedBy { get; set; } + + /// + /// Description of environment profile. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Domain Identifier for environment profile. + /// + [Input("domainIdentifier")] + public Input? DomainIdentifier { get; set; } + + /// + /// ID of the blueprint which the environment will be created with. + /// + [Input("environmentBlueprintIdentifier")] + public Input? EnvironmentBlueprintIdentifier { get; set; } + + /// + /// Name of the environment profile. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Project identifier for environment profile. + /// + /// The following arguments are optional: + /// + [Input("projectIdentifier")] + public Input? ProjectIdentifier { get; set; } + + /// + /// Time of last update to environment profile. + /// + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + [Input("userParameters")] + private InputList? _userParameters; + + /// + /// Array of user parameters of the environment profile with the following attributes: + /// + public InputList UserParameters + { + get => _userParameters ?? (_userParameters = new InputList()); + set => _userParameters = value; + } + + public EnvironmentProfileState() + { + } + public static new EnvironmentProfileState Empty => new EnvironmentProfileState(); + } +} diff --git a/sdk/dotnet/DataZone/FormType.cs b/sdk/dotnet/DataZone/FormType.cs new file mode 100644 index 00000000000..af37ebabde2 --- /dev/null +++ b/sdk/dotnet/DataZone/FormType.cs @@ -0,0 +1,391 @@ +// *** 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.Aws.DataZone +{ + /// + /// Resource for managing an AWS DataZone Form Type. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var domainExecutionRole = new Aws.Iam.Role("domain_execution_role", new() + /// { + /// Name = "example name", + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "datazone.amazonaws.com", + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "cloudformation.amazonaws.com", + /// }, + /// }, + /// }, + /// }), + /// InlinePolicies = new[] + /// { + /// new Aws.Iam.Inputs.RoleInlinePolicyArgs + /// { + /// Name = "example name", + /// Policy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "datazone:*", + /// "ram:*", + /// "sso:*", + /// "kms:*", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = "*", + /// }, + /// }, + /// }), + /// }, + /// }, + /// }); + /// + /// var test = new Aws.DataZone.Domain("test", new() + /// { + /// Name = "example name", + /// DomainExecutionRole = domainExecutionRole.Arn, + /// }); + /// + /// var testSecurityGroup = new Aws.Ec2.SecurityGroup("test", new() + /// { + /// Name = "example name", + /// }); + /// + /// var testProject = new Aws.DataZone.Project("test", new() + /// { + /// DomainIdentifier = test.Id, + /// GlossaryTerms = new[] + /// { + /// "2N8w6XJCwZf", + /// }, + /// Name = "example name", + /// Description = "desc", + /// SkipDeletionCheck = true, + /// }); + /// + /// var testFormType = new Aws.DataZone.FormType("test", new() + /// { + /// Description = "desc", + /// Name = "SageMakerModelFormType", + /// DomainIdentifier = test.Id, + /// OwningProjectIdentifier = testProject.Id, + /// Status = "DISABLED", + /// Model = new Aws.DataZone.Inputs.FormTypeModelArgs + /// { + /// Smithy = @" structure SageMakerModelFormType { + /// @required + /// @amazon.datazone#searchable + /// modelName: String + /// + /// @required + /// modelArn: String + /// + /// @required + /// creationTime: String + /// } + /// ", + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: + /// + /// ```sh + /// $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision + /// ``` + /// + [AwsResourceType("aws:datazone/formType:FormType")] + public partial class FormType : global::Pulumi.CustomResource + { + /// + /// Creation time of the Form Type. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Creator of the Form Type. + /// + [Output("createdBy")] + public Output CreatedBy { get; private set; } = null!; + + /// + /// Description of form type. Must have a length of between 1 and 2048 characters. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Identifier of the domain. + /// + [Output("domainIdentifier")] + public Output DomainIdentifier { get; private set; } = null!; + + [Output("imports")] + public Output> Imports { get; private set; } = null!; + + /// + /// Object of the model of the form type that contains the following attributes. + /// + [Output("model")] + public Output Model { get; private set; } = null!; + + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Origin domain id of the Form Type. + /// + [Output("originDomainId")] + public Output OriginDomainId { get; private set; } = null!; + + /// + /// Origin project id of the Form Type. + /// + [Output("originProjectId")] + public Output OriginProjectId { get; private set; } = null!; + + /// + /// Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + /// + [Output("owningProjectIdentifier")] + public Output OwningProjectIdentifier { get; private set; } = null!; + + /// + /// Revision of the Form Type. + /// + [Output("revision")] + public Output Revision { get; private set; } = null!; + + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a FormType 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 FormType(string name, FormTypeArgs args, CustomResourceOptions? options = null) + : base("aws:datazone/formType:FormType", name, args ?? new FormTypeArgs(), MakeResourceOptions(options, "")) + { + } + + private FormType(string name, Input id, FormTypeState? state = null, CustomResourceOptions? options = null) + : base("aws:datazone/formType:FormType", 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 FormType 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 FormType Get(string name, Input id, FormTypeState? state = null, CustomResourceOptions? options = null) + { + return new FormType(name, id, state, options); + } + } + + public sealed class FormTypeArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of form type. Must have a length of between 1 and 2048 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of the domain. + /// + [Input("domainIdentifier", required: true)] + public Input DomainIdentifier { get; set; } = null!; + + /// + /// Object of the model of the form type that contains the following attributes. + /// + [Input("model")] + public Input? Model { get; set; } + + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + /// + [Input("owningProjectIdentifier", required: true)] + public Input OwningProjectIdentifier { get; set; } = null!; + + [Input("status")] + public Input? Status { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public FormTypeArgs() + { + } + public static new FormTypeArgs Empty => new FormTypeArgs(); + } + + public sealed class FormTypeState : global::Pulumi.ResourceArgs + { + /// + /// Creation time of the Form Type. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Creator of the Form Type. + /// + [Input("createdBy")] + public Input? CreatedBy { get; set; } + + /// + /// Description of form type. Must have a length of between 1 and 2048 characters. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of the domain. + /// + [Input("domainIdentifier")] + public Input? DomainIdentifier { get; set; } + + [Input("imports")] + private InputList? _imports; + public InputList Imports + { + get => _imports ?? (_imports = new InputList()); + set => _imports = value; + } + + /// + /// Object of the model of the form type that contains the following attributes. + /// + [Input("model")] + public Input? Model { get; set; } + + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Origin domain id of the Form Type. + /// + [Input("originDomainId")] + public Input? OriginDomainId { get; set; } + + /// + /// Origin project id of the Form Type. + /// + [Input("originProjectId")] + public Input? OriginProjectId { get; set; } + + /// + /// Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + /// + [Input("owningProjectIdentifier")] + public Input? OwningProjectIdentifier { get; set; } + + /// + /// Revision of the Form Type. + /// + [Input("revision")] + public Input? Revision { get; set; } + + [Input("status")] + public Input? Status { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public FormTypeState() + { + } + public static new FormTypeState Empty => new FormTypeState(); + } +} diff --git a/sdk/dotnet/DataZone/GlossaryTerm.cs b/sdk/dotnet/DataZone/GlossaryTerm.cs new file mode 100644 index 00000000000..ebcb535b29c --- /dev/null +++ b/sdk/dotnet/DataZone/GlossaryTerm.cs @@ -0,0 +1,367 @@ +// *** 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.Aws.DataZone +{ + /// + /// Resource for managing an AWS DataZone Glossary Term. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Iam.Role("example", new() + /// { + /// Name = "example", + /// AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "datazone.amazonaws.com", + /// }, + /// }, + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "sts:AssumeRole", + /// "sts:TagSession", + /// }, + /// ["Effect"] = "Allow", + /// ["Principal"] = new Dictionary<string, object?> + /// { + /// ["Service"] = "cloudformation.amazonaws.com", + /// }, + /// }, + /// }, + /// }), + /// InlinePolicies = new[] + /// { + /// new Aws.Iam.Inputs.RoleInlinePolicyArgs + /// { + /// Name = "example", + /// Policy = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// ["Version"] = "2012-10-17", + /// ["Statement"] = new[] + /// { + /// new Dictionary<string, object?> + /// { + /// ["Action"] = new[] + /// { + /// "datazone:*", + /// "ram:*", + /// "sso:*", + /// "kms:*", + /// }, + /// ["Effect"] = "Allow", + /// ["Resource"] = "*", + /// }, + /// }, + /// }), + /// }, + /// }, + /// }); + /// + /// var exampleDomain = new Aws.DataZone.Domain("example", new() + /// { + /// Name = "example_name", + /// DomainExecutionRole = example.Arn, + /// }); + /// + /// var exampleSecurityGroup = new Aws.Ec2.SecurityGroup("example", new() + /// { + /// Name = "example_name", + /// }); + /// + /// var exampleProject = new Aws.DataZone.Project("example", new() + /// { + /// DomainIdentifier = exampleDomain.Id, + /// GlossaryTerms = new[] + /// { + /// "2N8w6XJCwZf", + /// }, + /// Name = "example", + /// SkipDeletionCheck = true, + /// }); + /// + /// var exampleGlossary = new Aws.DataZone.Glossary("example", new() + /// { + /// Description = "description", + /// Name = "example", + /// OwningProjectIdentifier = exampleProject.Id, + /// Status = "ENABLED", + /// DomainIdentifier = exampleProject.DomainIdentifier, + /// }); + /// + /// var exampleGlossaryTerm = new Aws.DataZone.GlossaryTerm("example", new() + /// { + /// DomainIdentifier = exampleDomain.Id, + /// GlossaryIdentifier = exampleGlossary.Id, + /// Name = "example", + /// Status = "ENABLED", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: + /// + /// ```sh + /// $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id + /// ``` + /// + [AwsResourceType("aws:datazone/glossaryTerm:GlossaryTerm")] + public partial class GlossaryTerm : global::Pulumi.CustomResource + { + /// + /// Time of glossary term creation. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Creator of glossary term. + /// + [Output("createdBy")] + public Output CreatedBy { get; private set; } = null!; + + /// + /// Identifier of domain. + /// + [Output("domainIdentifier")] + public Output DomainIdentifier { get; private set; } = null!; + + /// + /// Identifier of glossary. + /// + [Output("glossaryIdentifier")] + public Output GlossaryIdentifier { get; private set; } = null!; + + /// + /// Long description of entry. + /// + [Output("longDescription")] + public Output LongDescription { get; private set; } = null!; + + /// + /// Name of glossary term. + /// + /// The following arguments are optional: + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Short description of entry. + /// + [Output("shortDescription")] + public Output ShortDescription { get; private set; } = null!; + + /// + /// If glossary term is ENABLED or DISABLED. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// Object classifying the term relations through the following attributes: + /// + [Output("termRelations")] + public Output TermRelations { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a GlossaryTerm 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 GlossaryTerm(string name, GlossaryTermArgs args, CustomResourceOptions? options = null) + : base("aws:datazone/glossaryTerm:GlossaryTerm", name, args ?? new GlossaryTermArgs(), MakeResourceOptions(options, "")) + { + } + + private GlossaryTerm(string name, Input id, GlossaryTermState? state = null, CustomResourceOptions? options = null) + : base("aws:datazone/glossaryTerm:GlossaryTerm", 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 GlossaryTerm 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 GlossaryTerm Get(string name, Input id, GlossaryTermState? state = null, CustomResourceOptions? options = null) + { + return new GlossaryTerm(name, id, state, options); + } + } + + public sealed class GlossaryTermArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier of domain. + /// + [Input("domainIdentifier")] + public Input? DomainIdentifier { get; set; } + + /// + /// Identifier of glossary. + /// + [Input("glossaryIdentifier", required: true)] + public Input GlossaryIdentifier { get; set; } = null!; + + /// + /// Long description of entry. + /// + [Input("longDescription")] + public Input? LongDescription { get; set; } + + /// + /// Name of glossary term. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Short description of entry. + /// + [Input("shortDescription")] + public Input? ShortDescription { get; set; } + + /// + /// If glossary term is ENABLED or DISABLED. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// Object classifying the term relations through the following attributes: + /// + [Input("termRelations")] + public Input? TermRelations { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public GlossaryTermArgs() + { + } + public static new GlossaryTermArgs Empty => new GlossaryTermArgs(); + } + + public sealed class GlossaryTermState : global::Pulumi.ResourceArgs + { + /// + /// Time of glossary term creation. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + /// + /// Creator of glossary term. + /// + [Input("createdBy")] + public Input? CreatedBy { get; set; } + + /// + /// Identifier of domain. + /// + [Input("domainIdentifier")] + public Input? DomainIdentifier { get; set; } + + /// + /// Identifier of glossary. + /// + [Input("glossaryIdentifier")] + public Input? GlossaryIdentifier { get; set; } + + /// + /// Long description of entry. + /// + [Input("longDescription")] + public Input? LongDescription { get; set; } + + /// + /// Name of glossary term. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Short description of entry. + /// + [Input("shortDescription")] + public Input? ShortDescription { get; set; } + + /// + /// If glossary term is ENABLED or DISABLED. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// Object classifying the term relations through the following attributes: + /// + [Input("termRelations")] + public Input? TermRelations { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public GlossaryTermState() + { + } + public static new GlossaryTermState Empty => new GlossaryTermState(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterArgs.cs b/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterArgs.cs new file mode 100644 index 00000000000..470027c9a4e --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterArgs.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.Aws.DataZone.Inputs +{ + + public sealed class EnvironmentProfileUserParameterArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the environment profile parameter. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Value of the environment profile parameter. + /// + [Input("value")] + public Input? Value { get; set; } + + public EnvironmentProfileUserParameterArgs() + { + } + public static new EnvironmentProfileUserParameterArgs Empty => new EnvironmentProfileUserParameterArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterGetArgs.cs b/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterGetArgs.cs new file mode 100644 index 00000000000..028acad7c69 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/EnvironmentProfileUserParameterGetArgs.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.Aws.DataZone.Inputs +{ + + public sealed class EnvironmentProfileUserParameterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the environment profile parameter. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Value of the environment profile parameter. + /// + [Input("value")] + public Input? Value { get; set; } + + public EnvironmentProfileUserParameterGetArgs() + { + } + public static new EnvironmentProfileUserParameterGetArgs Empty => new EnvironmentProfileUserParameterGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeImportArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeImportArgs.cs new file mode 100644 index 00000000000..d44e1359e4e --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeImportArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeImportArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Revision of the Form Type. + /// + [Input("revision", required: true)] + public Input Revision { get; set; } = null!; + + public FormTypeImportArgs() + { + } + public static new FormTypeImportArgs Empty => new FormTypeImportArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeImportGetArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeImportGetArgs.cs new file mode 100644 index 00000000000..5395715a44a --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeImportGetArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeImportGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// Revision of the Form Type. + /// + [Input("revision", required: true)] + public Input Revision { get; set; } = null!; + + public FormTypeImportGetArgs() + { + } + public static new FormTypeImportGetArgs Empty => new FormTypeImportGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeModelArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeModelArgs.cs new file mode 100644 index 00000000000..15e94b68ab7 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeModelArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeModelArgs : global::Pulumi.ResourceArgs + { + /// + /// Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + /// + /// The following arguments are optional: + /// + [Input("smithy", required: true)] + public Input Smithy { get; set; } = null!; + + public FormTypeModelArgs() + { + } + public static new FormTypeModelArgs Empty => new FormTypeModelArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeModelGetArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeModelGetArgs.cs new file mode 100644 index 00000000000..eafdd281105 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeModelGetArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeModelGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + /// + /// The following arguments are optional: + /// + [Input("smithy", required: true)] + public Input Smithy { get; set; } = null!; + + public FormTypeModelGetArgs() + { + } + public static new FormTypeModelGetArgs Empty => new FormTypeModelGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsArgs.cs new file mode 100644 index 00000000000..051042283f5 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public FormTypeTimeoutsArgs() + { + } + public static new FormTypeTimeoutsArgs Empty => new FormTypeTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsGetArgs.cs b/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsGetArgs.cs new file mode 100644 index 00000000000..a47c2c22164 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/FormTypeTimeoutsGetArgs.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.Aws.DataZone.Inputs +{ + + public sealed class FormTypeTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public FormTypeTimeoutsGetArgs() + { + } + public static new FormTypeTimeoutsGetArgs Empty => new FormTypeTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsArgs.cs b/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsArgs.cs new file mode 100644 index 00000000000..81e86e15e87 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsArgs.cs @@ -0,0 +1,40 @@ +// *** 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.Aws.DataZone.Inputs +{ + + public sealed class GlossaryTermTermRelationsArgs : global::Pulumi.ResourceArgs + { + [Input("classifies")] + private InputList? _classifies; + + /// + /// String array that calssifies the term relations. + /// + public InputList Classifies + { + get => _classifies ?? (_classifies = new InputList()); + set => _classifies = value; + } + + [Input("isAs")] + private InputList? _isAs; + public InputList IsAs + { + get => _isAs ?? (_isAs = new InputList()); + set => _isAs = value; + } + + public GlossaryTermTermRelationsArgs() + { + } + public static new GlossaryTermTermRelationsArgs Empty => new GlossaryTermTermRelationsArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsGetArgs.cs b/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsGetArgs.cs new file mode 100644 index 00000000000..896e652ea81 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/GlossaryTermTermRelationsGetArgs.cs @@ -0,0 +1,40 @@ +// *** 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.Aws.DataZone.Inputs +{ + + public sealed class GlossaryTermTermRelationsGetArgs : global::Pulumi.ResourceArgs + { + [Input("classifies")] + private InputList? _classifies; + + /// + /// String array that calssifies the term relations. + /// + public InputList Classifies + { + get => _classifies ?? (_classifies = new InputList()); + set => _classifies = value; + } + + [Input("isAs")] + private InputList? _isAs; + public InputList IsAs + { + get => _isAs ?? (_isAs = new InputList()); + set => _isAs = value; + } + + public GlossaryTermTermRelationsGetArgs() + { + } + public static new GlossaryTermTermRelationsGetArgs Empty => new GlossaryTermTermRelationsGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsArgs.cs b/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsArgs.cs new file mode 100644 index 00000000000..784a9edfdca --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsArgs.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.Aws.DataZone.Inputs +{ + + public sealed class GlossaryTermTimeoutsArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public GlossaryTermTimeoutsArgs() + { + } + public static new GlossaryTermTimeoutsArgs Empty => new GlossaryTermTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsGetArgs.cs b/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsGetArgs.cs new file mode 100644 index 00000000000..a2eac634543 --- /dev/null +++ b/sdk/dotnet/DataZone/Inputs/GlossaryTermTimeoutsGetArgs.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.Aws.DataZone.Inputs +{ + + public sealed class GlossaryTermTimeoutsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + [Input("create")] + public Input? Create { get; set; } + + public GlossaryTermTimeoutsGetArgs() + { + } + public static new GlossaryTermTimeoutsGetArgs Empty => new GlossaryTermTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/DataZone/Outputs/EnvironmentProfileUserParameter.cs b/sdk/dotnet/DataZone/Outputs/EnvironmentProfileUserParameter.cs new file mode 100644 index 00000000000..3b983f5df58 --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/EnvironmentProfileUserParameter.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class EnvironmentProfileUserParameter + { + /// + /// Name of the environment profile parameter. + /// + public readonly string? Name; + /// + /// Value of the environment profile parameter. + /// + public readonly string? Value; + + [OutputConstructor] + private EnvironmentProfileUserParameter( + string? name, + + string? value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/FormTypeImport.cs b/sdk/dotnet/DataZone/Outputs/FormTypeImport.cs new file mode 100644 index 00000000000..db6551aa40e --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/FormTypeImport.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class FormTypeImport + { + /// + /// Name of the form type. Must be the name of the structure in smithy document. + /// + public readonly string Name; + /// + /// Revision of the Form Type. + /// + public readonly string Revision; + + [OutputConstructor] + private FormTypeImport( + string name, + + string revision) + { + Name = name; + Revision = revision; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/FormTypeModel.cs b/sdk/dotnet/DataZone/Outputs/FormTypeModel.cs new file mode 100644 index 00000000000..a2ab621858e --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/FormTypeModel.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class FormTypeModel + { + /// + /// Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + /// + /// The following arguments are optional: + /// + public readonly string Smithy; + + [OutputConstructor] + private FormTypeModel(string smithy) + { + Smithy = smithy; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/FormTypeTimeouts.cs b/sdk/dotnet/DataZone/Outputs/FormTypeTimeouts.cs new file mode 100644 index 00000000000..815fdd5287a --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/FormTypeTimeouts.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class FormTypeTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + + [OutputConstructor] + private FormTypeTimeouts(string? create) + { + Create = create; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/GlossaryTermTermRelations.cs b/sdk/dotnet/DataZone/Outputs/GlossaryTermTermRelations.cs new file mode 100644 index 00000000000..71804f826f9 --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/GlossaryTermTermRelations.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class GlossaryTermTermRelations + { + /// + /// String array that calssifies the term relations. + /// + public readonly ImmutableArray Classifies; + public readonly ImmutableArray IsAs; + + [OutputConstructor] + private GlossaryTermTermRelations( + ImmutableArray classifies, + + ImmutableArray isAs) + { + Classifies = classifies; + IsAs = isAs; + } + } +} diff --git a/sdk/dotnet/DataZone/Outputs/GlossaryTermTimeouts.cs b/sdk/dotnet/DataZone/Outputs/GlossaryTermTimeouts.cs new file mode 100644 index 00000000000..f76da8f2f22 --- /dev/null +++ b/sdk/dotnet/DataZone/Outputs/GlossaryTermTimeouts.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.Aws.DataZone.Outputs +{ + + [OutputType] + public sealed class GlossaryTermTimeouts + { + /// + /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + /// + public readonly string? Create; + + [OutputConstructor] + private GlossaryTermTimeouts(string? create) + { + Create = create; + } + } +} diff --git a/sdk/dotnet/LB/Listener.cs b/sdk/dotnet/LB/Listener.cs index 51c3bc18d62..6a452aa4dc2 100644 --- a/sdk/dotnet/LB/Listener.cs +++ b/sdk/dotnet/LB/Listener.cs @@ -65,6 +65,7 @@ namespace Pulumi.Aws.LB /// LoadBalancerArn = frontEndAwsLb.Arn, /// Port = 443, /// Protocol = "TLS", + /// SslPolicy = "ELBSecurityPolicy-2016-08", /// CertificateArn = "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", /// AlpnPolicy = "HTTP2Preferred", /// DefaultActions = new[] @@ -395,7 +396,7 @@ public partial class Listener : global::Pulumi.CustomResource public Output Protocol { get; private set; } = null!; /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Output("sslPolicy")] public Output SslPolicy { get; private set; } = null!; @@ -515,7 +516,7 @@ public InputList DefaultActions public Input? Protocol { get; set; } /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Input("sslPolicy")] public Input? SslPolicy { get; set; } @@ -599,7 +600,7 @@ public InputList DefaultActions public Input? Protocol { get; set; } /// - /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + /// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. /// [Input("sslPolicy")] public Input? SslPolicy { get; set; } diff --git a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesArgs.cs b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesArgs.cs index ec7a3bc00a1..215666e675c 100644 --- a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesArgs.cs +++ b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesArgs.cs @@ -12,16 +12,16 @@ namespace Pulumi.Aws.Lex.Inputs public sealed class V2modelsSlotTypeSlotTypeValuesArgs : global::Pulumi.ResourceArgs { - [Input("slotTypeValues", required: true)] - private InputList? _slotTypeValues; + [Input("sampleValues")] + private InputList? _sampleValues; /// - /// List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + /// Value of the slot type entry. See `sample_value` argument reference below. /// - public InputList SlotTypeValues + public InputList SampleValues { - get => _slotTypeValues ?? (_slotTypeValues = new InputList()); - set => _slotTypeValues = value; + get => _sampleValues ?? (_sampleValues = new InputList()); + set => _sampleValues = value; } [Input("synonyms")] diff --git a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesGetArgs.cs b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesGetArgs.cs index 6d5b529fca1..163b07d8793 100644 --- a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesGetArgs.cs @@ -12,16 +12,16 @@ namespace Pulumi.Aws.Lex.Inputs public sealed class V2modelsSlotTypeSlotTypeValuesGetArgs : global::Pulumi.ResourceArgs { - [Input("slotTypeValues", required: true)] - private InputList? _slotTypeValues; + [Input("sampleValues")] + private InputList? _sampleValues; /// - /// List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + /// Value of the slot type entry. See `sample_value` argument reference below. /// - public InputList SlotTypeValues + public InputList SampleValues { - get => _slotTypeValues ?? (_slotTypeValues = new InputList()); - set => _slotTypeValues = value; + get => _sampleValues ?? (_sampleValues = new InputList()); + set => _sampleValues = value; } [Input("synonyms")] diff --git a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.cs b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.cs similarity index 65% rename from sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.cs rename to sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.cs index c0ecdd87b45..44635c37223 100644 --- a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.cs +++ b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.cs @@ -10,7 +10,7 @@ namespace Pulumi.Aws.Lex.Inputs { - public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs : global::Pulumi.ResourceArgs + public sealed class V2modelsSlotTypeSlotTypeValuesSampleValueArgs : global::Pulumi.ResourceArgs { /// /// Value that can be used for a slot type. @@ -18,9 +18,9 @@ public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs : global::Pu [Input("value", required: true)] public Input Value { get; set; } = null!; - public V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs() + public V2modelsSlotTypeSlotTypeValuesSampleValueArgs() { } - public static new V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs Empty => new V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs(); + public static new V2modelsSlotTypeSlotTypeValuesSampleValueArgs Empty => new V2modelsSlotTypeSlotTypeValuesSampleValueArgs(); } } diff --git a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs.cs b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs.cs similarity index 64% rename from sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs.cs rename to sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs.cs index dbe83c1958d..e8afa2e35d3 100644 --- a/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs.cs +++ b/sdk/dotnet/Lex/Inputs/V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs.cs @@ -10,7 +10,7 @@ namespace Pulumi.Aws.Lex.Inputs { - public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs : global::Pulumi.ResourceArgs + public sealed class V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs : global::Pulumi.ResourceArgs { /// /// Value that can be used for a slot type. @@ -18,9 +18,9 @@ public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs : global: [Input("value", required: true)] public Input Value { get; set; } = null!; - public V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs() + public V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs() { } - public static new V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs Empty => new V2modelsSlotTypeSlotTypeValuesSlotTypeValueGetArgs(); + public static new V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs Empty => new V2modelsSlotTypeSlotTypeValuesSampleValueGetArgs(); } } diff --git a/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValues.cs b/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValues.cs index db1045d84d2..fe05681fea5 100644 --- a/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValues.cs +++ b/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValues.cs @@ -14,9 +14,9 @@ namespace Pulumi.Aws.Lex.Outputs public sealed class V2modelsSlotTypeSlotTypeValues { /// - /// List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + /// Value of the slot type entry. See `sample_value` argument reference below. /// - public readonly ImmutableArray SlotTypeValues; + public readonly ImmutableArray SampleValues; /// /// Additional values related to the slot type entry. See `sample_value` argument reference below. /// @@ -24,11 +24,11 @@ public sealed class V2modelsSlotTypeSlotTypeValues [OutputConstructor] private V2modelsSlotTypeSlotTypeValues( - ImmutableArray slotTypeValues, + ImmutableArray sampleValues, ImmutableArray synonyms) { - SlotTypeValues = slotTypeValues; + SampleValues = sampleValues; Synonyms = synonyms; } } diff --git a/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.cs b/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.cs similarity index 80% rename from sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.cs rename to sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.cs index d1a2068ca1b..991e397e149 100644 --- a/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.cs +++ b/sdk/dotnet/Lex/Outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.cs @@ -11,7 +11,7 @@ namespace Pulumi.Aws.Lex.Outputs { [OutputType] - public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValue + public sealed class V2modelsSlotTypeSlotTypeValuesSampleValue { /// /// Value that can be used for a slot type. @@ -19,7 +19,7 @@ public sealed class V2modelsSlotTypeSlotTypeValuesSlotTypeValue public readonly string Value; [OutputConstructor] - private V2modelsSlotTypeSlotTypeValuesSlotTypeValue(string value) + private V2modelsSlotTypeSlotTypeValuesSampleValue(string value) { Value = value; } diff --git a/sdk/dotnet/Msk/Replicator.cs b/sdk/dotnet/Msk/Replicator.cs index 9848d070fd4..b4f76aa8682 100644 --- a/sdk/dotnet/Msk/Replicator.cs +++ b/sdk/dotnet/Msk/Replicator.cs @@ -75,6 +75,10 @@ namespace Pulumi.Aws.Msk /// { /// ".*", /// }, + /// StartingPosition = new Aws.Msk.Inputs.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs + /// { + /// Type = "LATEST", + /// }, /// }, /// }, /// ConsumerGroupReplications = new[] diff --git a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationArgs.cs b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationArgs.cs index 26fc1e173a6..a3e9590f713 100644 --- a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationArgs.cs +++ b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationArgs.cs @@ -16,7 +16,7 @@ public sealed class LoggingConfigurationLoggingConfigurationArgs : global::Pulum private InputList? _logDestinationConfigs; /// - /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. /// public InputList LogDestinationConfigs { diff --git a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationGetArgs.cs b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationGetArgs.cs index f84c26bb91d..a4cb48f7387 100644 --- a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationGetArgs.cs +++ b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationGetArgs.cs @@ -16,7 +16,7 @@ public sealed class LoggingConfigurationLoggingConfigurationGetArgs : global::Pu private InputList? _logDestinationConfigs; /// - /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. /// public InputList LogDestinationConfigs { diff --git a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.cs b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.cs index 9db66d4c8e2..ced5d89eea7 100644 --- a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.cs +++ b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.cs @@ -34,7 +34,7 @@ public InputMap LogDestination public Input LogDestinationType { get; set; } = null!; /// - /// The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + /// The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. /// [Input("logType", required: true)] public Input LogType { get; set; } = null!; diff --git a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigGetArgs.cs b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigGetArgs.cs index b249c5a11b3..8579d48bcba 100644 --- a/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigGetArgs.cs +++ b/sdk/dotnet/NetworkFirewall/Inputs/LoggingConfigurationLoggingConfigurationLogDestinationConfigGetArgs.cs @@ -34,7 +34,7 @@ public InputMap LogDestination public Input LogDestinationType { get; set; } = null!; /// - /// The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + /// The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. /// [Input("logType", required: true)] public Input LogType { get; set; } = null!; diff --git a/sdk/dotnet/NetworkFirewall/LoggingConfiguration.cs b/sdk/dotnet/NetworkFirewall/LoggingConfiguration.cs index 2d58908b094..5c3c29523a2 100644 --- a/sdk/dotnet/NetworkFirewall/LoggingConfiguration.cs +++ b/sdk/dotnet/NetworkFirewall/LoggingConfiguration.cs @@ -105,7 +105,7 @@ namespace Pulumi.Aws.NetworkFirewall /// { "deliveryStream", exampleAwsKinesisFirehoseDeliveryStream.Name }, /// }, /// LogDestinationType = "KinesisDataFirehose", - /// LogType = "ALERT", + /// LogType = "TLS", /// }, /// }, /// }, diff --git a/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfiguration.cs b/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfiguration.cs index 19030b6d435..125c37c8579 100644 --- a/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfiguration.cs +++ b/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfiguration.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.NetworkFirewall.Outputs public sealed class LoggingConfigurationLoggingConfiguration { /// - /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + /// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. /// public readonly ImmutableArray LogDestinationConfigs; diff --git a/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.cs b/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.cs index d1ffb3c3586..d649afbcd08 100644 --- a/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.cs +++ b/sdk/dotnet/NetworkFirewall/Outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.cs @@ -25,7 +25,7 @@ public sealed class LoggingConfigurationLoggingConfigurationLogDestinationConfig /// public readonly string LogDestinationType; /// - /// The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + /// The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. /// public readonly string LogType; diff --git a/sdk/dotnet/Pinpoint/EmailChannel.cs b/sdk/dotnet/Pinpoint/EmailChannel.cs index 759a11023a5..5098e00b5f1 100644 --- a/sdk/dotnet/Pinpoint/EmailChannel.cs +++ b/sdk/dotnet/Pinpoint/EmailChannel.cs @@ -145,7 +145,7 @@ public partial class EmailChannel : global::Pulumi.CustomResource public Output MessagesPerSecond { get; private set; } = null!; /// - /// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + /// *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. /// [Output("roleArn")] public Output RoleArn { get; private set; } = null!; @@ -227,7 +227,7 @@ public sealed class EmailChannelArgs : global::Pulumi.ResourceArgs public Input Identity { get; set; } = null!; /// - /// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + /// *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. /// [Input("roleArn")] public Input? RoleArn { get; set; } @@ -277,7 +277,7 @@ public sealed class EmailChannelState : global::Pulumi.ResourceArgs public Input? MessagesPerSecond { get; set; } /// - /// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + /// *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. /// [Input("roleArn")] public Input? RoleArn { get; set; } diff --git a/sdk/dotnet/Pinpoint/EmailTemplate.cs b/sdk/dotnet/Pinpoint/EmailTemplate.cs new file mode 100644 index 00000000000..97508f7e73f --- /dev/null +++ b/sdk/dotnet/Pinpoint/EmailTemplate.cs @@ -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! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Pinpoint +{ + /// + /// Provides a Pinpoint Email Template resource + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = new Aws.Pinpoint.EmailTemplate("test", new() + /// { + /// TemplateName = "testing", + /// EmailTemplates = new[] + /// { + /// new Aws.Pinpoint.Inputs.EmailTemplateEmailTemplateArgs + /// { + /// Subject = "testing", + /// TextPart = "we are testing template text part", + /// Headers = new[] + /// { + /// new Aws.Pinpoint.Inputs.EmailTemplateEmailTemplateHeaderArgs + /// { + /// Name = "testingname", + /// Value = "testingvalue", + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: + /// + /// ```sh + /// $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name + /// ``` + /// + [AwsResourceType("aws:pinpoint/emailTemplate:EmailTemplate")] + public partial class EmailTemplate : global::Pulumi.CustomResource + { + /// + /// Amazon Resource Name (ARN) of the message template. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + /// + [Output("emailTemplates")] + public Output> EmailTemplates { get; private set; } = null!; + + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + /// + /// name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + /// + [Output("templateName")] + public Output TemplateName { get; private set; } = null!; + + + /// + /// Create a EmailTemplate 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 EmailTemplate(string name, EmailTemplateArgs args, CustomResourceOptions? options = null) + : base("aws:pinpoint/emailTemplate:EmailTemplate", name, args ?? new EmailTemplateArgs(), MakeResourceOptions(options, "")) + { + } + + private EmailTemplate(string name, Input id, EmailTemplateState? state = null, CustomResourceOptions? options = null) + : base("aws:pinpoint/emailTemplate:EmailTemplate", 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 EmailTemplate 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 EmailTemplate Get(string name, Input id, EmailTemplateState? state = null, CustomResourceOptions? options = null) + { + return new EmailTemplate(name, id, state, options); + } + } + + public sealed class EmailTemplateArgs : global::Pulumi.ResourceArgs + { + [Input("emailTemplates")] + private InputList? _emailTemplates; + + /// + /// Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + /// + public InputList EmailTemplates + { + get => _emailTemplates ?? (_emailTemplates = new InputList()); + set => _emailTemplates = value; + } + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + /// + [Input("templateName", required: true)] + public Input TemplateName { get; set; } = null!; + + public EmailTemplateArgs() + { + } + public static new EmailTemplateArgs Empty => new EmailTemplateArgs(); + } + + public sealed class EmailTemplateState : global::Pulumi.ResourceArgs + { + /// + /// Amazon Resource Name (ARN) of the message template. + /// + [Input("arn")] + public Input? Arn { get; set; } + + [Input("emailTemplates")] + private InputList? _emailTemplates; + + /// + /// Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + /// + public InputList EmailTemplates + { + get => _emailTemplates ?? (_emailTemplates = new InputList()); + set => _emailTemplates = value; + } + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + [Input("tagsAll")] + private InputMap? _tagsAll; + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + /// + /// name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + /// + [Input("templateName")] + public Input? TemplateName { get; set; } + + public EmailTemplateState() + { + } + public static new EmailTemplateState Empty => new EmailTemplateState(); + } +} diff --git a/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateArgs.cs b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateArgs.cs new file mode 100644 index 00000000000..23e5404e3da --- /dev/null +++ b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateArgs.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.Aws.Pinpoint.Inputs +{ + + public sealed class EmailTemplateEmailTemplateArgs : global::Pulumi.ResourceArgs + { + /// + /// JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + /// + [Input("defaultSubstitutions")] + public Input? DefaultSubstitutions { get; set; } + + [Input("description")] + public Input? Description { get; set; } + + [Input("headers")] + private InputList? _headers; + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + /// + [Input("htmlPart")] + public Input? HtmlPart { get; set; } + + /// + /// The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + /// + [Input("recommenderId")] + public Input? RecommenderId { get; set; } + + /// + /// Subject line, or title, to use in email messages that are based on the message template. + /// + [Input("subject")] + public Input? Subject { get; set; } + + /// + /// Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + /// + [Input("textPart")] + public Input? TextPart { get; set; } + + public EmailTemplateEmailTemplateArgs() + { + } + public static new EmailTemplateEmailTemplateArgs Empty => new EmailTemplateEmailTemplateArgs(); + } +} diff --git a/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateGetArgs.cs b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateGetArgs.cs new file mode 100644 index 00000000000..7084bf205a7 --- /dev/null +++ b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateGetArgs.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.Aws.Pinpoint.Inputs +{ + + public sealed class EmailTemplateEmailTemplateGetArgs : global::Pulumi.ResourceArgs + { + /// + /// JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + /// + [Input("defaultSubstitutions")] + public Input? DefaultSubstitutions { get; set; } + + [Input("description")] + public Input? Description { get; set; } + + [Input("headers")] + private InputList? _headers; + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + /// + [Input("htmlPart")] + public Input? HtmlPart { get; set; } + + /// + /// The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + /// + [Input("recommenderId")] + public Input? RecommenderId { get; set; } + + /// + /// Subject line, or title, to use in email messages that are based on the message template. + /// + [Input("subject")] + public Input? Subject { get; set; } + + /// + /// Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + /// + [Input("textPart")] + public Input? TextPart { get; set; } + + public EmailTemplateEmailTemplateGetArgs() + { + } + public static new EmailTemplateEmailTemplateGetArgs Empty => new EmailTemplateEmailTemplateGetArgs(); + } +} diff --git a/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderArgs.cs b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderArgs.cs new file mode 100644 index 00000000000..ec4017531d8 --- /dev/null +++ b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderArgs.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.Aws.Pinpoint.Inputs +{ + + public sealed class EmailTemplateEmailTemplateHeaderArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the message header. The header name can contain up to 126 characters. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + /// + [Input("value")] + public Input? Value { get; set; } + + public EmailTemplateEmailTemplateHeaderArgs() + { + } + public static new EmailTemplateEmailTemplateHeaderArgs Empty => new EmailTemplateEmailTemplateHeaderArgs(); + } +} diff --git a/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderGetArgs.cs b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderGetArgs.cs new file mode 100644 index 00000000000..f5b0fa0cb8c --- /dev/null +++ b/sdk/dotnet/Pinpoint/Inputs/EmailTemplateEmailTemplateHeaderGetArgs.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.Aws.Pinpoint.Inputs +{ + + public sealed class EmailTemplateEmailTemplateHeaderGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the message header. The header name can contain up to 126 characters. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + /// + [Input("value")] + public Input? Value { get; set; } + + public EmailTemplateEmailTemplateHeaderGetArgs() + { + } + public static new EmailTemplateEmailTemplateHeaderGetArgs Empty => new EmailTemplateEmailTemplateHeaderGetArgs(); + } +} diff --git a/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplate.cs b/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplate.cs new file mode 100644 index 00000000000..763f6a6b8e8 --- /dev/null +++ b/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplate.cs @@ -0,0 +1,64 @@ +// *** 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.Aws.Pinpoint.Outputs +{ + + [OutputType] + public sealed class EmailTemplateEmailTemplate + { + /// + /// JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + /// + public readonly string? DefaultSubstitutions; + public readonly string? Description; + public readonly ImmutableArray Headers; + /// + /// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + /// + public readonly string? HtmlPart; + /// + /// The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + /// + public readonly string? RecommenderId; + /// + /// Subject line, or title, to use in email messages that are based on the message template. + /// + public readonly string? Subject; + /// + /// Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + /// + public readonly string? TextPart; + + [OutputConstructor] + private EmailTemplateEmailTemplate( + string? defaultSubstitutions, + + string? description, + + ImmutableArray headers, + + string? htmlPart, + + string? recommenderId, + + string? subject, + + string? textPart) + { + DefaultSubstitutions = defaultSubstitutions; + Description = description; + Headers = headers; + HtmlPart = htmlPart; + RecommenderId = recommenderId; + Subject = subject; + TextPart = textPart; + } + } +} diff --git a/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplateHeader.cs b/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplateHeader.cs new file mode 100644 index 00000000000..a2b1eecb136 --- /dev/null +++ b/sdk/dotnet/Pinpoint/Outputs/EmailTemplateEmailTemplateHeader.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.Aws.Pinpoint.Outputs +{ + + [OutputType] + public sealed class EmailTemplateEmailTemplateHeader + { + /// + /// Name of the message header. The header name can contain up to 126 characters. + /// + public readonly string? Name; + /// + /// Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + /// + public readonly string? Value; + + [OutputConstructor] + private EmailTemplateEmailTemplateHeader( + string? name, + + string? value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/Pipes/Pipe.cs b/sdk/dotnet/Pipes/Pipe.cs index 596f7f0cb19..ea996d0a37d 100644 --- a/sdk/dotnet/Pipes/Pipe.cs +++ b/sdk/dotnet/Pipes/Pipe.cs @@ -254,6 +254,43 @@ namespace Pulumi.Aws.Pipes /// }); /// ``` /// + /// ### SQS Source and Target Configuration Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Pipes.Pipe("example", new() + /// { + /// Name = "example-pipe", + /// RoleArn = exampleAwsIamRole.Arn, + /// Source = source.Arn, + /// Target = target.Arn, + /// SourceParameters = new Aws.Pipes.Inputs.PipeSourceParametersArgs + /// { + /// SqsQueueParameters = new Aws.Pipes.Inputs.PipeSourceParametersSqsQueueParametersArgs + /// { + /// BatchSize = 1, + /// MaximumBatchingWindowInSeconds = 2, + /// }, + /// }, + /// TargetParameters = new Aws.Pipes.Inputs.PipeTargetParametersArgs + /// { + /// SqsQueueParameters = new Aws.Pipes.Inputs.PipeTargetParametersSqsQueueParametersArgs + /// { + /// MessageDeduplicationId = "example-dedupe", + /// MessageGroupId = "example-group", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Using `pulumi import`, import pipes using the `name`. For example: diff --git a/sdk/dotnet/Rds/ClusterInstance.cs b/sdk/dotnet/Rds/ClusterInstance.cs index 3c459d8836a..60fdff1638f 100644 --- a/sdk/dotnet/Rds/ClusterInstance.cs +++ b/sdk/dotnet/Rds/ClusterInstance.cs @@ -133,7 +133,7 @@ public partial class ClusterInstance : global::Pulumi.CustomResource public Output DbParameterGroupName { get; private set; } = null!; /// - /// DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + /// Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. /// [Output("dbSubnetGroupName")] public Output DbSubnetGroupName { get; private set; } = null!; @@ -378,7 +378,7 @@ public sealed class ClusterInstanceArgs : global::Pulumi.ResourceArgs public Input? DbParameterGroupName { get; set; } /// - /// DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + /// Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. /// [Input("dbSubnetGroupName")] public Input? DbSubnetGroupName { get; set; } @@ -543,7 +543,7 @@ public sealed class ClusterInstanceState : global::Pulumi.ResourceArgs public Input? DbParameterGroupName { get; set; } /// - /// DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + /// Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. /// [Input("dbSubnetGroupName")] public Input? DbSubnetGroupName { get; set; } diff --git a/sdk/dotnet/Sagemaker/App.cs b/sdk/dotnet/Sagemaker/App.cs index f650588e286..f7f505c012e 100644 --- a/sdk/dotnet/Sagemaker/App.cs +++ b/sdk/dotnet/Sagemaker/App.cs @@ -53,7 +53,7 @@ public partial class App : global::Pulumi.CustomResource public Output AppName { get; private set; } = null!; /// - /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. /// [Output("appType")] public Output AppType { get; private set; } = null!; @@ -153,7 +153,7 @@ public sealed class AppArgs : global::Pulumi.ResourceArgs public Input AppName { get; set; } = null!; /// - /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. /// [Input("appType", required: true)] public Input AppType { get; set; } = null!; @@ -209,7 +209,7 @@ public sealed class AppState : global::Pulumi.ResourceArgs public Input? AppName { get; set; } /// - /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + /// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. /// [Input("appType")] public Input? AppType { get; set; } diff --git a/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceArgs.cs b/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceArgs.cs index 7961368ea6c..1d0789a4c81 100644 --- a/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceArgs.cs +++ b/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceArgs.cs @@ -38,7 +38,7 @@ public InputList Regions } /// - /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. /// [Input("sourceName", required: true)] public Input SourceName { get; set; } = null!; diff --git a/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceGetArgs.cs b/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceGetArgs.cs index 9e46d4a41fb..29b7711f380 100644 --- a/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceGetArgs.cs +++ b/sdk/dotnet/SecurityLake/Inputs/AwsLogSourceSourceGetArgs.cs @@ -38,7 +38,7 @@ public InputList Regions } /// - /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. /// [Input("sourceName", required: true)] public Input SourceName { get; set; } = null!; diff --git a/sdk/dotnet/SecurityLake/Outputs/AwsLogSourceSource.cs b/sdk/dotnet/SecurityLake/Outputs/AwsLogSourceSource.cs index b23c3bcf9a5..3af1f747c70 100644 --- a/sdk/dotnet/SecurityLake/Outputs/AwsLogSourceSource.cs +++ b/sdk/dotnet/SecurityLake/Outputs/AwsLogSourceSource.cs @@ -23,7 +23,7 @@ public sealed class AwsLogSourceSource /// public readonly ImmutableArray Regions; /// - /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + /// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. /// public readonly string SourceName; /// diff --git a/sdk/go/aws/alb/listener.go b/sdk/go/aws/alb/listener.go index 81ed97dc0d3..5419c4edbe8 100644 --- a/sdk/go/aws/alb/listener.go +++ b/sdk/go/aws/alb/listener.go @@ -80,6 +80,7 @@ import ( // LoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn), // Port: pulumi.Int(443), // Protocol: pulumi.String("TLS"), +// SslPolicy: pulumi.String("ELBSecurityPolicy-2016-08"), // CertificateArn: pulumi.String("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4"), // AlpnPolicy: pulumi.String("HTTP2Preferred"), // DefaultActions: lb.ListenerDefaultActionArray{ @@ -429,7 +430,7 @@ type Listener struct { Port pulumi.IntPtrOutput `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringOutput `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringOutput `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -501,7 +502,7 @@ type listenerState struct { Port *int `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol *string `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -532,7 +533,7 @@ type ListenerState struct { Port pulumi.IntPtrInput // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringPtrInput - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -565,7 +566,7 @@ type listenerArgs struct { Port *int `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol *string `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -591,7 +592,7 @@ type ListenerArgs struct { Port pulumi.IntPtrInput // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringPtrInput - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -728,7 +729,7 @@ func (o ListenerOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) } -// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. +// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. func (o ListenerOutput) SslPolicy() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.SslPolicy }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/bedrock/agentAgentKnowledgeBaseAssociation.go b/sdk/go/aws/bedrock/agentAgentKnowledgeBaseAssociation.go index dc602634b41..ce4a2d468b4 100644 --- a/sdk/go/aws/bedrock/agentAgentKnowledgeBaseAssociation.go +++ b/sdk/go/aws/bedrock/agentAgentKnowledgeBaseAssociation.go @@ -66,7 +66,8 @@ type AgentAgentKnowledgeBaseAssociation struct { // Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. // // The following arguments are optional: - KnowledgeBaseState pulumi.StringOutput `pulumi:"knowledgeBaseState"` + KnowledgeBaseState pulumi.StringOutput `pulumi:"knowledgeBaseState"` + Timeouts AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput `pulumi:"timeouts"` } // NewAgentAgentKnowledgeBaseAssociation registers a new resource with the given unique name, arguments, and options. @@ -122,7 +123,8 @@ type agentAgentKnowledgeBaseAssociationState struct { // Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. // // The following arguments are optional: - KnowledgeBaseState *string `pulumi:"knowledgeBaseState"` + KnowledgeBaseState *string `pulumi:"knowledgeBaseState"` + Timeouts *AgentAgentKnowledgeBaseAssociationTimeouts `pulumi:"timeouts"` } type AgentAgentKnowledgeBaseAssociationState struct { @@ -138,6 +140,7 @@ type AgentAgentKnowledgeBaseAssociationState struct { // // The following arguments are optional: KnowledgeBaseState pulumi.StringPtrInput + Timeouts AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput } func (AgentAgentKnowledgeBaseAssociationState) ElementType() reflect.Type { @@ -156,7 +159,8 @@ type agentAgentKnowledgeBaseAssociationArgs struct { // Whether to use the knowledge base when sending an [InvokeAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) request. Valid values: `ENABLED`, `DISABLED`. // // The following arguments are optional: - KnowledgeBaseState string `pulumi:"knowledgeBaseState"` + KnowledgeBaseState string `pulumi:"knowledgeBaseState"` + Timeouts *AgentAgentKnowledgeBaseAssociationTimeouts `pulumi:"timeouts"` } // The set of arguments for constructing a AgentAgentKnowledgeBaseAssociation resource. @@ -173,6 +177,7 @@ type AgentAgentKnowledgeBaseAssociationArgs struct { // // The following arguments are optional: KnowledgeBaseState pulumi.StringInput + Timeouts AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput } func (AgentAgentKnowledgeBaseAssociationArgs) ElementType() reflect.Type { @@ -289,6 +294,12 @@ func (o AgentAgentKnowledgeBaseAssociationOutput) KnowledgeBaseState() pulumi.St return o.ApplyT(func(v *AgentAgentKnowledgeBaseAssociation) pulumi.StringOutput { return v.KnowledgeBaseState }).(pulumi.StringOutput) } +func (o AgentAgentKnowledgeBaseAssociationOutput) Timeouts() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return o.ApplyT(func(v *AgentAgentKnowledgeBaseAssociation) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return v.Timeouts + }).(AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) +} + type AgentAgentKnowledgeBaseAssociationArrayOutput struct{ *pulumi.OutputState } func (AgentAgentKnowledgeBaseAssociationArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/bedrock/getAgentAgentVersions.go b/sdk/go/aws/bedrock/getAgentAgentVersions.go new file mode 100644 index 00000000000..15fca7b3bb5 --- /dev/null +++ b/sdk/go/aws/bedrock/getAgentAgentVersions.go @@ -0,0 +1,128 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for managing an AWS Amazon BedrockAgent Agent Versions. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := bedrock.GetAgentAgentVersions(ctx, &bedrock.GetAgentAgentVersionsArgs{ +// AgentId: testAwsBedrockagentAgent.AgentId, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetAgentAgentVersions(ctx *pulumi.Context, args *GetAgentAgentVersionsArgs, opts ...pulumi.InvokeOption) (*GetAgentAgentVersionsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetAgentAgentVersionsResult + err := ctx.Invoke("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAgentAgentVersions. +type GetAgentAgentVersionsArgs struct { + // Unique identifier of the agent. + AgentId string `pulumi:"agentId"` + // List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + AgentVersionSummaries []GetAgentAgentVersionsAgentVersionSummary `pulumi:"agentVersionSummaries"` +} + +// A collection of values returned by getAgentAgentVersions. +type GetAgentAgentVersionsResult struct { + AgentId string `pulumi:"agentId"` + // List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + AgentVersionSummaries []GetAgentAgentVersionsAgentVersionSummary `pulumi:"agentVersionSummaries"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func GetAgentAgentVersionsOutput(ctx *pulumi.Context, args GetAgentAgentVersionsOutputArgs, opts ...pulumi.InvokeOption) GetAgentAgentVersionsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetAgentAgentVersionsResult, error) { + args := v.(GetAgentAgentVersionsArgs) + r, err := GetAgentAgentVersions(ctx, &args, opts...) + var s GetAgentAgentVersionsResult + if r != nil { + s = *r + } + return s, err + }).(GetAgentAgentVersionsResultOutput) +} + +// A collection of arguments for invoking getAgentAgentVersions. +type GetAgentAgentVersionsOutputArgs struct { + // Unique identifier of the agent. + AgentId pulumi.StringInput `pulumi:"agentId"` + // List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + AgentVersionSummaries GetAgentAgentVersionsAgentVersionSummaryArrayInput `pulumi:"agentVersionSummaries"` +} + +func (GetAgentAgentVersionsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsArgs)(nil)).Elem() +} + +// A collection of values returned by getAgentAgentVersions. +type GetAgentAgentVersionsResultOutput struct{ *pulumi.OutputState } + +func (GetAgentAgentVersionsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsResult)(nil)).Elem() +} + +func (o GetAgentAgentVersionsResultOutput) ToGetAgentAgentVersionsResultOutput() GetAgentAgentVersionsResultOutput { + return o +} + +func (o GetAgentAgentVersionsResultOutput) ToGetAgentAgentVersionsResultOutputWithContext(ctx context.Context) GetAgentAgentVersionsResultOutput { + return o +} + +func (o GetAgentAgentVersionsResultOutput) AgentId() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsResult) string { return v.AgentId }).(pulumi.StringOutput) +} + +// List of objects, each of which contains information about a version of the agent. See Agent Version Summaries +func (o GetAgentAgentVersionsResultOutput) AgentVersionSummaries() GetAgentAgentVersionsAgentVersionSummaryArrayOutput { + return o.ApplyT(func(v GetAgentAgentVersionsResult) []GetAgentAgentVersionsAgentVersionSummary { + return v.AgentVersionSummaries + }).(GetAgentAgentVersionsAgentVersionSummaryArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetAgentAgentVersionsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetAgentAgentVersionsResultOutput{}) +} diff --git a/sdk/go/aws/bedrock/guardrail.go b/sdk/go/aws/bedrock/guardrail.go new file mode 100644 index 00000000000..b9bb75f8218 --- /dev/null +++ b/sdk/go/aws/bedrock/guardrail.go @@ -0,0 +1,551 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an Amazon Bedrock Guardrail. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/bedrock" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := bedrock.NewGuardrail(ctx, "example", &bedrock.GuardrailArgs{ +// Name: pulumi.String("example"), +// BlockedInputMessaging: pulumi.String("example"), +// BlockedOutputsMessaging: pulumi.String("example"), +// Description: pulumi.String("example"), +// ContentPolicyConfig: &bedrock.GuardrailContentPolicyConfigArgs{ +// FiltersConfigs: bedrock.GuardrailContentPolicyConfigFiltersConfigArray{ +// &bedrock.GuardrailContentPolicyConfigFiltersConfigArgs{ +// InputStrength: pulumi.String("MEDIUM"), +// OutputStrength: pulumi.String("MEDIUM"), +// Type: pulumi.String("HATE"), +// }, +// }, +// }, +// SensitiveInformationPolicyConfig: &bedrock.GuardrailSensitiveInformationPolicyConfigArgs{ +// PiiEntitiesConfigs: bedrock.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray{ +// &bedrock.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs{ +// Action: pulumi.String("BLOCK"), +// Type: pulumi.String("NAME"), +// }, +// }, +// RegexesConfigs: bedrock.GuardrailSensitiveInformationPolicyConfigRegexesConfigArray{ +// &bedrock.GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs{ +// Action: pulumi.String("BLOCK"), +// Description: pulumi.String("example regex"), +// Name: pulumi.String("regex_example"), +// Pattern: pulumi.String("^\\d{3}-\\d{2}-\\d{4}$"), +// }, +// }, +// }, +// TopicPolicyConfig: &bedrock.GuardrailTopicPolicyConfigArgs{ +// TopicsConfigs: bedrock.GuardrailTopicPolicyConfigTopicsConfigArray{ +// &bedrock.GuardrailTopicPolicyConfigTopicsConfigArgs{ +// Name: pulumi.String("investment_topic"), +// Examples: pulumi.StringArray{ +// pulumi.String("Where should I invest my money ?"), +// }, +// Type: pulumi.String("DENY"), +// Definition: pulumi.String("Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns ."), +// }, +// }, +// }, +// WordPolicyConfig: &bedrock.GuardrailWordPolicyConfigArgs{ +// ManagedWordListsConfigs: bedrock.GuardrailWordPolicyConfigManagedWordListsConfigArray{ +// &bedrock.GuardrailWordPolicyConfigManagedWordListsConfigArgs{ +// Type: pulumi.String("PROFANITY"), +// }, +// }, +// WordsConfigs: bedrock.GuardrailWordPolicyConfigWordsConfigArray{ +// &bedrock.GuardrailWordPolicyConfigWordsConfigArgs{ +// Text: pulumi.String("HATE"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: +// +// ```sh +// $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT +// ``` +type Guardrail struct { + pulumi.CustomResourceState + + // Message to return when the guardrail blocks a prompt. + BlockedInputMessaging pulumi.StringOutput `pulumi:"blockedInputMessaging"` + // Message to return when the guardrail blocks a model response. + BlockedOutputsMessaging pulumi.StringOutput `pulumi:"blockedOutputsMessaging"` + // Content policy config for a guardrail. See Content Policy Config for more information. + ContentPolicyConfig GuardrailContentPolicyConfigPtrOutput `pulumi:"contentPolicyConfig"` + // Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + ContextualGroundingPolicyConfig GuardrailContextualGroundingPolicyConfigPtrOutput `pulumi:"contextualGroundingPolicyConfig"` + // Unix epoch timestamp in seconds for when the Guardrail was created. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Description of the guardrail or its version. + Description pulumi.StringOutput `pulumi:"description"` + // ARN of the Guardrail. + GuardrailArn pulumi.StringOutput `pulumi:"guardrailArn"` + // ID of the Guardrail. + GuardrailId pulumi.StringOutput `pulumi:"guardrailId"` + // The KMS key with which the guardrail was encrypted at rest. + KmsKeyArn pulumi.StringPtrOutput `pulumi:"kmsKeyArn"` + // Name of the guardrail. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + SensitiveInformationPolicyConfig GuardrailSensitiveInformationPolicyConfigPtrOutput `pulumi:"sensitiveInformationPolicyConfig"` + // Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + Status pulumi.StringOutput `pulumi:"status"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts GuardrailTimeoutsPtrOutput `pulumi:"timeouts"` + // Topic policy config for a guardrail. See Topic Policy Config for more information. + TopicPolicyConfig GuardrailTopicPolicyConfigPtrOutput `pulumi:"topicPolicyConfig"` + // Version of the Guardrail. + Version pulumi.StringOutput `pulumi:"version"` + // Word policy config for a guardrail. See Word Policy Config for more information. + WordPolicyConfig GuardrailWordPolicyConfigPtrOutput `pulumi:"wordPolicyConfig"` +} + +// NewGuardrail registers a new resource with the given unique name, arguments, and options. +func NewGuardrail(ctx *pulumi.Context, + name string, args *GuardrailArgs, opts ...pulumi.ResourceOption) (*Guardrail, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.BlockedInputMessaging == nil { + return nil, errors.New("invalid value for required argument 'BlockedInputMessaging'") + } + if args.BlockedOutputsMessaging == nil { + return nil, errors.New("invalid value for required argument 'BlockedOutputsMessaging'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Guardrail + err := ctx.RegisterResource("aws:bedrock/guardrail:Guardrail", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGuardrail gets an existing Guardrail 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 GetGuardrail(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GuardrailState, opts ...pulumi.ResourceOption) (*Guardrail, error) { + var resource Guardrail + err := ctx.ReadResource("aws:bedrock/guardrail:Guardrail", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Guardrail resources. +type guardrailState struct { + // Message to return when the guardrail blocks a prompt. + BlockedInputMessaging *string `pulumi:"blockedInputMessaging"` + // Message to return when the guardrail blocks a model response. + BlockedOutputsMessaging *string `pulumi:"blockedOutputsMessaging"` + // Content policy config for a guardrail. See Content Policy Config for more information. + ContentPolicyConfig *GuardrailContentPolicyConfig `pulumi:"contentPolicyConfig"` + // Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + ContextualGroundingPolicyConfig *GuardrailContextualGroundingPolicyConfig `pulumi:"contextualGroundingPolicyConfig"` + // Unix epoch timestamp in seconds for when the Guardrail was created. + CreatedAt *string `pulumi:"createdAt"` + // Description of the guardrail or its version. + Description *string `pulumi:"description"` + // ARN of the Guardrail. + GuardrailArn *string `pulumi:"guardrailArn"` + // ID of the Guardrail. + GuardrailId *string `pulumi:"guardrailId"` + // The KMS key with which the guardrail was encrypted at rest. + KmsKeyArn *string `pulumi:"kmsKeyArn"` + // Name of the guardrail. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + SensitiveInformationPolicyConfig *GuardrailSensitiveInformationPolicyConfig `pulumi:"sensitiveInformationPolicyConfig"` + // Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + Status *string `pulumi:"status"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *GuardrailTimeouts `pulumi:"timeouts"` + // Topic policy config for a guardrail. See Topic Policy Config for more information. + TopicPolicyConfig *GuardrailTopicPolicyConfig `pulumi:"topicPolicyConfig"` + // Version of the Guardrail. + Version *string `pulumi:"version"` + // Word policy config for a guardrail. See Word Policy Config for more information. + WordPolicyConfig *GuardrailWordPolicyConfig `pulumi:"wordPolicyConfig"` +} + +type GuardrailState struct { + // Message to return when the guardrail blocks a prompt. + BlockedInputMessaging pulumi.StringPtrInput + // Message to return when the guardrail blocks a model response. + BlockedOutputsMessaging pulumi.StringPtrInput + // Content policy config for a guardrail. See Content Policy Config for more information. + ContentPolicyConfig GuardrailContentPolicyConfigPtrInput + // Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + ContextualGroundingPolicyConfig GuardrailContextualGroundingPolicyConfigPtrInput + // Unix epoch timestamp in seconds for when the Guardrail was created. + CreatedAt pulumi.StringPtrInput + // Description of the guardrail or its version. + Description pulumi.StringPtrInput + // ARN of the Guardrail. + GuardrailArn pulumi.StringPtrInput + // ID of the Guardrail. + GuardrailId pulumi.StringPtrInput + // The KMS key with which the guardrail was encrypted at rest. + KmsKeyArn pulumi.StringPtrInput + // Name of the guardrail. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + SensitiveInformationPolicyConfig GuardrailSensitiveInformationPolicyConfigPtrInput + // Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + Status pulumi.StringPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + Timeouts GuardrailTimeoutsPtrInput + // Topic policy config for a guardrail. See Topic Policy Config for more information. + TopicPolicyConfig GuardrailTopicPolicyConfigPtrInput + // Version of the Guardrail. + Version pulumi.StringPtrInput + // Word policy config for a guardrail. See Word Policy Config for more information. + WordPolicyConfig GuardrailWordPolicyConfigPtrInput +} + +func (GuardrailState) ElementType() reflect.Type { + return reflect.TypeOf((*guardrailState)(nil)).Elem() +} + +type guardrailArgs struct { + // Message to return when the guardrail blocks a prompt. + BlockedInputMessaging string `pulumi:"blockedInputMessaging"` + // Message to return when the guardrail blocks a model response. + BlockedOutputsMessaging string `pulumi:"blockedOutputsMessaging"` + // Content policy config for a guardrail. See Content Policy Config for more information. + ContentPolicyConfig *GuardrailContentPolicyConfig `pulumi:"contentPolicyConfig"` + // Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + ContextualGroundingPolicyConfig *GuardrailContextualGroundingPolicyConfig `pulumi:"contextualGroundingPolicyConfig"` + // Description of the guardrail or its version. + Description *string `pulumi:"description"` + // The KMS key with which the guardrail was encrypted at rest. + KmsKeyArn *string `pulumi:"kmsKeyArn"` + // Name of the guardrail. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + SensitiveInformationPolicyConfig *GuardrailSensitiveInformationPolicyConfig `pulumi:"sensitiveInformationPolicyConfig"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + Timeouts *GuardrailTimeouts `pulumi:"timeouts"` + // Topic policy config for a guardrail. See Topic Policy Config for more information. + TopicPolicyConfig *GuardrailTopicPolicyConfig `pulumi:"topicPolicyConfig"` + // Word policy config for a guardrail. See Word Policy Config for more information. + WordPolicyConfig *GuardrailWordPolicyConfig `pulumi:"wordPolicyConfig"` +} + +// The set of arguments for constructing a Guardrail resource. +type GuardrailArgs struct { + // Message to return when the guardrail blocks a prompt. + BlockedInputMessaging pulumi.StringInput + // Message to return when the guardrail blocks a model response. + BlockedOutputsMessaging pulumi.StringInput + // Content policy config for a guardrail. See Content Policy Config for more information. + ContentPolicyConfig GuardrailContentPolicyConfigPtrInput + // Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + ContextualGroundingPolicyConfig GuardrailContextualGroundingPolicyConfigPtrInput + // Description of the guardrail or its version. + Description pulumi.StringPtrInput + // The KMS key with which the guardrail was encrypted at rest. + KmsKeyArn pulumi.StringPtrInput + // Name of the guardrail. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + SensitiveInformationPolicyConfig GuardrailSensitiveInformationPolicyConfigPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + Timeouts GuardrailTimeoutsPtrInput + // Topic policy config for a guardrail. See Topic Policy Config for more information. + TopicPolicyConfig GuardrailTopicPolicyConfigPtrInput + // Word policy config for a guardrail. See Word Policy Config for more information. + WordPolicyConfig GuardrailWordPolicyConfigPtrInput +} + +func (GuardrailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*guardrailArgs)(nil)).Elem() +} + +type GuardrailInput interface { + pulumi.Input + + ToGuardrailOutput() GuardrailOutput + ToGuardrailOutputWithContext(ctx context.Context) GuardrailOutput +} + +func (*Guardrail) ElementType() reflect.Type { + return reflect.TypeOf((**Guardrail)(nil)).Elem() +} + +func (i *Guardrail) ToGuardrailOutput() GuardrailOutput { + return i.ToGuardrailOutputWithContext(context.Background()) +} + +func (i *Guardrail) ToGuardrailOutputWithContext(ctx context.Context) GuardrailOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailOutput) +} + +// GuardrailArrayInput is an input type that accepts GuardrailArray and GuardrailArrayOutput values. +// You can construct a concrete instance of `GuardrailArrayInput` via: +// +// GuardrailArray{ GuardrailArgs{...} } +type GuardrailArrayInput interface { + pulumi.Input + + ToGuardrailArrayOutput() GuardrailArrayOutput + ToGuardrailArrayOutputWithContext(context.Context) GuardrailArrayOutput +} + +type GuardrailArray []GuardrailInput + +func (GuardrailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Guardrail)(nil)).Elem() +} + +func (i GuardrailArray) ToGuardrailArrayOutput() GuardrailArrayOutput { + return i.ToGuardrailArrayOutputWithContext(context.Background()) +} + +func (i GuardrailArray) ToGuardrailArrayOutputWithContext(ctx context.Context) GuardrailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailArrayOutput) +} + +// GuardrailMapInput is an input type that accepts GuardrailMap and GuardrailMapOutput values. +// You can construct a concrete instance of `GuardrailMapInput` via: +// +// GuardrailMap{ "key": GuardrailArgs{...} } +type GuardrailMapInput interface { + pulumi.Input + + ToGuardrailMapOutput() GuardrailMapOutput + ToGuardrailMapOutputWithContext(context.Context) GuardrailMapOutput +} + +type GuardrailMap map[string]GuardrailInput + +func (GuardrailMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Guardrail)(nil)).Elem() +} + +func (i GuardrailMap) ToGuardrailMapOutput() GuardrailMapOutput { + return i.ToGuardrailMapOutputWithContext(context.Background()) +} + +func (i GuardrailMap) ToGuardrailMapOutputWithContext(ctx context.Context) GuardrailMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailMapOutput) +} + +type GuardrailOutput struct{ *pulumi.OutputState } + +func (GuardrailOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Guardrail)(nil)).Elem() +} + +func (o GuardrailOutput) ToGuardrailOutput() GuardrailOutput { + return o +} + +func (o GuardrailOutput) ToGuardrailOutputWithContext(ctx context.Context) GuardrailOutput { + return o +} + +// Message to return when the guardrail blocks a prompt. +func (o GuardrailOutput) BlockedInputMessaging() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.BlockedInputMessaging }).(pulumi.StringOutput) +} + +// Message to return when the guardrail blocks a model response. +func (o GuardrailOutput) BlockedOutputsMessaging() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.BlockedOutputsMessaging }).(pulumi.StringOutput) +} + +// Content policy config for a guardrail. See Content Policy Config for more information. +func (o GuardrailOutput) ContentPolicyConfig() GuardrailContentPolicyConfigPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailContentPolicyConfigPtrOutput { return v.ContentPolicyConfig }).(GuardrailContentPolicyConfigPtrOutput) +} + +// Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. +func (o GuardrailOutput) ContextualGroundingPolicyConfig() GuardrailContextualGroundingPolicyConfigPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailContextualGroundingPolicyConfigPtrOutput { + return v.ContextualGroundingPolicyConfig + }).(GuardrailContextualGroundingPolicyConfigPtrOutput) +} + +// Unix epoch timestamp in seconds for when the Guardrail was created. +func (o GuardrailOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Description of the guardrail or its version. +func (o GuardrailOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// ARN of the Guardrail. +func (o GuardrailOutput) GuardrailArn() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.GuardrailArn }).(pulumi.StringOutput) +} + +// ID of the Guardrail. +func (o GuardrailOutput) GuardrailId() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.GuardrailId }).(pulumi.StringOutput) +} + +// The KMS key with which the guardrail was encrypted at rest. +func (o GuardrailOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringPtrOutput { return v.KmsKeyArn }).(pulumi.StringPtrOutput) +} + +// Name of the guardrail. +// +// The following arguments are optional: +func (o GuardrailOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. +func (o GuardrailOutput) SensitiveInformationPolicyConfig() GuardrailSensitiveInformationPolicyConfigPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailSensitiveInformationPolicyConfigPtrOutput { + return v.SensitiveInformationPolicyConfig + }).(GuardrailSensitiveInformationPolicyConfigPtrOutput) +} + +// Status of the Bedrock Guardrail. One of `READY`, `FAILED`. +func (o GuardrailOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o GuardrailOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Deprecated: Please use `tags` instead. +func (o GuardrailOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o GuardrailOutput) Timeouts() GuardrailTimeoutsPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailTimeoutsPtrOutput { return v.Timeouts }).(GuardrailTimeoutsPtrOutput) +} + +// Topic policy config for a guardrail. See Topic Policy Config for more information. +func (o GuardrailOutput) TopicPolicyConfig() GuardrailTopicPolicyConfigPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailTopicPolicyConfigPtrOutput { return v.TopicPolicyConfig }).(GuardrailTopicPolicyConfigPtrOutput) +} + +// Version of the Guardrail. +func (o GuardrailOutput) Version() pulumi.StringOutput { + return o.ApplyT(func(v *Guardrail) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput) +} + +// Word policy config for a guardrail. See Word Policy Config for more information. +func (o GuardrailOutput) WordPolicyConfig() GuardrailWordPolicyConfigPtrOutput { + return o.ApplyT(func(v *Guardrail) GuardrailWordPolicyConfigPtrOutput { return v.WordPolicyConfig }).(GuardrailWordPolicyConfigPtrOutput) +} + +type GuardrailArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Guardrail)(nil)).Elem() +} + +func (o GuardrailArrayOutput) ToGuardrailArrayOutput() GuardrailArrayOutput { + return o +} + +func (o GuardrailArrayOutput) ToGuardrailArrayOutputWithContext(ctx context.Context) GuardrailArrayOutput { + return o +} + +func (o GuardrailArrayOutput) Index(i pulumi.IntInput) GuardrailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Guardrail { + return vs[0].([]*Guardrail)[vs[1].(int)] + }).(GuardrailOutput) +} + +type GuardrailMapOutput struct{ *pulumi.OutputState } + +func (GuardrailMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Guardrail)(nil)).Elem() +} + +func (o GuardrailMapOutput) ToGuardrailMapOutput() GuardrailMapOutput { + return o +} + +func (o GuardrailMapOutput) ToGuardrailMapOutputWithContext(ctx context.Context) GuardrailMapOutput { + return o +} + +func (o GuardrailMapOutput) MapIndex(k pulumi.StringInput) GuardrailOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Guardrail { + return vs[0].(map[string]*Guardrail)[vs[1].(string)] + }).(GuardrailOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailInput)(nil)).Elem(), &Guardrail{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailArrayInput)(nil)).Elem(), GuardrailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailMapInput)(nil)).Elem(), GuardrailMap{}) + pulumi.RegisterOutputType(GuardrailOutput{}) + pulumi.RegisterOutputType(GuardrailArrayOutput{}) + pulumi.RegisterOutputType(GuardrailMapOutput{}) +} diff --git a/sdk/go/aws/bedrock/init.go b/sdk/go/aws/bedrock/init.go index 7bb7df2db0d..0fb69345feb 100644 --- a/sdk/go/aws/bedrock/init.go +++ b/sdk/go/aws/bedrock/init.go @@ -35,6 +35,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AgentKnowledgeBase{} case "aws:bedrock/customModel:CustomModel": r = &CustomModel{} + case "aws:bedrock/guardrail:Guardrail": + r = &Guardrail{} case "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": r = &ProvisionedModelThroughput{} default: @@ -85,6 +87,11 @@ func init() { "bedrock/customModel", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "bedrock/guardrail", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "bedrock/provisionedModelThroughput", diff --git a/sdk/go/aws/bedrock/pulumiTypes.go b/sdk/go/aws/bedrock/pulumiTypes.go index 72e478bcc01..57e81adc387 100644 --- a/sdk/go/aws/bedrock/pulumiTypes.go +++ b/sdk/go/aws/bedrock/pulumiTypes.go @@ -1319,6 +1319,162 @@ func (o AgentAgentAliasTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type AgentAgentKnowledgeBaseAssociationTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// AgentAgentKnowledgeBaseAssociationTimeoutsInput is an input type that accepts AgentAgentKnowledgeBaseAssociationTimeoutsArgs and AgentAgentKnowledgeBaseAssociationTimeoutsOutput values. +// You can construct a concrete instance of `AgentAgentKnowledgeBaseAssociationTimeoutsInput` via: +// +// AgentAgentKnowledgeBaseAssociationTimeoutsArgs{...} +type AgentAgentKnowledgeBaseAssociationTimeoutsInput interface { + pulumi.Input + + ToAgentAgentKnowledgeBaseAssociationTimeoutsOutput() AgentAgentKnowledgeBaseAssociationTimeoutsOutput + ToAgentAgentKnowledgeBaseAssociationTimeoutsOutputWithContext(context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsOutput +} + +type AgentAgentKnowledgeBaseAssociationTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (AgentAgentKnowledgeBaseAssociationTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentKnowledgeBaseAssociationTimeouts)(nil)).Elem() +} + +func (i AgentAgentKnowledgeBaseAssociationTimeoutsArgs) ToAgentAgentKnowledgeBaseAssociationTimeoutsOutput() AgentAgentKnowledgeBaseAssociationTimeoutsOutput { + return i.ToAgentAgentKnowledgeBaseAssociationTimeoutsOutputWithContext(context.Background()) +} + +func (i AgentAgentKnowledgeBaseAssociationTimeoutsArgs) ToAgentAgentKnowledgeBaseAssociationTimeoutsOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentKnowledgeBaseAssociationTimeoutsOutput) +} + +func (i AgentAgentKnowledgeBaseAssociationTimeoutsArgs) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return i.ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i AgentAgentKnowledgeBaseAssociationTimeoutsArgs) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentKnowledgeBaseAssociationTimeoutsOutput).ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(ctx) +} + +// AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput is an input type that accepts AgentAgentKnowledgeBaseAssociationTimeoutsArgs, AgentAgentKnowledgeBaseAssociationTimeoutsPtr and AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput values. +// You can construct a concrete instance of `AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput` via: +// +// AgentAgentKnowledgeBaseAssociationTimeoutsArgs{...} +// +// or: +// +// nil +type AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput interface { + pulumi.Input + + ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput + ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput +} + +type agentAgentKnowledgeBaseAssociationTimeoutsPtrType AgentAgentKnowledgeBaseAssociationTimeoutsArgs + +func AgentAgentKnowledgeBaseAssociationTimeoutsPtr(v *AgentAgentKnowledgeBaseAssociationTimeoutsArgs) AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput { + return (*agentAgentKnowledgeBaseAssociationTimeoutsPtrType)(v) +} + +func (*agentAgentKnowledgeBaseAssociationTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentKnowledgeBaseAssociationTimeouts)(nil)).Elem() +} + +func (i *agentAgentKnowledgeBaseAssociationTimeoutsPtrType) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return i.ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *agentAgentKnowledgeBaseAssociationTimeoutsPtrType) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) +} + +type AgentAgentKnowledgeBaseAssociationTimeoutsOutput struct{ *pulumi.OutputState } + +func (AgentAgentKnowledgeBaseAssociationTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAgentKnowledgeBaseAssociationTimeouts)(nil)).Elem() +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsOutput() AgentAgentKnowledgeBaseAssociationTimeoutsOutput { + return o +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsOutput { + return o +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return o.ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentAgentKnowledgeBaseAssociationTimeouts) *AgentAgentKnowledgeBaseAssociationTimeouts { + return &v + }).(AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentKnowledgeBaseAssociationTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o AgentAgentKnowledgeBaseAssociationTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAgentKnowledgeBaseAssociationTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAgentKnowledgeBaseAssociationTimeouts)(nil)).Elem() +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput() AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return o +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) ToAgentAgentKnowledgeBaseAssociationTimeoutsPtrOutputWithContext(ctx context.Context) AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput { + return o +} + +func (o AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) Elem() AgentAgentKnowledgeBaseAssociationTimeoutsOutput { + return o.ApplyT(func(v *AgentAgentKnowledgeBaseAssociationTimeouts) AgentAgentKnowledgeBaseAssociationTimeouts { + if v != nil { + return *v + } + var ret AgentAgentKnowledgeBaseAssociationTimeouts + return ret + }).(AgentAgentKnowledgeBaseAssociationTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAgentKnowledgeBaseAssociationTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAgentKnowledgeBaseAssociationTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type AgentAgentPromptOverrideConfiguration struct { // ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `promptConfigurations` block must contain a `parserMode` value that is set to `OVERRIDDEN`. OverrideLambda string `pulumi:"overrideLambda"` @@ -6201,141 +6357,2081 @@ func (o CustomModelVpcConfigPtrOutput) SubnetIds() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -type ProvisionedModelThroughputTimeouts struct { - // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). - Create *string `pulumi:"create"` +type GuardrailContentPolicyConfig struct { + // List of content filter configs in content policy. See Filters Config for more information. + FiltersConfigs []GuardrailContentPolicyConfigFiltersConfig `pulumi:"filtersConfigs"` } -// ProvisionedModelThroughputTimeoutsInput is an input type that accepts ProvisionedModelThroughputTimeoutsArgs and ProvisionedModelThroughputTimeoutsOutput values. -// You can construct a concrete instance of `ProvisionedModelThroughputTimeoutsInput` via: +// GuardrailContentPolicyConfigInput is an input type that accepts GuardrailContentPolicyConfigArgs and GuardrailContentPolicyConfigOutput values. +// You can construct a concrete instance of `GuardrailContentPolicyConfigInput` via: // -// ProvisionedModelThroughputTimeoutsArgs{...} -type ProvisionedModelThroughputTimeoutsInput interface { +// GuardrailContentPolicyConfigArgs{...} +type GuardrailContentPolicyConfigInput interface { pulumi.Input - ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput - ToProvisionedModelThroughputTimeoutsOutputWithContext(context.Context) ProvisionedModelThroughputTimeoutsOutput + ToGuardrailContentPolicyConfigOutput() GuardrailContentPolicyConfigOutput + ToGuardrailContentPolicyConfigOutputWithContext(context.Context) GuardrailContentPolicyConfigOutput } -type ProvisionedModelThroughputTimeoutsArgs struct { - // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). - Create pulumi.StringPtrInput `pulumi:"create"` +type GuardrailContentPolicyConfigArgs struct { + // List of content filter configs in content policy. See Filters Config for more information. + FiltersConfigs GuardrailContentPolicyConfigFiltersConfigArrayInput `pulumi:"filtersConfigs"` } -func (ProvisionedModelThroughputTimeoutsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ProvisionedModelThroughputTimeouts)(nil)).Elem() +func (GuardrailContentPolicyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContentPolicyConfig)(nil)).Elem() } -func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput { - return i.ToProvisionedModelThroughputTimeoutsOutputWithContext(context.Background()) +func (i GuardrailContentPolicyConfigArgs) ToGuardrailContentPolicyConfigOutput() GuardrailContentPolicyConfigOutput { + return i.ToGuardrailContentPolicyConfigOutputWithContext(context.Background()) } -func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsOutput) +func (i GuardrailContentPolicyConfigArgs) ToGuardrailContentPolicyConfigOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContentPolicyConfigOutput) } -func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { - return i.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +func (i GuardrailContentPolicyConfigArgs) ToGuardrailContentPolicyConfigPtrOutput() GuardrailContentPolicyConfigPtrOutput { + return i.ToGuardrailContentPolicyConfigPtrOutputWithContext(context.Background()) } -func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsOutput).ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx) +func (i GuardrailContentPolicyConfigArgs) ToGuardrailContentPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContentPolicyConfigOutput).ToGuardrailContentPolicyConfigPtrOutputWithContext(ctx) } -// ProvisionedModelThroughputTimeoutsPtrInput is an input type that accepts ProvisionedModelThroughputTimeoutsArgs, ProvisionedModelThroughputTimeoutsPtr and ProvisionedModelThroughputTimeoutsPtrOutput values. -// You can construct a concrete instance of `ProvisionedModelThroughputTimeoutsPtrInput` via: +// GuardrailContentPolicyConfigPtrInput is an input type that accepts GuardrailContentPolicyConfigArgs, GuardrailContentPolicyConfigPtr and GuardrailContentPolicyConfigPtrOutput values. +// You can construct a concrete instance of `GuardrailContentPolicyConfigPtrInput` via: // -// ProvisionedModelThroughputTimeoutsArgs{...} +// GuardrailContentPolicyConfigArgs{...} // // or: // // nil -type ProvisionedModelThroughputTimeoutsPtrInput interface { +type GuardrailContentPolicyConfigPtrInput interface { pulumi.Input - ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput - ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Context) ProvisionedModelThroughputTimeoutsPtrOutput + ToGuardrailContentPolicyConfigPtrOutput() GuardrailContentPolicyConfigPtrOutput + ToGuardrailContentPolicyConfigPtrOutputWithContext(context.Context) GuardrailContentPolicyConfigPtrOutput } -type provisionedModelThroughputTimeoutsPtrType ProvisionedModelThroughputTimeoutsArgs +type guardrailContentPolicyConfigPtrType GuardrailContentPolicyConfigArgs -func ProvisionedModelThroughputTimeoutsPtr(v *ProvisionedModelThroughputTimeoutsArgs) ProvisionedModelThroughputTimeoutsPtrInput { - return (*provisionedModelThroughputTimeoutsPtrType)(v) +func GuardrailContentPolicyConfigPtr(v *GuardrailContentPolicyConfigArgs) GuardrailContentPolicyConfigPtrInput { + return (*guardrailContentPolicyConfigPtrType)(v) } -func (*provisionedModelThroughputTimeoutsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ProvisionedModelThroughputTimeouts)(nil)).Elem() +func (*guardrailContentPolicyConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailContentPolicyConfig)(nil)).Elem() } -func (i *provisionedModelThroughputTimeoutsPtrType) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { - return i.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +func (i *guardrailContentPolicyConfigPtrType) ToGuardrailContentPolicyConfigPtrOutput() GuardrailContentPolicyConfigPtrOutput { + return i.ToGuardrailContentPolicyConfigPtrOutputWithContext(context.Background()) } -func (i *provisionedModelThroughputTimeoutsPtrType) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsPtrOutput) +func (i *guardrailContentPolicyConfigPtrType) ToGuardrailContentPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContentPolicyConfigPtrOutput) } -type ProvisionedModelThroughputTimeoutsOutput struct{ *pulumi.OutputState } +type GuardrailContentPolicyConfigOutput struct{ *pulumi.OutputState } -func (ProvisionedModelThroughputTimeoutsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProvisionedModelThroughputTimeouts)(nil)).Elem() +func (GuardrailContentPolicyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContentPolicyConfig)(nil)).Elem() } -func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput { +func (o GuardrailContentPolicyConfigOutput) ToGuardrailContentPolicyConfigOutput() GuardrailContentPolicyConfigOutput { return o } -func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsOutput { +func (o GuardrailContentPolicyConfigOutput) ToGuardrailContentPolicyConfigOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigOutput { return o } -func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { - return o.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +func (o GuardrailContentPolicyConfigOutput) ToGuardrailContentPolicyConfigPtrOutput() GuardrailContentPolicyConfigPtrOutput { + return o.ToGuardrailContentPolicyConfigPtrOutputWithContext(context.Background()) } -func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ProvisionedModelThroughputTimeouts) *ProvisionedModelThroughputTimeouts { +func (o GuardrailContentPolicyConfigOutput) ToGuardrailContentPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailContentPolicyConfig) *GuardrailContentPolicyConfig { return &v - }).(ProvisionedModelThroughputTimeoutsPtrOutput) + }).(GuardrailContentPolicyConfigPtrOutput) } -// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). -func (o ProvisionedModelThroughputTimeoutsOutput) Create() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProvisionedModelThroughputTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +// List of content filter configs in content policy. See Filters Config for more information. +func (o GuardrailContentPolicyConfigOutput) FiltersConfigs() GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return o.ApplyT(func(v GuardrailContentPolicyConfig) []GuardrailContentPolicyConfigFiltersConfig { + return v.FiltersConfigs + }).(GuardrailContentPolicyConfigFiltersConfigArrayOutput) } -type ProvisionedModelThroughputTimeoutsPtrOutput struct{ *pulumi.OutputState } +type GuardrailContentPolicyConfigPtrOutput struct{ *pulumi.OutputState } -func (ProvisionedModelThroughputTimeoutsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ProvisionedModelThroughputTimeouts)(nil)).Elem() +func (GuardrailContentPolicyConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailContentPolicyConfig)(nil)).Elem() } -func (o ProvisionedModelThroughputTimeoutsPtrOutput) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { +func (o GuardrailContentPolicyConfigPtrOutput) ToGuardrailContentPolicyConfigPtrOutput() GuardrailContentPolicyConfigPtrOutput { return o } -func (o ProvisionedModelThroughputTimeoutsPtrOutput) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { +func (o GuardrailContentPolicyConfigPtrOutput) ToGuardrailContentPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigPtrOutput { return o } -func (o ProvisionedModelThroughputTimeoutsPtrOutput) Elem() ProvisionedModelThroughputTimeoutsOutput { - return o.ApplyT(func(v *ProvisionedModelThroughputTimeouts) ProvisionedModelThroughputTimeouts { +func (o GuardrailContentPolicyConfigPtrOutput) Elem() GuardrailContentPolicyConfigOutput { + return o.ApplyT(func(v *GuardrailContentPolicyConfig) GuardrailContentPolicyConfig { if v != nil { return *v } - var ret ProvisionedModelThroughputTimeouts + var ret GuardrailContentPolicyConfig return ret - }).(ProvisionedModelThroughputTimeoutsOutput) + }).(GuardrailContentPolicyConfigOutput) } -// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). -func (o ProvisionedModelThroughputTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ProvisionedModelThroughputTimeouts) *string { +// List of content filter configs in content policy. See Filters Config for more information. +func (o GuardrailContentPolicyConfigPtrOutput) FiltersConfigs() GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return o.ApplyT(func(v *GuardrailContentPolicyConfig) []GuardrailContentPolicyConfigFiltersConfig { if v == nil { return nil } - return v.Create - }).(pulumi.StringPtrOutput) + return v.FiltersConfigs + }).(GuardrailContentPolicyConfigFiltersConfigArrayOutput) +} + +type GuardrailContentPolicyConfigFiltersConfig struct { + // Strength for filters. + InputStrength string `pulumi:"inputStrength"` + // Strength for filters. + OutputStrength string `pulumi:"outputStrength"` + // Type of contextual grounding filter. + Type string `pulumi:"type"` +} + +// GuardrailContentPolicyConfigFiltersConfigInput is an input type that accepts GuardrailContentPolicyConfigFiltersConfigArgs and GuardrailContentPolicyConfigFiltersConfigOutput values. +// You can construct a concrete instance of `GuardrailContentPolicyConfigFiltersConfigInput` via: +// +// GuardrailContentPolicyConfigFiltersConfigArgs{...} +type GuardrailContentPolicyConfigFiltersConfigInput interface { + pulumi.Input + + ToGuardrailContentPolicyConfigFiltersConfigOutput() GuardrailContentPolicyConfigFiltersConfigOutput + ToGuardrailContentPolicyConfigFiltersConfigOutputWithContext(context.Context) GuardrailContentPolicyConfigFiltersConfigOutput +} + +type GuardrailContentPolicyConfigFiltersConfigArgs struct { + // Strength for filters. + InputStrength pulumi.StringInput `pulumi:"inputStrength"` + // Strength for filters. + OutputStrength pulumi.StringInput `pulumi:"outputStrength"` + // Type of contextual grounding filter. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuardrailContentPolicyConfigFiltersConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContentPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (i GuardrailContentPolicyConfigFiltersConfigArgs) ToGuardrailContentPolicyConfigFiltersConfigOutput() GuardrailContentPolicyConfigFiltersConfigOutput { + return i.ToGuardrailContentPolicyConfigFiltersConfigOutputWithContext(context.Background()) +} + +func (i GuardrailContentPolicyConfigFiltersConfigArgs) ToGuardrailContentPolicyConfigFiltersConfigOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigFiltersConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContentPolicyConfigFiltersConfigOutput) +} + +// GuardrailContentPolicyConfigFiltersConfigArrayInput is an input type that accepts GuardrailContentPolicyConfigFiltersConfigArray and GuardrailContentPolicyConfigFiltersConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailContentPolicyConfigFiltersConfigArrayInput` via: +// +// GuardrailContentPolicyConfigFiltersConfigArray{ GuardrailContentPolicyConfigFiltersConfigArgs{...} } +type GuardrailContentPolicyConfigFiltersConfigArrayInput interface { + pulumi.Input + + ToGuardrailContentPolicyConfigFiltersConfigArrayOutput() GuardrailContentPolicyConfigFiltersConfigArrayOutput + ToGuardrailContentPolicyConfigFiltersConfigArrayOutputWithContext(context.Context) GuardrailContentPolicyConfigFiltersConfigArrayOutput +} + +type GuardrailContentPolicyConfigFiltersConfigArray []GuardrailContentPolicyConfigFiltersConfigInput + +func (GuardrailContentPolicyConfigFiltersConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailContentPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (i GuardrailContentPolicyConfigFiltersConfigArray) ToGuardrailContentPolicyConfigFiltersConfigArrayOutput() GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return i.ToGuardrailContentPolicyConfigFiltersConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailContentPolicyConfigFiltersConfigArray) ToGuardrailContentPolicyConfigFiltersConfigArrayOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContentPolicyConfigFiltersConfigArrayOutput) +} + +type GuardrailContentPolicyConfigFiltersConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailContentPolicyConfigFiltersConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContentPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (o GuardrailContentPolicyConfigFiltersConfigOutput) ToGuardrailContentPolicyConfigFiltersConfigOutput() GuardrailContentPolicyConfigFiltersConfigOutput { + return o +} + +func (o GuardrailContentPolicyConfigFiltersConfigOutput) ToGuardrailContentPolicyConfigFiltersConfigOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigFiltersConfigOutput { + return o +} + +// Strength for filters. +func (o GuardrailContentPolicyConfigFiltersConfigOutput) InputStrength() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailContentPolicyConfigFiltersConfig) string { return v.InputStrength }).(pulumi.StringOutput) +} + +// Strength for filters. +func (o GuardrailContentPolicyConfigFiltersConfigOutput) OutputStrength() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailContentPolicyConfigFiltersConfig) string { return v.OutputStrength }).(pulumi.StringOutput) +} + +// Type of contextual grounding filter. +func (o GuardrailContentPolicyConfigFiltersConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailContentPolicyConfigFiltersConfig) string { return v.Type }).(pulumi.StringOutput) +} + +type GuardrailContentPolicyConfigFiltersConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailContentPolicyConfigFiltersConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailContentPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (o GuardrailContentPolicyConfigFiltersConfigArrayOutput) ToGuardrailContentPolicyConfigFiltersConfigArrayOutput() GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return o +} + +func (o GuardrailContentPolicyConfigFiltersConfigArrayOutput) ToGuardrailContentPolicyConfigFiltersConfigArrayOutputWithContext(ctx context.Context) GuardrailContentPolicyConfigFiltersConfigArrayOutput { + return o +} + +func (o GuardrailContentPolicyConfigFiltersConfigArrayOutput) Index(i pulumi.IntInput) GuardrailContentPolicyConfigFiltersConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailContentPolicyConfigFiltersConfig { + return vs[0].([]GuardrailContentPolicyConfigFiltersConfig)[vs[1].(int)] + }).(GuardrailContentPolicyConfigFiltersConfigOutput) +} + +type GuardrailContextualGroundingPolicyConfig struct { + // List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + FiltersConfigs []GuardrailContextualGroundingPolicyConfigFiltersConfig `pulumi:"filtersConfigs"` +} + +// GuardrailContextualGroundingPolicyConfigInput is an input type that accepts GuardrailContextualGroundingPolicyConfigArgs and GuardrailContextualGroundingPolicyConfigOutput values. +// You can construct a concrete instance of `GuardrailContextualGroundingPolicyConfigInput` via: +// +// GuardrailContextualGroundingPolicyConfigArgs{...} +type GuardrailContextualGroundingPolicyConfigInput interface { + pulumi.Input + + ToGuardrailContextualGroundingPolicyConfigOutput() GuardrailContextualGroundingPolicyConfigOutput + ToGuardrailContextualGroundingPolicyConfigOutputWithContext(context.Context) GuardrailContextualGroundingPolicyConfigOutput +} + +type GuardrailContextualGroundingPolicyConfigArgs struct { + // List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + FiltersConfigs GuardrailContextualGroundingPolicyConfigFiltersConfigArrayInput `pulumi:"filtersConfigs"` +} + +func (GuardrailContextualGroundingPolicyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContextualGroundingPolicyConfig)(nil)).Elem() +} + +func (i GuardrailContextualGroundingPolicyConfigArgs) ToGuardrailContextualGroundingPolicyConfigOutput() GuardrailContextualGroundingPolicyConfigOutput { + return i.ToGuardrailContextualGroundingPolicyConfigOutputWithContext(context.Background()) +} + +func (i GuardrailContextualGroundingPolicyConfigArgs) ToGuardrailContextualGroundingPolicyConfigOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContextualGroundingPolicyConfigOutput) +} + +func (i GuardrailContextualGroundingPolicyConfigArgs) ToGuardrailContextualGroundingPolicyConfigPtrOutput() GuardrailContextualGroundingPolicyConfigPtrOutput { + return i.ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i GuardrailContextualGroundingPolicyConfigArgs) ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContextualGroundingPolicyConfigOutput).ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(ctx) +} + +// GuardrailContextualGroundingPolicyConfigPtrInput is an input type that accepts GuardrailContextualGroundingPolicyConfigArgs, GuardrailContextualGroundingPolicyConfigPtr and GuardrailContextualGroundingPolicyConfigPtrOutput values. +// You can construct a concrete instance of `GuardrailContextualGroundingPolicyConfigPtrInput` via: +// +// GuardrailContextualGroundingPolicyConfigArgs{...} +// +// or: +// +// nil +type GuardrailContextualGroundingPolicyConfigPtrInput interface { + pulumi.Input + + ToGuardrailContextualGroundingPolicyConfigPtrOutput() GuardrailContextualGroundingPolicyConfigPtrOutput + ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(context.Context) GuardrailContextualGroundingPolicyConfigPtrOutput +} + +type guardrailContextualGroundingPolicyConfigPtrType GuardrailContextualGroundingPolicyConfigArgs + +func GuardrailContextualGroundingPolicyConfigPtr(v *GuardrailContextualGroundingPolicyConfigArgs) GuardrailContextualGroundingPolicyConfigPtrInput { + return (*guardrailContextualGroundingPolicyConfigPtrType)(v) +} + +func (*guardrailContextualGroundingPolicyConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailContextualGroundingPolicyConfig)(nil)).Elem() +} + +func (i *guardrailContextualGroundingPolicyConfigPtrType) ToGuardrailContextualGroundingPolicyConfigPtrOutput() GuardrailContextualGroundingPolicyConfigPtrOutput { + return i.ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i *guardrailContextualGroundingPolicyConfigPtrType) ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContextualGroundingPolicyConfigPtrOutput) +} + +type GuardrailContextualGroundingPolicyConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailContextualGroundingPolicyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContextualGroundingPolicyConfig)(nil)).Elem() +} + +func (o GuardrailContextualGroundingPolicyConfigOutput) ToGuardrailContextualGroundingPolicyConfigOutput() GuardrailContextualGroundingPolicyConfigOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigOutput) ToGuardrailContextualGroundingPolicyConfigOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigOutput) ToGuardrailContextualGroundingPolicyConfigPtrOutput() GuardrailContextualGroundingPolicyConfigPtrOutput { + return o.ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (o GuardrailContextualGroundingPolicyConfigOutput) ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailContextualGroundingPolicyConfig) *GuardrailContextualGroundingPolicyConfig { + return &v + }).(GuardrailContextualGroundingPolicyConfigPtrOutput) +} + +// List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. +func (o GuardrailContextualGroundingPolicyConfigOutput) FiltersConfigs() GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return o.ApplyT(func(v GuardrailContextualGroundingPolicyConfig) []GuardrailContextualGroundingPolicyConfigFiltersConfig { + return v.FiltersConfigs + }).(GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) +} + +type GuardrailContextualGroundingPolicyConfigPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailContextualGroundingPolicyConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailContextualGroundingPolicyConfig)(nil)).Elem() +} + +func (o GuardrailContextualGroundingPolicyConfigPtrOutput) ToGuardrailContextualGroundingPolicyConfigPtrOutput() GuardrailContextualGroundingPolicyConfigPtrOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigPtrOutput) ToGuardrailContextualGroundingPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigPtrOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigPtrOutput) Elem() GuardrailContextualGroundingPolicyConfigOutput { + return o.ApplyT(func(v *GuardrailContextualGroundingPolicyConfig) GuardrailContextualGroundingPolicyConfig { + if v != nil { + return *v + } + var ret GuardrailContextualGroundingPolicyConfig + return ret + }).(GuardrailContextualGroundingPolicyConfigOutput) +} + +// List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. +func (o GuardrailContextualGroundingPolicyConfigPtrOutput) FiltersConfigs() GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return o.ApplyT(func(v *GuardrailContextualGroundingPolicyConfig) []GuardrailContextualGroundingPolicyConfigFiltersConfig { + if v == nil { + return nil + } + return v.FiltersConfigs + }).(GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) +} + +type GuardrailContextualGroundingPolicyConfigFiltersConfig struct { + // The threshold for this filter. + Threshold float64 `pulumi:"threshold"` + // Type of contextual grounding filter. + Type string `pulumi:"type"` +} + +// GuardrailContextualGroundingPolicyConfigFiltersConfigInput is an input type that accepts GuardrailContextualGroundingPolicyConfigFiltersConfigArgs and GuardrailContextualGroundingPolicyConfigFiltersConfigOutput values. +// You can construct a concrete instance of `GuardrailContextualGroundingPolicyConfigFiltersConfigInput` via: +// +// GuardrailContextualGroundingPolicyConfigFiltersConfigArgs{...} +type GuardrailContextualGroundingPolicyConfigFiltersConfigInput interface { + pulumi.Input + + ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigOutput + ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutputWithContext(context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigOutput +} + +type GuardrailContextualGroundingPolicyConfigFiltersConfigArgs struct { + // The threshold for this filter. + Threshold pulumi.Float64Input `pulumi:"threshold"` + // Type of contextual grounding filter. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuardrailContextualGroundingPolicyConfigFiltersConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (i GuardrailContextualGroundingPolicyConfigFiltersConfigArgs) ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigOutput { + return i.ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutputWithContext(context.Background()) +} + +func (i GuardrailContextualGroundingPolicyConfigFiltersConfigArgs) ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) +} + +// GuardrailContextualGroundingPolicyConfigFiltersConfigArrayInput is an input type that accepts GuardrailContextualGroundingPolicyConfigFiltersConfigArray and GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailContextualGroundingPolicyConfigFiltersConfigArrayInput` via: +// +// GuardrailContextualGroundingPolicyConfigFiltersConfigArray{ GuardrailContextualGroundingPolicyConfigFiltersConfigArgs{...} } +type GuardrailContextualGroundingPolicyConfigFiltersConfigArrayInput interface { + pulumi.Input + + ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput + ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutputWithContext(context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput +} + +type GuardrailContextualGroundingPolicyConfigFiltersConfigArray []GuardrailContextualGroundingPolicyConfigFiltersConfigInput + +func (GuardrailContextualGroundingPolicyConfigFiltersConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailContextualGroundingPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (i GuardrailContextualGroundingPolicyConfigFiltersConfigArray) ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return i.ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailContextualGroundingPolicyConfigFiltersConfigArray) ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) +} + +type GuardrailContextualGroundingPolicyConfigFiltersConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) ToGuardrailContextualGroundingPolicyConfigFiltersConfigOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigOutput { + return o +} + +// The threshold for this filter. +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) Threshold() pulumi.Float64Output { + return o.ApplyT(func(v GuardrailContextualGroundingPolicyConfigFiltersConfig) float64 { return v.Threshold }).(pulumi.Float64Output) +} + +// Type of contextual grounding filter. +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailContextualGroundingPolicyConfigFiltersConfig) string { return v.Type }).(pulumi.StringOutput) +} + +type GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailContextualGroundingPolicyConfigFiltersConfig)(nil)).Elem() +} + +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput() GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) ToGuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutputWithContext(ctx context.Context) GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput { + return o +} + +func (o GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput) Index(i pulumi.IntInput) GuardrailContextualGroundingPolicyConfigFiltersConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailContextualGroundingPolicyConfigFiltersConfig { + return vs[0].([]GuardrailContextualGroundingPolicyConfigFiltersConfig)[vs[1].(int)] + }).(GuardrailContextualGroundingPolicyConfigFiltersConfigOutput) +} + +type GuardrailSensitiveInformationPolicyConfig struct { + // List of entities. See PII Entities Config for more information. + PiiEntitiesConfigs []GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig `pulumi:"piiEntitiesConfigs"` + // List of regex. See Regexes Config for more information. + RegexesConfigs []GuardrailSensitiveInformationPolicyConfigRegexesConfig `pulumi:"regexesConfigs"` +} + +// GuardrailSensitiveInformationPolicyConfigInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigArgs and GuardrailSensitiveInformationPolicyConfigOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigInput` via: +// +// GuardrailSensitiveInformationPolicyConfigArgs{...} +type GuardrailSensitiveInformationPolicyConfigInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigOutput() GuardrailSensitiveInformationPolicyConfigOutput + ToGuardrailSensitiveInformationPolicyConfigOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigOutput +} + +type GuardrailSensitiveInformationPolicyConfigArgs struct { + // List of entities. See PII Entities Config for more information. + PiiEntitiesConfigs GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayInput `pulumi:"piiEntitiesConfigs"` + // List of regex. See Regexes Config for more information. + RegexesConfigs GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayInput `pulumi:"regexesConfigs"` +} + +func (GuardrailSensitiveInformationPolicyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfig)(nil)).Elem() +} + +func (i GuardrailSensitiveInformationPolicyConfigArgs) ToGuardrailSensitiveInformationPolicyConfigOutput() GuardrailSensitiveInformationPolicyConfigOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigArgs) ToGuardrailSensitiveInformationPolicyConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigOutput) +} + +func (i GuardrailSensitiveInformationPolicyConfigArgs) ToGuardrailSensitiveInformationPolicyConfigPtrOutput() GuardrailSensitiveInformationPolicyConfigPtrOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigArgs) ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigOutput).ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(ctx) +} + +// GuardrailSensitiveInformationPolicyConfigPtrInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigArgs, GuardrailSensitiveInformationPolicyConfigPtr and GuardrailSensitiveInformationPolicyConfigPtrOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigPtrInput` via: +// +// GuardrailSensitiveInformationPolicyConfigArgs{...} +// +// or: +// +// nil +type GuardrailSensitiveInformationPolicyConfigPtrInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigPtrOutput() GuardrailSensitiveInformationPolicyConfigPtrOutput + ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigPtrOutput +} + +type guardrailSensitiveInformationPolicyConfigPtrType GuardrailSensitiveInformationPolicyConfigArgs + +func GuardrailSensitiveInformationPolicyConfigPtr(v *GuardrailSensitiveInformationPolicyConfigArgs) GuardrailSensitiveInformationPolicyConfigPtrInput { + return (*guardrailSensitiveInformationPolicyConfigPtrType)(v) +} + +func (*guardrailSensitiveInformationPolicyConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailSensitiveInformationPolicyConfig)(nil)).Elem() +} + +func (i *guardrailSensitiveInformationPolicyConfigPtrType) ToGuardrailSensitiveInformationPolicyConfigPtrOutput() GuardrailSensitiveInformationPolicyConfigPtrOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i *guardrailSensitiveInformationPolicyConfigPtrType) ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigPtrOutput) +} + +type GuardrailSensitiveInformationPolicyConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigOutput) ToGuardrailSensitiveInformationPolicyConfigOutput() GuardrailSensitiveInformationPolicyConfigOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigOutput) ToGuardrailSensitiveInformationPolicyConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigOutput) ToGuardrailSensitiveInformationPolicyConfigPtrOutput() GuardrailSensitiveInformationPolicyConfigPtrOutput { + return o.ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (o GuardrailSensitiveInformationPolicyConfigOutput) ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailSensitiveInformationPolicyConfig) *GuardrailSensitiveInformationPolicyConfig { + return &v + }).(GuardrailSensitiveInformationPolicyConfigPtrOutput) +} + +// List of entities. See PII Entities Config for more information. +func (o GuardrailSensitiveInformationPolicyConfigOutput) PiiEntitiesConfigs() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfig) []GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + return v.PiiEntitiesConfigs + }).(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) +} + +// List of regex. See Regexes Config for more information. +func (o GuardrailSensitiveInformationPolicyConfigOutput) RegexesConfigs() GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfig) []GuardrailSensitiveInformationPolicyConfigRegexesConfig { + return v.RegexesConfigs + }).(GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) +} + +type GuardrailSensitiveInformationPolicyConfigPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailSensitiveInformationPolicyConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigPtrOutput) ToGuardrailSensitiveInformationPolicyConfigPtrOutput() GuardrailSensitiveInformationPolicyConfigPtrOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigPtrOutput) ToGuardrailSensitiveInformationPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPtrOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigPtrOutput) Elem() GuardrailSensitiveInformationPolicyConfigOutput { + return o.ApplyT(func(v *GuardrailSensitiveInformationPolicyConfig) GuardrailSensitiveInformationPolicyConfig { + if v != nil { + return *v + } + var ret GuardrailSensitiveInformationPolicyConfig + return ret + }).(GuardrailSensitiveInformationPolicyConfigOutput) +} + +// List of entities. See PII Entities Config for more information. +func (o GuardrailSensitiveInformationPolicyConfigPtrOutput) PiiEntitiesConfigs() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return o.ApplyT(func(v *GuardrailSensitiveInformationPolicyConfig) []GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + if v == nil { + return nil + } + return v.PiiEntitiesConfigs + }).(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) +} + +// List of regex. See Regexes Config for more information. +func (o GuardrailSensitiveInformationPolicyConfigPtrOutput) RegexesConfigs() GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return o.ApplyT(func(v *GuardrailSensitiveInformationPolicyConfig) []GuardrailSensitiveInformationPolicyConfigRegexesConfig { + if v == nil { + return nil + } + return v.RegexesConfigs + }).(GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) +} + +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig struct { + // Options for sensitive information action. + Action string `pulumi:"action"` + // The currently supported PII entities. + Type string `pulumi:"type"` +} + +// GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs and GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigInput` via: +// +// GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs{...} +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput + ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput +} + +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs struct { + // Options for sensitive information action. + Action pulumi.StringInput `pulumi:"action"` + // The currently supported PII entities. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig)(nil)).Elem() +} + +func (i GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) +} + +// GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray and GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayInput` via: +// +// GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray{ GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs{...} } +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput + ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput +} + +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray []GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigInput + +func (GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig)(nil)).Elem() +} + +func (i GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) +} + +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput { + return o +} + +// Options for sensitive information action. +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig) string { return v.Action }).(pulumi.StringOutput) +} + +// The currently supported PII entities. +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig) string { return v.Type }).(pulumi.StringOutput) +} + +type GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) ToGuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput) Index(i pulumi.IntInput) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + return vs[0].([]GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig)[vs[1].(int)] + }).(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput) +} + +type GuardrailSensitiveInformationPolicyConfigRegexesConfig struct { + // Options for sensitive information action. + Action string `pulumi:"action"` + // The regex description. + Description *string `pulumi:"description"` + // The regex name. + Name string `pulumi:"name"` + // The regex pattern. + Pattern string `pulumi:"pattern"` +} + +// GuardrailSensitiveInformationPolicyConfigRegexesConfigInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs and GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigRegexesConfigInput` via: +// +// GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs{...} +type GuardrailSensitiveInformationPolicyConfigRegexesConfigInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput + ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput +} + +type GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs struct { + // Options for sensitive information action. + Action pulumi.StringInput `pulumi:"action"` + // The regex description. + Description pulumi.StringPtrInput `pulumi:"description"` + // The regex name. + Name pulumi.StringInput `pulumi:"name"` + // The regex pattern. + Pattern pulumi.StringInput `pulumi:"pattern"` +} + +func (GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigRegexesConfig)(nil)).Elem() +} + +func (i GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) +} + +// GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayInput is an input type that accepts GuardrailSensitiveInformationPolicyConfigRegexesConfigArray and GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayInput` via: +// +// GuardrailSensitiveInformationPolicyConfigRegexesConfigArray{ GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs{...} } +type GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayInput interface { + pulumi.Input + + ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput + ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutputWithContext(context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput +} + +type GuardrailSensitiveInformationPolicyConfigRegexesConfigArray []GuardrailSensitiveInformationPolicyConfigRegexesConfigInput + +func (GuardrailSensitiveInformationPolicyConfigRegexesConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailSensitiveInformationPolicyConfigRegexesConfig)(nil)).Elem() +} + +func (i GuardrailSensitiveInformationPolicyConfigRegexesConfigArray) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return i.ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailSensitiveInformationPolicyConfigRegexesConfigArray) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) +} + +type GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigRegexesConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput { + return o +} + +// Options for sensitive information action. +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigRegexesConfig) string { return v.Action }).(pulumi.StringOutput) +} + +// The regex description. +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigRegexesConfig) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The regex name. +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigRegexesConfig) string { return v.Name }).(pulumi.StringOutput) +} + +// The regex pattern. +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) Pattern() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailSensitiveInformationPolicyConfigRegexesConfig) string { return v.Pattern }).(pulumi.StringOutput) +} + +type GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailSensitiveInformationPolicyConfigRegexesConfig)(nil)).Elem() +} + +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput() GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) ToGuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutputWithContext(ctx context.Context) GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput { + return o +} + +func (o GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput) Index(i pulumi.IntInput) GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailSensitiveInformationPolicyConfigRegexesConfig { + return vs[0].([]GuardrailSensitiveInformationPolicyConfigRegexesConfig)[vs[1].(int)] + }).(GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput) +} + +type GuardrailTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// GuardrailTimeoutsInput is an input type that accepts GuardrailTimeoutsArgs and GuardrailTimeoutsOutput values. +// You can construct a concrete instance of `GuardrailTimeoutsInput` via: +// +// GuardrailTimeoutsArgs{...} +type GuardrailTimeoutsInput interface { + pulumi.Input + + ToGuardrailTimeoutsOutput() GuardrailTimeoutsOutput + ToGuardrailTimeoutsOutputWithContext(context.Context) GuardrailTimeoutsOutput +} + +type GuardrailTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (GuardrailTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTimeouts)(nil)).Elem() +} + +func (i GuardrailTimeoutsArgs) ToGuardrailTimeoutsOutput() GuardrailTimeoutsOutput { + return i.ToGuardrailTimeoutsOutputWithContext(context.Background()) +} + +func (i GuardrailTimeoutsArgs) ToGuardrailTimeoutsOutputWithContext(ctx context.Context) GuardrailTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTimeoutsOutput) +} + +func (i GuardrailTimeoutsArgs) ToGuardrailTimeoutsPtrOutput() GuardrailTimeoutsPtrOutput { + return i.ToGuardrailTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i GuardrailTimeoutsArgs) ToGuardrailTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTimeoutsOutput).ToGuardrailTimeoutsPtrOutputWithContext(ctx) +} + +// GuardrailTimeoutsPtrInput is an input type that accepts GuardrailTimeoutsArgs, GuardrailTimeoutsPtr and GuardrailTimeoutsPtrOutput values. +// You can construct a concrete instance of `GuardrailTimeoutsPtrInput` via: +// +// GuardrailTimeoutsArgs{...} +// +// or: +// +// nil +type GuardrailTimeoutsPtrInput interface { + pulumi.Input + + ToGuardrailTimeoutsPtrOutput() GuardrailTimeoutsPtrOutput + ToGuardrailTimeoutsPtrOutputWithContext(context.Context) GuardrailTimeoutsPtrOutput +} + +type guardrailTimeoutsPtrType GuardrailTimeoutsArgs + +func GuardrailTimeoutsPtr(v *GuardrailTimeoutsArgs) GuardrailTimeoutsPtrInput { + return (*guardrailTimeoutsPtrType)(v) +} + +func (*guardrailTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailTimeouts)(nil)).Elem() +} + +func (i *guardrailTimeoutsPtrType) ToGuardrailTimeoutsPtrOutput() GuardrailTimeoutsPtrOutput { + return i.ToGuardrailTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *guardrailTimeoutsPtrType) ToGuardrailTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTimeoutsPtrOutput) +} + +type GuardrailTimeoutsOutput struct{ *pulumi.OutputState } + +func (GuardrailTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTimeouts)(nil)).Elem() +} + +func (o GuardrailTimeoutsOutput) ToGuardrailTimeoutsOutput() GuardrailTimeoutsOutput { + return o +} + +func (o GuardrailTimeoutsOutput) ToGuardrailTimeoutsOutputWithContext(ctx context.Context) GuardrailTimeoutsOutput { + return o +} + +func (o GuardrailTimeoutsOutput) ToGuardrailTimeoutsPtrOutput() GuardrailTimeoutsPtrOutput { + return o.ToGuardrailTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o GuardrailTimeoutsOutput) ToGuardrailTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailTimeouts) *GuardrailTimeouts { + return &v + }).(GuardrailTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GuardrailTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o GuardrailTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GuardrailTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v GuardrailTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type GuardrailTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailTimeouts)(nil)).Elem() +} + +func (o GuardrailTimeoutsPtrOutput) ToGuardrailTimeoutsPtrOutput() GuardrailTimeoutsPtrOutput { + return o +} + +func (o GuardrailTimeoutsPtrOutput) ToGuardrailTimeoutsPtrOutputWithContext(ctx context.Context) GuardrailTimeoutsPtrOutput { + return o +} + +func (o GuardrailTimeoutsPtrOutput) Elem() GuardrailTimeoutsOutput { + return o.ApplyT(func(v *GuardrailTimeouts) GuardrailTimeouts { + if v != nil { + return *v + } + var ret GuardrailTimeouts + return ret + }).(GuardrailTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GuardrailTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o GuardrailTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GuardrailTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GuardrailTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type GuardrailTopicPolicyConfig struct { + // List of topic configs in topic policy. See Topics Config for more information. + TopicsConfigs []GuardrailTopicPolicyConfigTopicsConfig `pulumi:"topicsConfigs"` +} + +// GuardrailTopicPolicyConfigInput is an input type that accepts GuardrailTopicPolicyConfigArgs and GuardrailTopicPolicyConfigOutput values. +// You can construct a concrete instance of `GuardrailTopicPolicyConfigInput` via: +// +// GuardrailTopicPolicyConfigArgs{...} +type GuardrailTopicPolicyConfigInput interface { + pulumi.Input + + ToGuardrailTopicPolicyConfigOutput() GuardrailTopicPolicyConfigOutput + ToGuardrailTopicPolicyConfigOutputWithContext(context.Context) GuardrailTopicPolicyConfigOutput +} + +type GuardrailTopicPolicyConfigArgs struct { + // List of topic configs in topic policy. See Topics Config for more information. + TopicsConfigs GuardrailTopicPolicyConfigTopicsConfigArrayInput `pulumi:"topicsConfigs"` +} + +func (GuardrailTopicPolicyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTopicPolicyConfig)(nil)).Elem() +} + +func (i GuardrailTopicPolicyConfigArgs) ToGuardrailTopicPolicyConfigOutput() GuardrailTopicPolicyConfigOutput { + return i.ToGuardrailTopicPolicyConfigOutputWithContext(context.Background()) +} + +func (i GuardrailTopicPolicyConfigArgs) ToGuardrailTopicPolicyConfigOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTopicPolicyConfigOutput) +} + +func (i GuardrailTopicPolicyConfigArgs) ToGuardrailTopicPolicyConfigPtrOutput() GuardrailTopicPolicyConfigPtrOutput { + return i.ToGuardrailTopicPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i GuardrailTopicPolicyConfigArgs) ToGuardrailTopicPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTopicPolicyConfigOutput).ToGuardrailTopicPolicyConfigPtrOutputWithContext(ctx) +} + +// GuardrailTopicPolicyConfigPtrInput is an input type that accepts GuardrailTopicPolicyConfigArgs, GuardrailTopicPolicyConfigPtr and GuardrailTopicPolicyConfigPtrOutput values. +// You can construct a concrete instance of `GuardrailTopicPolicyConfigPtrInput` via: +// +// GuardrailTopicPolicyConfigArgs{...} +// +// or: +// +// nil +type GuardrailTopicPolicyConfigPtrInput interface { + pulumi.Input + + ToGuardrailTopicPolicyConfigPtrOutput() GuardrailTopicPolicyConfigPtrOutput + ToGuardrailTopicPolicyConfigPtrOutputWithContext(context.Context) GuardrailTopicPolicyConfigPtrOutput +} + +type guardrailTopicPolicyConfigPtrType GuardrailTopicPolicyConfigArgs + +func GuardrailTopicPolicyConfigPtr(v *GuardrailTopicPolicyConfigArgs) GuardrailTopicPolicyConfigPtrInput { + return (*guardrailTopicPolicyConfigPtrType)(v) +} + +func (*guardrailTopicPolicyConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailTopicPolicyConfig)(nil)).Elem() +} + +func (i *guardrailTopicPolicyConfigPtrType) ToGuardrailTopicPolicyConfigPtrOutput() GuardrailTopicPolicyConfigPtrOutput { + return i.ToGuardrailTopicPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i *guardrailTopicPolicyConfigPtrType) ToGuardrailTopicPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTopicPolicyConfigPtrOutput) +} + +type GuardrailTopicPolicyConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailTopicPolicyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTopicPolicyConfig)(nil)).Elem() +} + +func (o GuardrailTopicPolicyConfigOutput) ToGuardrailTopicPolicyConfigOutput() GuardrailTopicPolicyConfigOutput { + return o +} + +func (o GuardrailTopicPolicyConfigOutput) ToGuardrailTopicPolicyConfigOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigOutput { + return o +} + +func (o GuardrailTopicPolicyConfigOutput) ToGuardrailTopicPolicyConfigPtrOutput() GuardrailTopicPolicyConfigPtrOutput { + return o.ToGuardrailTopicPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (o GuardrailTopicPolicyConfigOutput) ToGuardrailTopicPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailTopicPolicyConfig) *GuardrailTopicPolicyConfig { + return &v + }).(GuardrailTopicPolicyConfigPtrOutput) +} + +// List of topic configs in topic policy. See Topics Config for more information. +func (o GuardrailTopicPolicyConfigOutput) TopicsConfigs() GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return o.ApplyT(func(v GuardrailTopicPolicyConfig) []GuardrailTopicPolicyConfigTopicsConfig { return v.TopicsConfigs }).(GuardrailTopicPolicyConfigTopicsConfigArrayOutput) +} + +type GuardrailTopicPolicyConfigPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailTopicPolicyConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailTopicPolicyConfig)(nil)).Elem() +} + +func (o GuardrailTopicPolicyConfigPtrOutput) ToGuardrailTopicPolicyConfigPtrOutput() GuardrailTopicPolicyConfigPtrOutput { + return o +} + +func (o GuardrailTopicPolicyConfigPtrOutput) ToGuardrailTopicPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigPtrOutput { + return o +} + +func (o GuardrailTopicPolicyConfigPtrOutput) Elem() GuardrailTopicPolicyConfigOutput { + return o.ApplyT(func(v *GuardrailTopicPolicyConfig) GuardrailTopicPolicyConfig { + if v != nil { + return *v + } + var ret GuardrailTopicPolicyConfig + return ret + }).(GuardrailTopicPolicyConfigOutput) +} + +// List of topic configs in topic policy. See Topics Config for more information. +func (o GuardrailTopicPolicyConfigPtrOutput) TopicsConfigs() GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return o.ApplyT(func(v *GuardrailTopicPolicyConfig) []GuardrailTopicPolicyConfigTopicsConfig { + if v == nil { + return nil + } + return v.TopicsConfigs + }).(GuardrailTopicPolicyConfigTopicsConfigArrayOutput) +} + +type GuardrailTopicPolicyConfigTopicsConfig struct { + // Definition of topic in topic policy. + Definition string `pulumi:"definition"` + // List of text examples. + Examples []string `pulumi:"examples"` + // Name of topic in topic policy. + Name string `pulumi:"name"` + // Type of topic in a policy. + Type string `pulumi:"type"` +} + +// GuardrailTopicPolicyConfigTopicsConfigInput is an input type that accepts GuardrailTopicPolicyConfigTopicsConfigArgs and GuardrailTopicPolicyConfigTopicsConfigOutput values. +// You can construct a concrete instance of `GuardrailTopicPolicyConfigTopicsConfigInput` via: +// +// GuardrailTopicPolicyConfigTopicsConfigArgs{...} +type GuardrailTopicPolicyConfigTopicsConfigInput interface { + pulumi.Input + + ToGuardrailTopicPolicyConfigTopicsConfigOutput() GuardrailTopicPolicyConfigTopicsConfigOutput + ToGuardrailTopicPolicyConfigTopicsConfigOutputWithContext(context.Context) GuardrailTopicPolicyConfigTopicsConfigOutput +} + +type GuardrailTopicPolicyConfigTopicsConfigArgs struct { + // Definition of topic in topic policy. + Definition pulumi.StringInput `pulumi:"definition"` + // List of text examples. + Examples pulumi.StringArrayInput `pulumi:"examples"` + // Name of topic in topic policy. + Name pulumi.StringInput `pulumi:"name"` + // Type of topic in a policy. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuardrailTopicPolicyConfigTopicsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfig)(nil)).Elem() +} + +func (i GuardrailTopicPolicyConfigTopicsConfigArgs) ToGuardrailTopicPolicyConfigTopicsConfigOutput() GuardrailTopicPolicyConfigTopicsConfigOutput { + return i.ToGuardrailTopicPolicyConfigTopicsConfigOutputWithContext(context.Background()) +} + +func (i GuardrailTopicPolicyConfigTopicsConfigArgs) ToGuardrailTopicPolicyConfigTopicsConfigOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigTopicsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTopicPolicyConfigTopicsConfigOutput) +} + +// GuardrailTopicPolicyConfigTopicsConfigArrayInput is an input type that accepts GuardrailTopicPolicyConfigTopicsConfigArray and GuardrailTopicPolicyConfigTopicsConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailTopicPolicyConfigTopicsConfigArrayInput` via: +// +// GuardrailTopicPolicyConfigTopicsConfigArray{ GuardrailTopicPolicyConfigTopicsConfigArgs{...} } +type GuardrailTopicPolicyConfigTopicsConfigArrayInput interface { + pulumi.Input + + ToGuardrailTopicPolicyConfigTopicsConfigArrayOutput() GuardrailTopicPolicyConfigTopicsConfigArrayOutput + ToGuardrailTopicPolicyConfigTopicsConfigArrayOutputWithContext(context.Context) GuardrailTopicPolicyConfigTopicsConfigArrayOutput +} + +type GuardrailTopicPolicyConfigTopicsConfigArray []GuardrailTopicPolicyConfigTopicsConfigInput + +func (GuardrailTopicPolicyConfigTopicsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailTopicPolicyConfigTopicsConfig)(nil)).Elem() +} + +func (i GuardrailTopicPolicyConfigTopicsConfigArray) ToGuardrailTopicPolicyConfigTopicsConfigArrayOutput() GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return i.ToGuardrailTopicPolicyConfigTopicsConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailTopicPolicyConfigTopicsConfigArray) ToGuardrailTopicPolicyConfigTopicsConfigArrayOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailTopicPolicyConfigTopicsConfigArrayOutput) +} + +type GuardrailTopicPolicyConfigTopicsConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailTopicPolicyConfigTopicsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfig)(nil)).Elem() +} + +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) ToGuardrailTopicPolicyConfigTopicsConfigOutput() GuardrailTopicPolicyConfigTopicsConfigOutput { + return o +} + +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) ToGuardrailTopicPolicyConfigTopicsConfigOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigTopicsConfigOutput { + return o +} + +// Definition of topic in topic policy. +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) Definition() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailTopicPolicyConfigTopicsConfig) string { return v.Definition }).(pulumi.StringOutput) +} + +// List of text examples. +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) Examples() pulumi.StringArrayOutput { + return o.ApplyT(func(v GuardrailTopicPolicyConfigTopicsConfig) []string { return v.Examples }).(pulumi.StringArrayOutput) +} + +// Name of topic in topic policy. +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailTopicPolicyConfigTopicsConfig) string { return v.Name }).(pulumi.StringOutput) +} + +// Type of topic in a policy. +func (o GuardrailTopicPolicyConfigTopicsConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailTopicPolicyConfigTopicsConfig) string { return v.Type }).(pulumi.StringOutput) +} + +type GuardrailTopicPolicyConfigTopicsConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailTopicPolicyConfigTopicsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailTopicPolicyConfigTopicsConfig)(nil)).Elem() +} + +func (o GuardrailTopicPolicyConfigTopicsConfigArrayOutput) ToGuardrailTopicPolicyConfigTopicsConfigArrayOutput() GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return o +} + +func (o GuardrailTopicPolicyConfigTopicsConfigArrayOutput) ToGuardrailTopicPolicyConfigTopicsConfigArrayOutputWithContext(ctx context.Context) GuardrailTopicPolicyConfigTopicsConfigArrayOutput { + return o +} + +func (o GuardrailTopicPolicyConfigTopicsConfigArrayOutput) Index(i pulumi.IntInput) GuardrailTopicPolicyConfigTopicsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailTopicPolicyConfigTopicsConfig { + return vs[0].([]GuardrailTopicPolicyConfigTopicsConfig)[vs[1].(int)] + }).(GuardrailTopicPolicyConfigTopicsConfigOutput) +} + +type GuardrailWordPolicyConfig struct { + // A config for the list of managed words. See Managed Word Lists Config for more information. + ManagedWordListsConfigs []GuardrailWordPolicyConfigManagedWordListsConfig `pulumi:"managedWordListsConfigs"` + // List of custom word configs. See Words Config for more information. + WordsConfigs []GuardrailWordPolicyConfigWordsConfig `pulumi:"wordsConfigs"` +} + +// GuardrailWordPolicyConfigInput is an input type that accepts GuardrailWordPolicyConfigArgs and GuardrailWordPolicyConfigOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigInput` via: +// +// GuardrailWordPolicyConfigArgs{...} +type GuardrailWordPolicyConfigInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigOutput() GuardrailWordPolicyConfigOutput + ToGuardrailWordPolicyConfigOutputWithContext(context.Context) GuardrailWordPolicyConfigOutput +} + +type GuardrailWordPolicyConfigArgs struct { + // A config for the list of managed words. See Managed Word Lists Config for more information. + ManagedWordListsConfigs GuardrailWordPolicyConfigManagedWordListsConfigArrayInput `pulumi:"managedWordListsConfigs"` + // List of custom word configs. See Words Config for more information. + WordsConfigs GuardrailWordPolicyConfigWordsConfigArrayInput `pulumi:"wordsConfigs"` +} + +func (GuardrailWordPolicyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfig)(nil)).Elem() +} + +func (i GuardrailWordPolicyConfigArgs) ToGuardrailWordPolicyConfigOutput() GuardrailWordPolicyConfigOutput { + return i.ToGuardrailWordPolicyConfigOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigArgs) ToGuardrailWordPolicyConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigOutput) +} + +func (i GuardrailWordPolicyConfigArgs) ToGuardrailWordPolicyConfigPtrOutput() GuardrailWordPolicyConfigPtrOutput { + return i.ToGuardrailWordPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigArgs) ToGuardrailWordPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigOutput).ToGuardrailWordPolicyConfigPtrOutputWithContext(ctx) +} + +// GuardrailWordPolicyConfigPtrInput is an input type that accepts GuardrailWordPolicyConfigArgs, GuardrailWordPolicyConfigPtr and GuardrailWordPolicyConfigPtrOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigPtrInput` via: +// +// GuardrailWordPolicyConfigArgs{...} +// +// or: +// +// nil +type GuardrailWordPolicyConfigPtrInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigPtrOutput() GuardrailWordPolicyConfigPtrOutput + ToGuardrailWordPolicyConfigPtrOutputWithContext(context.Context) GuardrailWordPolicyConfigPtrOutput +} + +type guardrailWordPolicyConfigPtrType GuardrailWordPolicyConfigArgs + +func GuardrailWordPolicyConfigPtr(v *GuardrailWordPolicyConfigArgs) GuardrailWordPolicyConfigPtrInput { + return (*guardrailWordPolicyConfigPtrType)(v) +} + +func (*guardrailWordPolicyConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailWordPolicyConfig)(nil)).Elem() +} + +func (i *guardrailWordPolicyConfigPtrType) ToGuardrailWordPolicyConfigPtrOutput() GuardrailWordPolicyConfigPtrOutput { + return i.ToGuardrailWordPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (i *guardrailWordPolicyConfigPtrType) ToGuardrailWordPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigPtrOutput) +} + +type GuardrailWordPolicyConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigOutput) ToGuardrailWordPolicyConfigOutput() GuardrailWordPolicyConfigOutput { + return o +} + +func (o GuardrailWordPolicyConfigOutput) ToGuardrailWordPolicyConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigOutput { + return o +} + +func (o GuardrailWordPolicyConfigOutput) ToGuardrailWordPolicyConfigPtrOutput() GuardrailWordPolicyConfigPtrOutput { + return o.ToGuardrailWordPolicyConfigPtrOutputWithContext(context.Background()) +} + +func (o GuardrailWordPolicyConfigOutput) ToGuardrailWordPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GuardrailWordPolicyConfig) *GuardrailWordPolicyConfig { + return &v + }).(GuardrailWordPolicyConfigPtrOutput) +} + +// A config for the list of managed words. See Managed Word Lists Config for more information. +func (o GuardrailWordPolicyConfigOutput) ManagedWordListsConfigs() GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return o.ApplyT(func(v GuardrailWordPolicyConfig) []GuardrailWordPolicyConfigManagedWordListsConfig { + return v.ManagedWordListsConfigs + }).(GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) +} + +// List of custom word configs. See Words Config for more information. +func (o GuardrailWordPolicyConfigOutput) WordsConfigs() GuardrailWordPolicyConfigWordsConfigArrayOutput { + return o.ApplyT(func(v GuardrailWordPolicyConfig) []GuardrailWordPolicyConfigWordsConfig { return v.WordsConfigs }).(GuardrailWordPolicyConfigWordsConfigArrayOutput) +} + +type GuardrailWordPolicyConfigPtrOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GuardrailWordPolicyConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigPtrOutput) ToGuardrailWordPolicyConfigPtrOutput() GuardrailWordPolicyConfigPtrOutput { + return o +} + +func (o GuardrailWordPolicyConfigPtrOutput) ToGuardrailWordPolicyConfigPtrOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigPtrOutput { + return o +} + +func (o GuardrailWordPolicyConfigPtrOutput) Elem() GuardrailWordPolicyConfigOutput { + return o.ApplyT(func(v *GuardrailWordPolicyConfig) GuardrailWordPolicyConfig { + if v != nil { + return *v + } + var ret GuardrailWordPolicyConfig + return ret + }).(GuardrailWordPolicyConfigOutput) +} + +// A config for the list of managed words. See Managed Word Lists Config for more information. +func (o GuardrailWordPolicyConfigPtrOutput) ManagedWordListsConfigs() GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return o.ApplyT(func(v *GuardrailWordPolicyConfig) []GuardrailWordPolicyConfigManagedWordListsConfig { + if v == nil { + return nil + } + return v.ManagedWordListsConfigs + }).(GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) +} + +// List of custom word configs. See Words Config for more information. +func (o GuardrailWordPolicyConfigPtrOutput) WordsConfigs() GuardrailWordPolicyConfigWordsConfigArrayOutput { + return o.ApplyT(func(v *GuardrailWordPolicyConfig) []GuardrailWordPolicyConfigWordsConfig { + if v == nil { + return nil + } + return v.WordsConfigs + }).(GuardrailWordPolicyConfigWordsConfigArrayOutput) +} + +type GuardrailWordPolicyConfigManagedWordListsConfig struct { + // Options for managed words. + Type string `pulumi:"type"` +} + +// GuardrailWordPolicyConfigManagedWordListsConfigInput is an input type that accepts GuardrailWordPolicyConfigManagedWordListsConfigArgs and GuardrailWordPolicyConfigManagedWordListsConfigOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigManagedWordListsConfigInput` via: +// +// GuardrailWordPolicyConfigManagedWordListsConfigArgs{...} +type GuardrailWordPolicyConfigManagedWordListsConfigInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigManagedWordListsConfigOutput() GuardrailWordPolicyConfigManagedWordListsConfigOutput + ToGuardrailWordPolicyConfigManagedWordListsConfigOutputWithContext(context.Context) GuardrailWordPolicyConfigManagedWordListsConfigOutput +} + +type GuardrailWordPolicyConfigManagedWordListsConfigArgs struct { + // Options for managed words. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GuardrailWordPolicyConfigManagedWordListsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfigManagedWordListsConfig)(nil)).Elem() +} + +func (i GuardrailWordPolicyConfigManagedWordListsConfigArgs) ToGuardrailWordPolicyConfigManagedWordListsConfigOutput() GuardrailWordPolicyConfigManagedWordListsConfigOutput { + return i.ToGuardrailWordPolicyConfigManagedWordListsConfigOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigManagedWordListsConfigArgs) ToGuardrailWordPolicyConfigManagedWordListsConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigManagedWordListsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigManagedWordListsConfigOutput) +} + +// GuardrailWordPolicyConfigManagedWordListsConfigArrayInput is an input type that accepts GuardrailWordPolicyConfigManagedWordListsConfigArray and GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigManagedWordListsConfigArrayInput` via: +// +// GuardrailWordPolicyConfigManagedWordListsConfigArray{ GuardrailWordPolicyConfigManagedWordListsConfigArgs{...} } +type GuardrailWordPolicyConfigManagedWordListsConfigArrayInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutput() GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput + ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutputWithContext(context.Context) GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput +} + +type GuardrailWordPolicyConfigManagedWordListsConfigArray []GuardrailWordPolicyConfigManagedWordListsConfigInput + +func (GuardrailWordPolicyConfigManagedWordListsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailWordPolicyConfigManagedWordListsConfig)(nil)).Elem() +} + +func (i GuardrailWordPolicyConfigManagedWordListsConfigArray) ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutput() GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return i.ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigManagedWordListsConfigArray) ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) +} + +type GuardrailWordPolicyConfigManagedWordListsConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigManagedWordListsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfigManagedWordListsConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigManagedWordListsConfigOutput) ToGuardrailWordPolicyConfigManagedWordListsConfigOutput() GuardrailWordPolicyConfigManagedWordListsConfigOutput { + return o +} + +func (o GuardrailWordPolicyConfigManagedWordListsConfigOutput) ToGuardrailWordPolicyConfigManagedWordListsConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigManagedWordListsConfigOutput { + return o +} + +// Options for managed words. +func (o GuardrailWordPolicyConfigManagedWordListsConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailWordPolicyConfigManagedWordListsConfig) string { return v.Type }).(pulumi.StringOutput) +} + +type GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailWordPolicyConfigManagedWordListsConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutput() GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return o +} + +func (o GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) ToGuardrailWordPolicyConfigManagedWordListsConfigArrayOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput { + return o +} + +func (o GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput) Index(i pulumi.IntInput) GuardrailWordPolicyConfigManagedWordListsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailWordPolicyConfigManagedWordListsConfig { + return vs[0].([]GuardrailWordPolicyConfigManagedWordListsConfig)[vs[1].(int)] + }).(GuardrailWordPolicyConfigManagedWordListsConfigOutput) +} + +type GuardrailWordPolicyConfigWordsConfig struct { + // The custom word text. + Text string `pulumi:"text"` +} + +// GuardrailWordPolicyConfigWordsConfigInput is an input type that accepts GuardrailWordPolicyConfigWordsConfigArgs and GuardrailWordPolicyConfigWordsConfigOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigWordsConfigInput` via: +// +// GuardrailWordPolicyConfigWordsConfigArgs{...} +type GuardrailWordPolicyConfigWordsConfigInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigWordsConfigOutput() GuardrailWordPolicyConfigWordsConfigOutput + ToGuardrailWordPolicyConfigWordsConfigOutputWithContext(context.Context) GuardrailWordPolicyConfigWordsConfigOutput +} + +type GuardrailWordPolicyConfigWordsConfigArgs struct { + // The custom word text. + Text pulumi.StringInput `pulumi:"text"` +} + +func (GuardrailWordPolicyConfigWordsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfigWordsConfig)(nil)).Elem() +} + +func (i GuardrailWordPolicyConfigWordsConfigArgs) ToGuardrailWordPolicyConfigWordsConfigOutput() GuardrailWordPolicyConfigWordsConfigOutput { + return i.ToGuardrailWordPolicyConfigWordsConfigOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigWordsConfigArgs) ToGuardrailWordPolicyConfigWordsConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigWordsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigWordsConfigOutput) +} + +// GuardrailWordPolicyConfigWordsConfigArrayInput is an input type that accepts GuardrailWordPolicyConfigWordsConfigArray and GuardrailWordPolicyConfigWordsConfigArrayOutput values. +// You can construct a concrete instance of `GuardrailWordPolicyConfigWordsConfigArrayInput` via: +// +// GuardrailWordPolicyConfigWordsConfigArray{ GuardrailWordPolicyConfigWordsConfigArgs{...} } +type GuardrailWordPolicyConfigWordsConfigArrayInput interface { + pulumi.Input + + ToGuardrailWordPolicyConfigWordsConfigArrayOutput() GuardrailWordPolicyConfigWordsConfigArrayOutput + ToGuardrailWordPolicyConfigWordsConfigArrayOutputWithContext(context.Context) GuardrailWordPolicyConfigWordsConfigArrayOutput +} + +type GuardrailWordPolicyConfigWordsConfigArray []GuardrailWordPolicyConfigWordsConfigInput + +func (GuardrailWordPolicyConfigWordsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailWordPolicyConfigWordsConfig)(nil)).Elem() +} + +func (i GuardrailWordPolicyConfigWordsConfigArray) ToGuardrailWordPolicyConfigWordsConfigArrayOutput() GuardrailWordPolicyConfigWordsConfigArrayOutput { + return i.ToGuardrailWordPolicyConfigWordsConfigArrayOutputWithContext(context.Background()) +} + +func (i GuardrailWordPolicyConfigWordsConfigArray) ToGuardrailWordPolicyConfigWordsConfigArrayOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigWordsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GuardrailWordPolicyConfigWordsConfigArrayOutput) +} + +type GuardrailWordPolicyConfigWordsConfigOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigWordsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GuardrailWordPolicyConfigWordsConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigWordsConfigOutput) ToGuardrailWordPolicyConfigWordsConfigOutput() GuardrailWordPolicyConfigWordsConfigOutput { + return o +} + +func (o GuardrailWordPolicyConfigWordsConfigOutput) ToGuardrailWordPolicyConfigWordsConfigOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigWordsConfigOutput { + return o +} + +// The custom word text. +func (o GuardrailWordPolicyConfigWordsConfigOutput) Text() pulumi.StringOutput { + return o.ApplyT(func(v GuardrailWordPolicyConfigWordsConfig) string { return v.Text }).(pulumi.StringOutput) +} + +type GuardrailWordPolicyConfigWordsConfigArrayOutput struct{ *pulumi.OutputState } + +func (GuardrailWordPolicyConfigWordsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GuardrailWordPolicyConfigWordsConfig)(nil)).Elem() +} + +func (o GuardrailWordPolicyConfigWordsConfigArrayOutput) ToGuardrailWordPolicyConfigWordsConfigArrayOutput() GuardrailWordPolicyConfigWordsConfigArrayOutput { + return o +} + +func (o GuardrailWordPolicyConfigWordsConfigArrayOutput) ToGuardrailWordPolicyConfigWordsConfigArrayOutputWithContext(ctx context.Context) GuardrailWordPolicyConfigWordsConfigArrayOutput { + return o +} + +func (o GuardrailWordPolicyConfigWordsConfigArrayOutput) Index(i pulumi.IntInput) GuardrailWordPolicyConfigWordsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GuardrailWordPolicyConfigWordsConfig { + return vs[0].([]GuardrailWordPolicyConfigWordsConfig)[vs[1].(int)] + }).(GuardrailWordPolicyConfigWordsConfigOutput) +} + +type ProvisionedModelThroughputTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` +} + +// ProvisionedModelThroughputTimeoutsInput is an input type that accepts ProvisionedModelThroughputTimeoutsArgs and ProvisionedModelThroughputTimeoutsOutput values. +// You can construct a concrete instance of `ProvisionedModelThroughputTimeoutsInput` via: +// +// ProvisionedModelThroughputTimeoutsArgs{...} +type ProvisionedModelThroughputTimeoutsInput interface { + pulumi.Input + + ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput + ToProvisionedModelThroughputTimeoutsOutputWithContext(context.Context) ProvisionedModelThroughputTimeoutsOutput +} + +type ProvisionedModelThroughputTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` +} + +func (ProvisionedModelThroughputTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProvisionedModelThroughputTimeouts)(nil)).Elem() +} + +func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput { + return i.ToProvisionedModelThroughputTimeoutsOutputWithContext(context.Background()) +} + +func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsOutput) +} + +func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { + return i.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ProvisionedModelThroughputTimeoutsArgs) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsOutput).ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx) +} + +// ProvisionedModelThroughputTimeoutsPtrInput is an input type that accepts ProvisionedModelThroughputTimeoutsArgs, ProvisionedModelThroughputTimeoutsPtr and ProvisionedModelThroughputTimeoutsPtrOutput values. +// You can construct a concrete instance of `ProvisionedModelThroughputTimeoutsPtrInput` via: +// +// ProvisionedModelThroughputTimeoutsArgs{...} +// +// or: +// +// nil +type ProvisionedModelThroughputTimeoutsPtrInput interface { + pulumi.Input + + ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput + ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Context) ProvisionedModelThroughputTimeoutsPtrOutput +} + +type provisionedModelThroughputTimeoutsPtrType ProvisionedModelThroughputTimeoutsArgs + +func ProvisionedModelThroughputTimeoutsPtr(v *ProvisionedModelThroughputTimeoutsArgs) ProvisionedModelThroughputTimeoutsPtrInput { + return (*provisionedModelThroughputTimeoutsPtrType)(v) +} + +func (*provisionedModelThroughputTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProvisionedModelThroughputTimeouts)(nil)).Elem() +} + +func (i *provisionedModelThroughputTimeoutsPtrType) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { + return i.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *provisionedModelThroughputTimeoutsPtrType) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProvisionedModelThroughputTimeoutsPtrOutput) +} + +type ProvisionedModelThroughputTimeoutsOutput struct{ *pulumi.OutputState } + +func (ProvisionedModelThroughputTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProvisionedModelThroughputTimeouts)(nil)).Elem() +} + +func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsOutput() ProvisionedModelThroughputTimeoutsOutput { + return o +} + +func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsOutput { + return o +} + +func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { + return o.ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ProvisionedModelThroughputTimeoutsOutput) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ProvisionedModelThroughputTimeouts) *ProvisionedModelThroughputTimeouts { + return &v + }).(ProvisionedModelThroughputTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ProvisionedModelThroughputTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProvisionedModelThroughputTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +type ProvisionedModelThroughputTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ProvisionedModelThroughputTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProvisionedModelThroughputTimeouts)(nil)).Elem() +} + +func (o ProvisionedModelThroughputTimeoutsPtrOutput) ToProvisionedModelThroughputTimeoutsPtrOutput() ProvisionedModelThroughputTimeoutsPtrOutput { + return o +} + +func (o ProvisionedModelThroughputTimeoutsPtrOutput) ToProvisionedModelThroughputTimeoutsPtrOutputWithContext(ctx context.Context) ProvisionedModelThroughputTimeoutsPtrOutput { + return o +} + +func (o ProvisionedModelThroughputTimeoutsPtrOutput) Elem() ProvisionedModelThroughputTimeoutsOutput { + return o.ApplyT(func(v *ProvisionedModelThroughputTimeouts) ProvisionedModelThroughputTimeouts { + if v != nil { + return *v + } + var ret ProvisionedModelThroughputTimeouts + return ret + }).(ProvisionedModelThroughputTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o ProvisionedModelThroughputTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ProvisionedModelThroughputTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +type GetAgentAgentVersionsAgentVersionSummary struct { + // Name of agent to which the version belongs. + AgentName string `pulumi:"agentName"` + // Status of the agent to which the version belongs. + AgentStatus string `pulumi:"agentStatus"` + // Version of the agent. + AgentVersion string `pulumi:"agentVersion"` + // Time at which the version was created. + CreatedAt string `pulumi:"createdAt"` + // Description of the version of the agent. + // * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + Description string `pulumi:"description"` + GuardrailConfigurations []GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration `pulumi:"guardrailConfigurations"` + // Time at which the version was last updated. + UpdatedAt string `pulumi:"updatedAt"` +} + +// GetAgentAgentVersionsAgentVersionSummaryInput is an input type that accepts GetAgentAgentVersionsAgentVersionSummaryArgs and GetAgentAgentVersionsAgentVersionSummaryOutput values. +// You can construct a concrete instance of `GetAgentAgentVersionsAgentVersionSummaryInput` via: +// +// GetAgentAgentVersionsAgentVersionSummaryArgs{...} +type GetAgentAgentVersionsAgentVersionSummaryInput interface { + pulumi.Input + + ToGetAgentAgentVersionsAgentVersionSummaryOutput() GetAgentAgentVersionsAgentVersionSummaryOutput + ToGetAgentAgentVersionsAgentVersionSummaryOutputWithContext(context.Context) GetAgentAgentVersionsAgentVersionSummaryOutput +} + +type GetAgentAgentVersionsAgentVersionSummaryArgs struct { + // Name of agent to which the version belongs. + AgentName pulumi.StringInput `pulumi:"agentName"` + // Status of the agent to which the version belongs. + AgentStatus pulumi.StringInput `pulumi:"agentStatus"` + // Version of the agent. + AgentVersion pulumi.StringInput `pulumi:"agentVersion"` + // Time at which the version was created. + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + // Description of the version of the agent. + // * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + Description pulumi.StringInput `pulumi:"description"` + GuardrailConfigurations GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayInput `pulumi:"guardrailConfigurations"` + // Time at which the version was last updated. + UpdatedAt pulumi.StringInput `pulumi:"updatedAt"` +} + +func (GetAgentAgentVersionsAgentVersionSummaryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummary)(nil)).Elem() +} + +func (i GetAgentAgentVersionsAgentVersionSummaryArgs) ToGetAgentAgentVersionsAgentVersionSummaryOutput() GetAgentAgentVersionsAgentVersionSummaryOutput { + return i.ToGetAgentAgentVersionsAgentVersionSummaryOutputWithContext(context.Background()) +} + +func (i GetAgentAgentVersionsAgentVersionSummaryArgs) ToGetAgentAgentVersionsAgentVersionSummaryOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAgentAgentVersionsAgentVersionSummaryOutput) +} + +// GetAgentAgentVersionsAgentVersionSummaryArrayInput is an input type that accepts GetAgentAgentVersionsAgentVersionSummaryArray and GetAgentAgentVersionsAgentVersionSummaryArrayOutput values. +// You can construct a concrete instance of `GetAgentAgentVersionsAgentVersionSummaryArrayInput` via: +// +// GetAgentAgentVersionsAgentVersionSummaryArray{ GetAgentAgentVersionsAgentVersionSummaryArgs{...} } +type GetAgentAgentVersionsAgentVersionSummaryArrayInput interface { + pulumi.Input + + ToGetAgentAgentVersionsAgentVersionSummaryArrayOutput() GetAgentAgentVersionsAgentVersionSummaryArrayOutput + ToGetAgentAgentVersionsAgentVersionSummaryArrayOutputWithContext(context.Context) GetAgentAgentVersionsAgentVersionSummaryArrayOutput +} + +type GetAgentAgentVersionsAgentVersionSummaryArray []GetAgentAgentVersionsAgentVersionSummaryInput + +func (GetAgentAgentVersionsAgentVersionSummaryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAgentAgentVersionsAgentVersionSummary)(nil)).Elem() +} + +func (i GetAgentAgentVersionsAgentVersionSummaryArray) ToGetAgentAgentVersionsAgentVersionSummaryArrayOutput() GetAgentAgentVersionsAgentVersionSummaryArrayOutput { + return i.ToGetAgentAgentVersionsAgentVersionSummaryArrayOutputWithContext(context.Background()) +} + +func (i GetAgentAgentVersionsAgentVersionSummaryArray) ToGetAgentAgentVersionsAgentVersionSummaryArrayOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAgentAgentVersionsAgentVersionSummaryArrayOutput) +} + +type GetAgentAgentVersionsAgentVersionSummaryOutput struct{ *pulumi.OutputState } + +func (GetAgentAgentVersionsAgentVersionSummaryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummary)(nil)).Elem() +} + +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) ToGetAgentAgentVersionsAgentVersionSummaryOutput() GetAgentAgentVersionsAgentVersionSummaryOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) ToGetAgentAgentVersionsAgentVersionSummaryOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryOutput { + return o +} + +// Name of agent to which the version belongs. +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) AgentName() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.AgentName }).(pulumi.StringOutput) +} + +// Status of the agent to which the version belongs. +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) AgentStatus() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.AgentStatus }).(pulumi.StringOutput) +} + +// Version of the agent. +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) AgentVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.AgentVersion }).(pulumi.StringOutput) +} + +// Time at which the version was created. +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Description of the version of the agent. +// * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.Description }).(pulumi.StringOutput) +} + +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) GuardrailConfigurations() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) []GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration { + return v.GuardrailConfigurations + }).(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) +} + +// Time at which the version was last updated. +func (o GetAgentAgentVersionsAgentVersionSummaryOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummary) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type GetAgentAgentVersionsAgentVersionSummaryArrayOutput struct{ *pulumi.OutputState } + +func (GetAgentAgentVersionsAgentVersionSummaryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAgentAgentVersionsAgentVersionSummary)(nil)).Elem() +} + +func (o GetAgentAgentVersionsAgentVersionSummaryArrayOutput) ToGetAgentAgentVersionsAgentVersionSummaryArrayOutput() GetAgentAgentVersionsAgentVersionSummaryArrayOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryArrayOutput) ToGetAgentAgentVersionsAgentVersionSummaryArrayOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryArrayOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryArrayOutput) Index(i pulumi.IntInput) GetAgentAgentVersionsAgentVersionSummaryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetAgentAgentVersionsAgentVersionSummary { + return vs[0].([]GetAgentAgentVersionsAgentVersionSummary)[vs[1].(int)] + }).(GetAgentAgentVersionsAgentVersionSummaryOutput) +} + +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration struct { + // Unique identifier of the guardrail. + GuardrailIdentifier string `pulumi:"guardrailIdentifier"` + // Version of the guardrail. + GuardrailVersion string `pulumi:"guardrailVersion"` +} + +// GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInput is an input type that accepts GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs and GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput values. +// You can construct a concrete instance of `GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInput` via: +// +// GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs{...} +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInput interface { + pulumi.Input + + ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput + ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutputWithContext(context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput +} + +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs struct { + // Unique identifier of the guardrail. + GuardrailIdentifier pulumi.StringInput `pulumi:"guardrailIdentifier"` + // Version of the guardrail. + GuardrailVersion pulumi.StringInput `pulumi:"guardrailVersion"` +} + +func (GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration)(nil)).Elem() +} + +func (i GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput { + return i.ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutputWithContext(context.Background()) +} + +func (i GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) +} + +// GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayInput is an input type that accepts GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray and GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput values. +// You can construct a concrete instance of `GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayInput` via: +// +// GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray{ GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs{...} } +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayInput interface { + pulumi.Input + + ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput + ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutputWithContext(context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput +} + +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray []GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInput + +func (GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration)(nil)).Elem() +} + +func (i GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput { + return i.ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) +} + +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput struct{ *pulumi.OutputState } + +func (GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration)(nil)).Elem() +} + +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput { + return o +} + +// Unique identifier of the guardrail. +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) GuardrailIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration) string { + return v.GuardrailIdentifier + }).(pulumi.StringOutput) +} + +// Version of the guardrail. +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) GuardrailVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration) string { + return v.GuardrailVersion + }).(pulumi.StringOutput) +} + +type GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration)(nil)).Elem() +} + +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput() GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) ToGetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutputWithContext(ctx context.Context) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput { + return o +} + +func (o GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput) Index(i pulumi.IntInput) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration { + return vs[0].([]GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration)[vs[1].(int)] + }).(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput) } type GetCustomModelOutputDataConfig struct { @@ -7056,6 +9152,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasRoutingConfigurationArrayInput)(nil)).Elem(), AgentAgentAliasRoutingConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasTimeoutsInput)(nil)).Elem(), AgentAgentAliasTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentAliasTimeoutsPtrInput)(nil)).Elem(), AgentAgentAliasTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentKnowledgeBaseAssociationTimeoutsInput)(nil)).Elem(), AgentAgentKnowledgeBaseAssociationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentKnowledgeBaseAssociationTimeoutsPtrInput)(nil)).Elem(), AgentAgentKnowledgeBaseAssociationTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentPromptOverrideConfigurationInput)(nil)).Elem(), AgentAgentPromptOverrideConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentPromptOverrideConfigurationArrayInput)(nil)).Elem(), AgentAgentPromptOverrideConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AgentAgentPromptOverrideConfigurationPromptConfigurationInput)(nil)).Elem(), AgentAgentPromptOverrideConfigurationPromptConfigurationArgs{}) @@ -7118,8 +9216,38 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*CustomModelValidationMetricArrayInput)(nil)).Elem(), CustomModelValidationMetricArray{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomModelVpcConfigInput)(nil)).Elem(), CustomModelVpcConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomModelVpcConfigPtrInput)(nil)).Elem(), CustomModelVpcConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContentPolicyConfigInput)(nil)).Elem(), GuardrailContentPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContentPolicyConfigPtrInput)(nil)).Elem(), GuardrailContentPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContentPolicyConfigFiltersConfigInput)(nil)).Elem(), GuardrailContentPolicyConfigFiltersConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContentPolicyConfigFiltersConfigArrayInput)(nil)).Elem(), GuardrailContentPolicyConfigFiltersConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigInput)(nil)).Elem(), GuardrailContextualGroundingPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigPtrInput)(nil)).Elem(), GuardrailContextualGroundingPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigFiltersConfigInput)(nil)).Elem(), GuardrailContextualGroundingPolicyConfigFiltersConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailContextualGroundingPolicyConfigFiltersConfigArrayInput)(nil)).Elem(), GuardrailContextualGroundingPolicyConfigFiltersConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigPtrInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigRegexesConfigInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayInput)(nil)).Elem(), GuardrailSensitiveInformationPolicyConfigRegexesConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTimeoutsInput)(nil)).Elem(), GuardrailTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTimeoutsPtrInput)(nil)).Elem(), GuardrailTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigInput)(nil)).Elem(), GuardrailTopicPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigPtrInput)(nil)).Elem(), GuardrailTopicPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfigInput)(nil)).Elem(), GuardrailTopicPolicyConfigTopicsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailTopicPolicyConfigTopicsConfigArrayInput)(nil)).Elem(), GuardrailTopicPolicyConfigTopicsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigInput)(nil)).Elem(), GuardrailWordPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigPtrInput)(nil)).Elem(), GuardrailWordPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigManagedWordListsConfigInput)(nil)).Elem(), GuardrailWordPolicyConfigManagedWordListsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigManagedWordListsConfigArrayInput)(nil)).Elem(), GuardrailWordPolicyConfigManagedWordListsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigWordsConfigInput)(nil)).Elem(), GuardrailWordPolicyConfigWordsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GuardrailWordPolicyConfigWordsConfigArrayInput)(nil)).Elem(), GuardrailWordPolicyConfigWordsConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ProvisionedModelThroughputTimeoutsInput)(nil)).Elem(), ProvisionedModelThroughputTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProvisionedModelThroughputTimeoutsPtrInput)(nil)).Elem(), ProvisionedModelThroughputTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryInput)(nil)).Elem(), GetAgentAgentVersionsAgentVersionSummaryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryArrayInput)(nil)).Elem(), GetAgentAgentVersionsAgentVersionSummaryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationInput)(nil)).Elem(), GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayInput)(nil)).Elem(), GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCustomModelOutputDataConfigInput)(nil)).Elem(), GetCustomModelOutputDataConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCustomModelOutputDataConfigArrayInput)(nil)).Elem(), GetCustomModelOutputDataConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetCustomModelTrainingDataConfigInput)(nil)).Elem(), GetCustomModelTrainingDataConfigArgs{}) @@ -7152,6 +9280,8 @@ func init() { pulumi.RegisterOutputType(AgentAgentAliasRoutingConfigurationArrayOutput{}) pulumi.RegisterOutputType(AgentAgentAliasTimeoutsOutput{}) pulumi.RegisterOutputType(AgentAgentAliasTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(AgentAgentKnowledgeBaseAssociationTimeoutsOutput{}) + pulumi.RegisterOutputType(AgentAgentKnowledgeBaseAssociationTimeoutsPtrOutput{}) pulumi.RegisterOutputType(AgentAgentPromptOverrideConfigurationOutput{}) pulumi.RegisterOutputType(AgentAgentPromptOverrideConfigurationArrayOutput{}) pulumi.RegisterOutputType(AgentAgentPromptOverrideConfigurationPromptConfigurationOutput{}) @@ -7214,8 +9344,38 @@ func init() { pulumi.RegisterOutputType(CustomModelValidationMetricArrayOutput{}) pulumi.RegisterOutputType(CustomModelVpcConfigOutput{}) pulumi.RegisterOutputType(CustomModelVpcConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailContentPolicyConfigOutput{}) + pulumi.RegisterOutputType(GuardrailContentPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailContentPolicyConfigFiltersConfigOutput{}) + pulumi.RegisterOutputType(GuardrailContentPolicyConfigFiltersConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailContextualGroundingPolicyConfigOutput{}) + pulumi.RegisterOutputType(GuardrailContextualGroundingPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailContextualGroundingPolicyConfigFiltersConfigOutput{}) + pulumi.RegisterOutputType(GuardrailContextualGroundingPolicyConfigFiltersConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigRegexesConfigOutput{}) + pulumi.RegisterOutputType(GuardrailSensitiveInformationPolicyConfigRegexesConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailTimeoutsOutput{}) + pulumi.RegisterOutputType(GuardrailTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(GuardrailTopicPolicyConfigOutput{}) + pulumi.RegisterOutputType(GuardrailTopicPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailTopicPolicyConfigTopicsConfigOutput{}) + pulumi.RegisterOutputType(GuardrailTopicPolicyConfigTopicsConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigManagedWordListsConfigOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigManagedWordListsConfigArrayOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigWordsConfigOutput{}) + pulumi.RegisterOutputType(GuardrailWordPolicyConfigWordsConfigArrayOutput{}) pulumi.RegisterOutputType(ProvisionedModelThroughputTimeoutsOutput{}) pulumi.RegisterOutputType(ProvisionedModelThroughputTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(GetAgentAgentVersionsAgentVersionSummaryOutput{}) + pulumi.RegisterOutputType(GetAgentAgentVersionsAgentVersionSummaryArrayOutput{}) + pulumi.RegisterOutputType(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationOutput{}) + pulumi.RegisterOutputType(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArrayOutput{}) pulumi.RegisterOutputType(GetCustomModelOutputDataConfigOutput{}) pulumi.RegisterOutputType(GetCustomModelOutputDataConfigArrayOutput{}) pulumi.RegisterOutputType(GetCustomModelTrainingDataConfigOutput{}) diff --git a/sdk/go/aws/cloudtrail/init.go b/sdk/go/aws/cloudtrail/init.go index ed13f1bcfa8..e80115295ee 100644 --- a/sdk/go/aws/cloudtrail/init.go +++ b/sdk/go/aws/cloudtrail/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws:cloudtrail/eventDataStore:EventDataStore": r = &EventDataStore{} + case "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount": + r = &OrganizationDelegatedAdminAccount{} case "aws:cloudtrail/trail:Trail": r = &Trail{} default: @@ -43,6 +45,11 @@ func init() { "cloudtrail/eventDataStore", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "cloudtrail/organizationDelegatedAdminAccount", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "cloudtrail/trail", diff --git a/sdk/go/aws/cloudtrail/organizationDelegatedAdminAccount.go b/sdk/go/aws/cloudtrail/organizationDelegatedAdminAccount.go new file mode 100644 index 00000000000..b64100c3e6b --- /dev/null +++ b/sdk/go/aws/cloudtrail/organizationDelegatedAdminAccount.go @@ -0,0 +1,304 @@ +// 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 cloudtrail + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to manage an AWS CloudTrail Delegated Administrator. +// +// ## Example Usage +// +// Basic usage: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudtrail" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// delegated, err := aws.GetCallerIdentity(ctx, nil, nil) +// if err != nil { +// return err +// } +// _, err = cloudtrail.NewOrganizationDelegatedAdminAccount(ctx, "example", &cloudtrail.OrganizationDelegatedAdminAccountArgs{ +// AccountId: pulumi.String(delegated.AccountId), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: +// +// ```sh +// $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 +// ``` +type OrganizationDelegatedAdminAccount struct { + pulumi.CustomResourceState + + // An organization member account ID that you want to designate as a delegated administrator. + AccountId pulumi.StringOutput `pulumi:"accountId"` + // The Amazon Resource Name (ARN) of the delegated administrator's account. + Arn pulumi.StringOutput `pulumi:"arn"` + // The email address that is associated with the delegated administrator's AWS account. + Email pulumi.StringOutput `pulumi:"email"` + // The friendly name of the delegated administrator's account. + Name pulumi.StringOutput `pulumi:"name"` + // The AWS CloudTrail service principal name. + ServicePrincipal pulumi.StringOutput `pulumi:"servicePrincipal"` +} + +// NewOrganizationDelegatedAdminAccount registers a new resource with the given unique name, arguments, and options. +func NewOrganizationDelegatedAdminAccount(ctx *pulumi.Context, + name string, args *OrganizationDelegatedAdminAccountArgs, opts ...pulumi.ResourceOption) (*OrganizationDelegatedAdminAccount, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccountId == nil { + return nil, errors.New("invalid value for required argument 'AccountId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource OrganizationDelegatedAdminAccount + err := ctx.RegisterResource("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOrganizationDelegatedAdminAccount gets an existing OrganizationDelegatedAdminAccount 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 GetOrganizationDelegatedAdminAccount(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OrganizationDelegatedAdminAccountState, opts ...pulumi.ResourceOption) (*OrganizationDelegatedAdminAccount, error) { + var resource OrganizationDelegatedAdminAccount + err := ctx.ReadResource("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OrganizationDelegatedAdminAccount resources. +type organizationDelegatedAdminAccountState struct { + // An organization member account ID that you want to designate as a delegated administrator. + AccountId *string `pulumi:"accountId"` + // The Amazon Resource Name (ARN) of the delegated administrator's account. + Arn *string `pulumi:"arn"` + // The email address that is associated with the delegated administrator's AWS account. + Email *string `pulumi:"email"` + // The friendly name of the delegated administrator's account. + Name *string `pulumi:"name"` + // The AWS CloudTrail service principal name. + ServicePrincipal *string `pulumi:"servicePrincipal"` +} + +type OrganizationDelegatedAdminAccountState struct { + // An organization member account ID that you want to designate as a delegated administrator. + AccountId pulumi.StringPtrInput + // The Amazon Resource Name (ARN) of the delegated administrator's account. + Arn pulumi.StringPtrInput + // The email address that is associated with the delegated administrator's AWS account. + Email pulumi.StringPtrInput + // The friendly name of the delegated administrator's account. + Name pulumi.StringPtrInput + // The AWS CloudTrail service principal name. + ServicePrincipal pulumi.StringPtrInput +} + +func (OrganizationDelegatedAdminAccountState) ElementType() reflect.Type { + return reflect.TypeOf((*organizationDelegatedAdminAccountState)(nil)).Elem() +} + +type organizationDelegatedAdminAccountArgs struct { + // An organization member account ID that you want to designate as a delegated administrator. + AccountId string `pulumi:"accountId"` +} + +// The set of arguments for constructing a OrganizationDelegatedAdminAccount resource. +type OrganizationDelegatedAdminAccountArgs struct { + // An organization member account ID that you want to designate as a delegated administrator. + AccountId pulumi.StringInput +} + +func (OrganizationDelegatedAdminAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*organizationDelegatedAdminAccountArgs)(nil)).Elem() +} + +type OrganizationDelegatedAdminAccountInput interface { + pulumi.Input + + ToOrganizationDelegatedAdminAccountOutput() OrganizationDelegatedAdminAccountOutput + ToOrganizationDelegatedAdminAccountOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountOutput +} + +func (*OrganizationDelegatedAdminAccount) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (i *OrganizationDelegatedAdminAccount) ToOrganizationDelegatedAdminAccountOutput() OrganizationDelegatedAdminAccountOutput { + return i.ToOrganizationDelegatedAdminAccountOutputWithContext(context.Background()) +} + +func (i *OrganizationDelegatedAdminAccount) ToOrganizationDelegatedAdminAccountOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationDelegatedAdminAccountOutput) +} + +// OrganizationDelegatedAdminAccountArrayInput is an input type that accepts OrganizationDelegatedAdminAccountArray and OrganizationDelegatedAdminAccountArrayOutput values. +// You can construct a concrete instance of `OrganizationDelegatedAdminAccountArrayInput` via: +// +// OrganizationDelegatedAdminAccountArray{ OrganizationDelegatedAdminAccountArgs{...} } +type OrganizationDelegatedAdminAccountArrayInput interface { + pulumi.Input + + ToOrganizationDelegatedAdminAccountArrayOutput() OrganizationDelegatedAdminAccountArrayOutput + ToOrganizationDelegatedAdminAccountArrayOutputWithContext(context.Context) OrganizationDelegatedAdminAccountArrayOutput +} + +type OrganizationDelegatedAdminAccountArray []OrganizationDelegatedAdminAccountInput + +func (OrganizationDelegatedAdminAccountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (i OrganizationDelegatedAdminAccountArray) ToOrganizationDelegatedAdminAccountArrayOutput() OrganizationDelegatedAdminAccountArrayOutput { + return i.ToOrganizationDelegatedAdminAccountArrayOutputWithContext(context.Background()) +} + +func (i OrganizationDelegatedAdminAccountArray) ToOrganizationDelegatedAdminAccountArrayOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationDelegatedAdminAccountArrayOutput) +} + +// OrganizationDelegatedAdminAccountMapInput is an input type that accepts OrganizationDelegatedAdminAccountMap and OrganizationDelegatedAdminAccountMapOutput values. +// You can construct a concrete instance of `OrganizationDelegatedAdminAccountMapInput` via: +// +// OrganizationDelegatedAdminAccountMap{ "key": OrganizationDelegatedAdminAccountArgs{...} } +type OrganizationDelegatedAdminAccountMapInput interface { + pulumi.Input + + ToOrganizationDelegatedAdminAccountMapOutput() OrganizationDelegatedAdminAccountMapOutput + ToOrganizationDelegatedAdminAccountMapOutputWithContext(context.Context) OrganizationDelegatedAdminAccountMapOutput +} + +type OrganizationDelegatedAdminAccountMap map[string]OrganizationDelegatedAdminAccountInput + +func (OrganizationDelegatedAdminAccountMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (i OrganizationDelegatedAdminAccountMap) ToOrganizationDelegatedAdminAccountMapOutput() OrganizationDelegatedAdminAccountMapOutput { + return i.ToOrganizationDelegatedAdminAccountMapOutputWithContext(context.Background()) +} + +func (i OrganizationDelegatedAdminAccountMap) ToOrganizationDelegatedAdminAccountMapOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrganizationDelegatedAdminAccountMapOutput) +} + +type OrganizationDelegatedAdminAccountOutput struct{ *pulumi.OutputState } + +func (OrganizationDelegatedAdminAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (o OrganizationDelegatedAdminAccountOutput) ToOrganizationDelegatedAdminAccountOutput() OrganizationDelegatedAdminAccountOutput { + return o +} + +func (o OrganizationDelegatedAdminAccountOutput) ToOrganizationDelegatedAdminAccountOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountOutput { + return o +} + +// An organization member account ID that you want to designate as a delegated administrator. +func (o OrganizationDelegatedAdminAccountOutput) AccountId() pulumi.StringOutput { + return o.ApplyT(func(v *OrganizationDelegatedAdminAccount) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) of the delegated administrator's account. +func (o OrganizationDelegatedAdminAccountOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *OrganizationDelegatedAdminAccount) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The email address that is associated with the delegated administrator's AWS account. +func (o OrganizationDelegatedAdminAccountOutput) Email() pulumi.StringOutput { + return o.ApplyT(func(v *OrganizationDelegatedAdminAccount) pulumi.StringOutput { return v.Email }).(pulumi.StringOutput) +} + +// The friendly name of the delegated administrator's account. +func (o OrganizationDelegatedAdminAccountOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *OrganizationDelegatedAdminAccount) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The AWS CloudTrail service principal name. +func (o OrganizationDelegatedAdminAccountOutput) ServicePrincipal() pulumi.StringOutput { + return o.ApplyT(func(v *OrganizationDelegatedAdminAccount) pulumi.StringOutput { return v.ServicePrincipal }).(pulumi.StringOutput) +} + +type OrganizationDelegatedAdminAccountArrayOutput struct{ *pulumi.OutputState } + +func (OrganizationDelegatedAdminAccountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (o OrganizationDelegatedAdminAccountArrayOutput) ToOrganizationDelegatedAdminAccountArrayOutput() OrganizationDelegatedAdminAccountArrayOutput { + return o +} + +func (o OrganizationDelegatedAdminAccountArrayOutput) ToOrganizationDelegatedAdminAccountArrayOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountArrayOutput { + return o +} + +func (o OrganizationDelegatedAdminAccountArrayOutput) Index(i pulumi.IntInput) OrganizationDelegatedAdminAccountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OrganizationDelegatedAdminAccount { + return vs[0].([]*OrganizationDelegatedAdminAccount)[vs[1].(int)] + }).(OrganizationDelegatedAdminAccountOutput) +} + +type OrganizationDelegatedAdminAccountMapOutput struct{ *pulumi.OutputState } + +func (OrganizationDelegatedAdminAccountMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OrganizationDelegatedAdminAccount)(nil)).Elem() +} + +func (o OrganizationDelegatedAdminAccountMapOutput) ToOrganizationDelegatedAdminAccountMapOutput() OrganizationDelegatedAdminAccountMapOutput { + return o +} + +func (o OrganizationDelegatedAdminAccountMapOutput) ToOrganizationDelegatedAdminAccountMapOutputWithContext(ctx context.Context) OrganizationDelegatedAdminAccountMapOutput { + return o +} + +func (o OrganizationDelegatedAdminAccountMapOutput) MapIndex(k pulumi.StringInput) OrganizationDelegatedAdminAccountOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OrganizationDelegatedAdminAccount { + return vs[0].(map[string]*OrganizationDelegatedAdminAccount)[vs[1].(string)] + }).(OrganizationDelegatedAdminAccountOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*OrganizationDelegatedAdminAccountInput)(nil)).Elem(), &OrganizationDelegatedAdminAccount{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrganizationDelegatedAdminAccountArrayInput)(nil)).Elem(), OrganizationDelegatedAdminAccountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OrganizationDelegatedAdminAccountMapInput)(nil)).Elem(), OrganizationDelegatedAdminAccountMap{}) + pulumi.RegisterOutputType(OrganizationDelegatedAdminAccountOutput{}) + pulumi.RegisterOutputType(OrganizationDelegatedAdminAccountArrayOutput{}) + pulumi.RegisterOutputType(OrganizationDelegatedAdminAccountMapOutput{}) +} diff --git a/sdk/go/aws/codepipeline/pulumiTypes.go b/sdk/go/aws/codepipeline/pulumiTypes.go index f4f7e4e16d9..423c1e4ae75 100644 --- a/sdk/go/aws/codepipeline/pulumiTypes.go +++ b/sdk/go/aws/codepipeline/pulumiTypes.go @@ -1059,7 +1059,7 @@ func (o PipelineStageArrayOutput) Index(i pulumi.IntInput) PipelineStageOutput { type PipelineStageAction struct { // A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. Category string `pulumi:"category"` - // A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + // A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. Configuration map[string]string `pulumi:"configuration"` // A list of artifact names to be worked on. InputArtifacts []string `pulumi:"inputArtifacts"` @@ -1098,7 +1098,7 @@ type PipelineStageActionInput interface { type PipelineStageActionArgs struct { // A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. Category pulumi.StringInput `pulumi:"category"` - // A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + // A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. Configuration pulumi.StringMapInput `pulumi:"configuration"` // A list of artifact names to be worked on. InputArtifacts pulumi.StringArrayInput `pulumi:"inputArtifacts"` @@ -1179,7 +1179,7 @@ func (o PipelineStageActionOutput) Category() pulumi.StringOutput { return o.ApplyT(func(v PipelineStageAction) string { return v.Category }).(pulumi.StringOutput) } -// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. +// A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. func (o PipelineStageActionOutput) Configuration() pulumi.StringMapOutput { return o.ApplyT(func(v PipelineStageAction) map[string]string { return v.Configuration }).(pulumi.StringMapOutput) } diff --git a/sdk/go/aws/datazone/environmentProfile.go b/sdk/go/aws/datazone/environmentProfile.go new file mode 100644 index 00000000000..776a4af7191 --- /dev/null +++ b/sdk/go/aws/datazone/environmentProfile.go @@ -0,0 +1,545 @@ +// 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 datazone + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS DataZone Environment Profile. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "datazone.amazonaws.com", +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "cloudformation.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "datazone:*", +// "ram:*", +// "sso:*", +// "kms:*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json1 := string(tmpJSON1) +// domainExecutionRole, err := iam.NewRole(ctx, "domain_execution_role", &iam.RoleArgs{ +// Name: pulumi.String("example-name"), +// AssumeRolePolicy: pulumi.String(json0), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("example-name"), +// Policy: pulumi.String(json1), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// testDomain, err := datazone.NewDomain(ctx, "test", &datazone.DomainArgs{ +// Name: pulumi.String("example-name"), +// DomainExecutionRole: domainExecutionRole.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewSecurityGroup(ctx, "test", &ec2.SecurityGroupArgs{ +// Name: pulumi.String("example-name"), +// }) +// if err != nil { +// return err +// } +// testProject, err := datazone.NewProject(ctx, "test", &datazone.ProjectArgs{ +// DomainIdentifier: testDomain.ID(), +// GlossaryTerms: pulumi.StringArray{ +// pulumi.String("2N8w6XJCwZf"), +// }, +// Name: pulumi.String("example-name"), +// Description: pulumi.String("desc"), +// SkipDeletionCheck: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// test, err := aws.GetCallerIdentity(ctx, nil, nil) +// if err != nil { +// return err +// } +// testGetRegion, err := aws.GetRegion(ctx, nil, nil) +// if err != nil { +// return err +// } +// testGetEnvironmentBlueprint := datazone.GetEnvironmentBlueprintOutput(ctx, datazone.GetEnvironmentBlueprintOutputArgs{ +// DomainId: testDomain.ID(), +// Name: pulumi.String("DefaultDataLake"), +// Managed: pulumi.Bool(true), +// }, nil) +// _, err = datazone.NewEnvironmentBlueprintConfiguration(ctx, "test", &datazone.EnvironmentBlueprintConfigurationArgs{ +// DomainId: testDomain.ID(), +// EnvironmentBlueprintId: pulumi.String(testGetEnvironmentBlueprint.ApplyT(func(testGetEnvironmentBlueprint datazone.GetEnvironmentBlueprintResult) (*string, error) { +// return &testGetEnvironmentBlueprint.Id, nil +// }).(pulumi.StringPtrOutput)), +// ProvisioningRoleArn: domainExecutionRole.Arn, +// EnabledRegions: pulumi.StringArray{ +// pulumi.String(testGetRegion.Name), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = datazone.NewEnvironmentProfile(ctx, "test", &datazone.EnvironmentProfileArgs{ +// AwsAccountId: pulumi.String(test.AccountId), +// AwsAccountRegion: pulumi.String(testGetRegion.Name), +// Description: pulumi.String("description"), +// EnvironmentBlueprintIdentifier: pulumi.String(testGetEnvironmentBlueprint.ApplyT(func(testGetEnvironmentBlueprint datazone.GetEnvironmentBlueprintResult) (*string, error) { +// return &testGetEnvironmentBlueprint.Id, nil +// }).(pulumi.StringPtrOutput)), +// Name: pulumi.String("example-name"), +// ProjectIdentifier: testProject.ID(), +// DomainIdentifier: testDomain.ID(), +// UserParameters: datazone.EnvironmentProfileUserParameterArray{ +// &datazone.EnvironmentProfileUserParameterArgs{ +// Name: pulumi.String("consumerGlueDbName"), +// Value: pulumi.String("value"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: +// +// ```sh +// $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 +// ``` +type EnvironmentProfile struct { + pulumi.CustomResourceState + + // Id of the AWS account being used. + AwsAccountId pulumi.StringOutput `pulumi:"awsAccountId"` + // Desired region for environment profile. + AwsAccountRegion pulumi.StringOutput `pulumi:"awsAccountRegion"` + // Creation time of environment profile. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Creator of environment profile. + CreatedBy pulumi.StringOutput `pulumi:"createdBy"` + // Description of environment profile. + Description pulumi.StringOutput `pulumi:"description"` + // Domain Identifier for environment profile. + DomainIdentifier pulumi.StringOutput `pulumi:"domainIdentifier"` + // ID of the blueprint which the environment will be created with. + EnvironmentBlueprintIdentifier pulumi.StringOutput `pulumi:"environmentBlueprintIdentifier"` + // Name of the environment profile. + Name pulumi.StringOutput `pulumi:"name"` + // Project identifier for environment profile. + // + // The following arguments are optional: + ProjectIdentifier pulumi.StringOutput `pulumi:"projectIdentifier"` + // Time of last update to environment profile. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` + // Array of user parameters of the environment profile with the following attributes: + UserParameters EnvironmentProfileUserParameterArrayOutput `pulumi:"userParameters"` +} + +// NewEnvironmentProfile registers a new resource with the given unique name, arguments, and options. +func NewEnvironmentProfile(ctx *pulumi.Context, + name string, args *EnvironmentProfileArgs, opts ...pulumi.ResourceOption) (*EnvironmentProfile, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AwsAccountRegion == nil { + return nil, errors.New("invalid value for required argument 'AwsAccountRegion'") + } + if args.DomainIdentifier == nil { + return nil, errors.New("invalid value for required argument 'DomainIdentifier'") + } + if args.EnvironmentBlueprintIdentifier == nil { + return nil, errors.New("invalid value for required argument 'EnvironmentBlueprintIdentifier'") + } + if args.ProjectIdentifier == nil { + return nil, errors.New("invalid value for required argument 'ProjectIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EnvironmentProfile + err := ctx.RegisterResource("aws:datazone/environmentProfile:EnvironmentProfile", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEnvironmentProfile gets an existing EnvironmentProfile 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 GetEnvironmentProfile(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EnvironmentProfileState, opts ...pulumi.ResourceOption) (*EnvironmentProfile, error) { + var resource EnvironmentProfile + err := ctx.ReadResource("aws:datazone/environmentProfile:EnvironmentProfile", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EnvironmentProfile resources. +type environmentProfileState struct { + // Id of the AWS account being used. + AwsAccountId *string `pulumi:"awsAccountId"` + // Desired region for environment profile. + AwsAccountRegion *string `pulumi:"awsAccountRegion"` + // Creation time of environment profile. + CreatedAt *string `pulumi:"createdAt"` + // Creator of environment profile. + CreatedBy *string `pulumi:"createdBy"` + // Description of environment profile. + Description *string `pulumi:"description"` + // Domain Identifier for environment profile. + DomainIdentifier *string `pulumi:"domainIdentifier"` + // ID of the blueprint which the environment will be created with. + EnvironmentBlueprintIdentifier *string `pulumi:"environmentBlueprintIdentifier"` + // Name of the environment profile. + Name *string `pulumi:"name"` + // Project identifier for environment profile. + // + // The following arguments are optional: + ProjectIdentifier *string `pulumi:"projectIdentifier"` + // Time of last update to environment profile. + UpdatedAt *string `pulumi:"updatedAt"` + // Array of user parameters of the environment profile with the following attributes: + UserParameters []EnvironmentProfileUserParameter `pulumi:"userParameters"` +} + +type EnvironmentProfileState struct { + // Id of the AWS account being used. + AwsAccountId pulumi.StringPtrInput + // Desired region for environment profile. + AwsAccountRegion pulumi.StringPtrInput + // Creation time of environment profile. + CreatedAt pulumi.StringPtrInput + // Creator of environment profile. + CreatedBy pulumi.StringPtrInput + // Description of environment profile. + Description pulumi.StringPtrInput + // Domain Identifier for environment profile. + DomainIdentifier pulumi.StringPtrInput + // ID of the blueprint which the environment will be created with. + EnvironmentBlueprintIdentifier pulumi.StringPtrInput + // Name of the environment profile. + Name pulumi.StringPtrInput + // Project identifier for environment profile. + // + // The following arguments are optional: + ProjectIdentifier pulumi.StringPtrInput + // Time of last update to environment profile. + UpdatedAt pulumi.StringPtrInput + // Array of user parameters of the environment profile with the following attributes: + UserParameters EnvironmentProfileUserParameterArrayInput +} + +func (EnvironmentProfileState) ElementType() reflect.Type { + return reflect.TypeOf((*environmentProfileState)(nil)).Elem() +} + +type environmentProfileArgs struct { + // Id of the AWS account being used. + AwsAccountId *string `pulumi:"awsAccountId"` + // Desired region for environment profile. + AwsAccountRegion string `pulumi:"awsAccountRegion"` + // Description of environment profile. + Description *string `pulumi:"description"` + // Domain Identifier for environment profile. + DomainIdentifier string `pulumi:"domainIdentifier"` + // ID of the blueprint which the environment will be created with. + EnvironmentBlueprintIdentifier string `pulumi:"environmentBlueprintIdentifier"` + // Name of the environment profile. + Name *string `pulumi:"name"` + // Project identifier for environment profile. + // + // The following arguments are optional: + ProjectIdentifier string `pulumi:"projectIdentifier"` + // Array of user parameters of the environment profile with the following attributes: + UserParameters []EnvironmentProfileUserParameter `pulumi:"userParameters"` +} + +// The set of arguments for constructing a EnvironmentProfile resource. +type EnvironmentProfileArgs struct { + // Id of the AWS account being used. + AwsAccountId pulumi.StringPtrInput + // Desired region for environment profile. + AwsAccountRegion pulumi.StringInput + // Description of environment profile. + Description pulumi.StringPtrInput + // Domain Identifier for environment profile. + DomainIdentifier pulumi.StringInput + // ID of the blueprint which the environment will be created with. + EnvironmentBlueprintIdentifier pulumi.StringInput + // Name of the environment profile. + Name pulumi.StringPtrInput + // Project identifier for environment profile. + // + // The following arguments are optional: + ProjectIdentifier pulumi.StringInput + // Array of user parameters of the environment profile with the following attributes: + UserParameters EnvironmentProfileUserParameterArrayInput +} + +func (EnvironmentProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*environmentProfileArgs)(nil)).Elem() +} + +type EnvironmentProfileInput interface { + pulumi.Input + + ToEnvironmentProfileOutput() EnvironmentProfileOutput + ToEnvironmentProfileOutputWithContext(ctx context.Context) EnvironmentProfileOutput +} + +func (*EnvironmentProfile) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentProfile)(nil)).Elem() +} + +func (i *EnvironmentProfile) ToEnvironmentProfileOutput() EnvironmentProfileOutput { + return i.ToEnvironmentProfileOutputWithContext(context.Background()) +} + +func (i *EnvironmentProfile) ToEnvironmentProfileOutputWithContext(ctx context.Context) EnvironmentProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentProfileOutput) +} + +// EnvironmentProfileArrayInput is an input type that accepts EnvironmentProfileArray and EnvironmentProfileArrayOutput values. +// You can construct a concrete instance of `EnvironmentProfileArrayInput` via: +// +// EnvironmentProfileArray{ EnvironmentProfileArgs{...} } +type EnvironmentProfileArrayInput interface { + pulumi.Input + + ToEnvironmentProfileArrayOutput() EnvironmentProfileArrayOutput + ToEnvironmentProfileArrayOutputWithContext(context.Context) EnvironmentProfileArrayOutput +} + +type EnvironmentProfileArray []EnvironmentProfileInput + +func (EnvironmentProfileArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentProfile)(nil)).Elem() +} + +func (i EnvironmentProfileArray) ToEnvironmentProfileArrayOutput() EnvironmentProfileArrayOutput { + return i.ToEnvironmentProfileArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentProfileArray) ToEnvironmentProfileArrayOutputWithContext(ctx context.Context) EnvironmentProfileArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentProfileArrayOutput) +} + +// EnvironmentProfileMapInput is an input type that accepts EnvironmentProfileMap and EnvironmentProfileMapOutput values. +// You can construct a concrete instance of `EnvironmentProfileMapInput` via: +// +// EnvironmentProfileMap{ "key": EnvironmentProfileArgs{...} } +type EnvironmentProfileMapInput interface { + pulumi.Input + + ToEnvironmentProfileMapOutput() EnvironmentProfileMapOutput + ToEnvironmentProfileMapOutputWithContext(context.Context) EnvironmentProfileMapOutput +} + +type EnvironmentProfileMap map[string]EnvironmentProfileInput + +func (EnvironmentProfileMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentProfile)(nil)).Elem() +} + +func (i EnvironmentProfileMap) ToEnvironmentProfileMapOutput() EnvironmentProfileMapOutput { + return i.ToEnvironmentProfileMapOutputWithContext(context.Background()) +} + +func (i EnvironmentProfileMap) ToEnvironmentProfileMapOutputWithContext(ctx context.Context) EnvironmentProfileMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentProfileMapOutput) +} + +type EnvironmentProfileOutput struct{ *pulumi.OutputState } + +func (EnvironmentProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentProfile)(nil)).Elem() +} + +func (o EnvironmentProfileOutput) ToEnvironmentProfileOutput() EnvironmentProfileOutput { + return o +} + +func (o EnvironmentProfileOutput) ToEnvironmentProfileOutputWithContext(ctx context.Context) EnvironmentProfileOutput { + return o +} + +// Id of the AWS account being used. +func (o EnvironmentProfileOutput) AwsAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.AwsAccountId }).(pulumi.StringOutput) +} + +// Desired region for environment profile. +func (o EnvironmentProfileOutput) AwsAccountRegion() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.AwsAccountRegion }).(pulumi.StringOutput) +} + +// Creation time of environment profile. +func (o EnvironmentProfileOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Creator of environment profile. +func (o EnvironmentProfileOutput) CreatedBy() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.CreatedBy }).(pulumi.StringOutput) +} + +// Description of environment profile. +func (o EnvironmentProfileOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// Domain Identifier for environment profile. +func (o EnvironmentProfileOutput) DomainIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.DomainIdentifier }).(pulumi.StringOutput) +} + +// ID of the blueprint which the environment will be created with. +func (o EnvironmentProfileOutput) EnvironmentBlueprintIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.EnvironmentBlueprintIdentifier }).(pulumi.StringOutput) +} + +// Name of the environment profile. +func (o EnvironmentProfileOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Project identifier for environment profile. +// +// The following arguments are optional: +func (o EnvironmentProfileOutput) ProjectIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.ProjectIdentifier }).(pulumi.StringOutput) +} + +// Time of last update to environment profile. +func (o EnvironmentProfileOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentProfile) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +// Array of user parameters of the environment profile with the following attributes: +func (o EnvironmentProfileOutput) UserParameters() EnvironmentProfileUserParameterArrayOutput { + return o.ApplyT(func(v *EnvironmentProfile) EnvironmentProfileUserParameterArrayOutput { return v.UserParameters }).(EnvironmentProfileUserParameterArrayOutput) +} + +type EnvironmentProfileArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentProfileArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentProfile)(nil)).Elem() +} + +func (o EnvironmentProfileArrayOutput) ToEnvironmentProfileArrayOutput() EnvironmentProfileArrayOutput { + return o +} + +func (o EnvironmentProfileArrayOutput) ToEnvironmentProfileArrayOutputWithContext(ctx context.Context) EnvironmentProfileArrayOutput { + return o +} + +func (o EnvironmentProfileArrayOutput) Index(i pulumi.IntInput) EnvironmentProfileOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EnvironmentProfile { + return vs[0].([]*EnvironmentProfile)[vs[1].(int)] + }).(EnvironmentProfileOutput) +} + +type EnvironmentProfileMapOutput struct{ *pulumi.OutputState } + +func (EnvironmentProfileMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentProfile)(nil)).Elem() +} + +func (o EnvironmentProfileMapOutput) ToEnvironmentProfileMapOutput() EnvironmentProfileMapOutput { + return o +} + +func (o EnvironmentProfileMapOutput) ToEnvironmentProfileMapOutputWithContext(ctx context.Context) EnvironmentProfileMapOutput { + return o +} + +func (o EnvironmentProfileMapOutput) MapIndex(k pulumi.StringInput) EnvironmentProfileOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EnvironmentProfile { + return vs[0].(map[string]*EnvironmentProfile)[vs[1].(string)] + }).(EnvironmentProfileOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentProfileInput)(nil)).Elem(), &EnvironmentProfile{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentProfileArrayInput)(nil)).Elem(), EnvironmentProfileArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentProfileMapInput)(nil)).Elem(), EnvironmentProfileMap{}) + pulumi.RegisterOutputType(EnvironmentProfileOutput{}) + pulumi.RegisterOutputType(EnvironmentProfileArrayOutput{}) + pulumi.RegisterOutputType(EnvironmentProfileMapOutput{}) +} diff --git a/sdk/go/aws/datazone/formType.go b/sdk/go/aws/datazone/formType.go new file mode 100644 index 00000000000..29eb52d89dd --- /dev/null +++ b/sdk/go/aws/datazone/formType.go @@ -0,0 +1,508 @@ +// 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 datazone + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS DataZone Form Type. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "datazone.amazonaws.com", +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "cloudformation.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "datazone:*", +// "ram:*", +// "sso:*", +// "kms:*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json1 := string(tmpJSON1) +// domainExecutionRole, err := iam.NewRole(ctx, "domain_execution_role", &iam.RoleArgs{ +// Name: pulumi.String("example name"), +// AssumeRolePolicy: pulumi.String(json0), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("example name"), +// Policy: pulumi.String(json1), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// test, err := datazone.NewDomain(ctx, "test", &datazone.DomainArgs{ +// Name: pulumi.String("example name"), +// DomainExecutionRole: domainExecutionRole.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewSecurityGroup(ctx, "test", &ec2.SecurityGroupArgs{ +// Name: pulumi.String("example name"), +// }) +// if err != nil { +// return err +// } +// testProject, err := datazone.NewProject(ctx, "test", &datazone.ProjectArgs{ +// DomainIdentifier: test.ID(), +// GlossaryTerms: pulumi.StringArray{ +// pulumi.String("2N8w6XJCwZf"), +// }, +// Name: pulumi.String("example name"), +// Description: pulumi.String("desc"), +// SkipDeletionCheck: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = datazone.NewFormType(ctx, "test", &datazone.FormTypeArgs{ +// Description: pulumi.String("desc"), +// Name: pulumi.String("SageMakerModelFormType"), +// DomainIdentifier: test.ID(), +// OwningProjectIdentifier: testProject.ID(), +// Status: pulumi.String("DISABLED"), +// Model: &datazone.FormTypeModelArgs{ +// Smithy: pulumi.String(` structure SageMakerModelFormType { +// @required +// @amazon.datazone#searchable +// modelName: String +// +// @required +// modelArn: String +// +// @required +// creationTime: String +// } +// +// `), +// +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: +// +// ```sh +// $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision +// ``` +type FormType struct { + pulumi.CustomResourceState + + // Creation time of the Form Type. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Creator of the Form Type. + CreatedBy pulumi.StringOutput `pulumi:"createdBy"` + // Description of form type. Must have a length of between 1 and 2048 characters. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Identifier of the domain. + DomainIdentifier pulumi.StringOutput `pulumi:"domainIdentifier"` + Imports FormTypeImportArrayOutput `pulumi:"imports"` + // Object of the model of the form type that contains the following attributes. + Model FormTypeModelPtrOutput `pulumi:"model"` + // Name of the form type. Must be the name of the structure in smithy document. + Name pulumi.StringOutput `pulumi:"name"` + // Origin domain id of the Form Type. + OriginDomainId pulumi.StringOutput `pulumi:"originDomainId"` + // Origin project id of the Form Type. + OriginProjectId pulumi.StringOutput `pulumi:"originProjectId"` + // Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + OwningProjectIdentifier pulumi.StringOutput `pulumi:"owningProjectIdentifier"` + // Revision of the Form Type. + Revision pulumi.StringOutput `pulumi:"revision"` + Status pulumi.StringOutput `pulumi:"status"` + Timeouts FormTypeTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewFormType registers a new resource with the given unique name, arguments, and options. +func NewFormType(ctx *pulumi.Context, + name string, args *FormTypeArgs, opts ...pulumi.ResourceOption) (*FormType, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DomainIdentifier == nil { + return nil, errors.New("invalid value for required argument 'DomainIdentifier'") + } + if args.OwningProjectIdentifier == nil { + return nil, errors.New("invalid value for required argument 'OwningProjectIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource FormType + err := ctx.RegisterResource("aws:datazone/formType:FormType", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetFormType gets an existing FormType 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 GetFormType(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *FormTypeState, opts ...pulumi.ResourceOption) (*FormType, error) { + var resource FormType + err := ctx.ReadResource("aws:datazone/formType:FormType", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering FormType resources. +type formTypeState struct { + // Creation time of the Form Type. + CreatedAt *string `pulumi:"createdAt"` + // Creator of the Form Type. + CreatedBy *string `pulumi:"createdBy"` + // Description of form type. Must have a length of between 1 and 2048 characters. + Description *string `pulumi:"description"` + // Identifier of the domain. + DomainIdentifier *string `pulumi:"domainIdentifier"` + Imports []FormTypeImport `pulumi:"imports"` + // Object of the model of the form type that contains the following attributes. + Model *FormTypeModel `pulumi:"model"` + // Name of the form type. Must be the name of the structure in smithy document. + Name *string `pulumi:"name"` + // Origin domain id of the Form Type. + OriginDomainId *string `pulumi:"originDomainId"` + // Origin project id of the Form Type. + OriginProjectId *string `pulumi:"originProjectId"` + // Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + OwningProjectIdentifier *string `pulumi:"owningProjectIdentifier"` + // Revision of the Form Type. + Revision *string `pulumi:"revision"` + Status *string `pulumi:"status"` + Timeouts *FormTypeTimeouts `pulumi:"timeouts"` +} + +type FormTypeState struct { + // Creation time of the Form Type. + CreatedAt pulumi.StringPtrInput + // Creator of the Form Type. + CreatedBy pulumi.StringPtrInput + // Description of form type. Must have a length of between 1 and 2048 characters. + Description pulumi.StringPtrInput + // Identifier of the domain. + DomainIdentifier pulumi.StringPtrInput + Imports FormTypeImportArrayInput + // Object of the model of the form type that contains the following attributes. + Model FormTypeModelPtrInput + // Name of the form type. Must be the name of the structure in smithy document. + Name pulumi.StringPtrInput + // Origin domain id of the Form Type. + OriginDomainId pulumi.StringPtrInput + // Origin project id of the Form Type. + OriginProjectId pulumi.StringPtrInput + // Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + OwningProjectIdentifier pulumi.StringPtrInput + // Revision of the Form Type. + Revision pulumi.StringPtrInput + Status pulumi.StringPtrInput + Timeouts FormTypeTimeoutsPtrInput +} + +func (FormTypeState) ElementType() reflect.Type { + return reflect.TypeOf((*formTypeState)(nil)).Elem() +} + +type formTypeArgs struct { + // Description of form type. Must have a length of between 1 and 2048 characters. + Description *string `pulumi:"description"` + // Identifier of the domain. + DomainIdentifier string `pulumi:"domainIdentifier"` + // Object of the model of the form type that contains the following attributes. + Model *FormTypeModel `pulumi:"model"` + // Name of the form type. Must be the name of the structure in smithy document. + Name *string `pulumi:"name"` + // Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + OwningProjectIdentifier string `pulumi:"owningProjectIdentifier"` + Status *string `pulumi:"status"` + Timeouts *FormTypeTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a FormType resource. +type FormTypeArgs struct { + // Description of form type. Must have a length of between 1 and 2048 characters. + Description pulumi.StringPtrInput + // Identifier of the domain. + DomainIdentifier pulumi.StringInput + // Object of the model of the form type that contains the following attributes. + Model FormTypeModelPtrInput + // Name of the form type. Must be the name of the structure in smithy document. + Name pulumi.StringPtrInput + // Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + OwningProjectIdentifier pulumi.StringInput + Status pulumi.StringPtrInput + Timeouts FormTypeTimeoutsPtrInput +} + +func (FormTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*formTypeArgs)(nil)).Elem() +} + +type FormTypeInput interface { + pulumi.Input + + ToFormTypeOutput() FormTypeOutput + ToFormTypeOutputWithContext(ctx context.Context) FormTypeOutput +} + +func (*FormType) ElementType() reflect.Type { + return reflect.TypeOf((**FormType)(nil)).Elem() +} + +func (i *FormType) ToFormTypeOutput() FormTypeOutput { + return i.ToFormTypeOutputWithContext(context.Background()) +} + +func (i *FormType) ToFormTypeOutputWithContext(ctx context.Context) FormTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeOutput) +} + +// FormTypeArrayInput is an input type that accepts FormTypeArray and FormTypeArrayOutput values. +// You can construct a concrete instance of `FormTypeArrayInput` via: +// +// FormTypeArray{ FormTypeArgs{...} } +type FormTypeArrayInput interface { + pulumi.Input + + ToFormTypeArrayOutput() FormTypeArrayOutput + ToFormTypeArrayOutputWithContext(context.Context) FormTypeArrayOutput +} + +type FormTypeArray []FormTypeInput + +func (FormTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FormType)(nil)).Elem() +} + +func (i FormTypeArray) ToFormTypeArrayOutput() FormTypeArrayOutput { + return i.ToFormTypeArrayOutputWithContext(context.Background()) +} + +func (i FormTypeArray) ToFormTypeArrayOutputWithContext(ctx context.Context) FormTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeArrayOutput) +} + +// FormTypeMapInput is an input type that accepts FormTypeMap and FormTypeMapOutput values. +// You can construct a concrete instance of `FormTypeMapInput` via: +// +// FormTypeMap{ "key": FormTypeArgs{...} } +type FormTypeMapInput interface { + pulumi.Input + + ToFormTypeMapOutput() FormTypeMapOutput + ToFormTypeMapOutputWithContext(context.Context) FormTypeMapOutput +} + +type FormTypeMap map[string]FormTypeInput + +func (FormTypeMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FormType)(nil)).Elem() +} + +func (i FormTypeMap) ToFormTypeMapOutput() FormTypeMapOutput { + return i.ToFormTypeMapOutputWithContext(context.Background()) +} + +func (i FormTypeMap) ToFormTypeMapOutputWithContext(ctx context.Context) FormTypeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeMapOutput) +} + +type FormTypeOutput struct{ *pulumi.OutputState } + +func (FormTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FormType)(nil)).Elem() +} + +func (o FormTypeOutput) ToFormTypeOutput() FormTypeOutput { + return o +} + +func (o FormTypeOutput) ToFormTypeOutputWithContext(ctx context.Context) FormTypeOutput { + return o +} + +// Creation time of the Form Type. +func (o FormTypeOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Creator of the Form Type. +func (o FormTypeOutput) CreatedBy() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.CreatedBy }).(pulumi.StringOutput) +} + +// Description of form type. Must have a length of between 1 and 2048 characters. +func (o FormTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FormType) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Identifier of the domain. +func (o FormTypeOutput) DomainIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.DomainIdentifier }).(pulumi.StringOutput) +} + +func (o FormTypeOutput) Imports() FormTypeImportArrayOutput { + return o.ApplyT(func(v *FormType) FormTypeImportArrayOutput { return v.Imports }).(FormTypeImportArrayOutput) +} + +// Object of the model of the form type that contains the following attributes. +func (o FormTypeOutput) Model() FormTypeModelPtrOutput { + return o.ApplyT(func(v *FormType) FormTypeModelPtrOutput { return v.Model }).(FormTypeModelPtrOutput) +} + +// Name of the form type. Must be the name of the structure in smithy document. +func (o FormTypeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Origin domain id of the Form Type. +func (o FormTypeOutput) OriginDomainId() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.OriginDomainId }).(pulumi.StringOutput) +} + +// Origin project id of the Form Type. +func (o FormTypeOutput) OriginProjectId() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.OriginProjectId }).(pulumi.StringOutput) +} + +// Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. +func (o FormTypeOutput) OwningProjectIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.OwningProjectIdentifier }).(pulumi.StringOutput) +} + +// Revision of the Form Type. +func (o FormTypeOutput) Revision() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.Revision }).(pulumi.StringOutput) +} + +func (o FormTypeOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *FormType) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +func (o FormTypeOutput) Timeouts() FormTypeTimeoutsPtrOutput { + return o.ApplyT(func(v *FormType) FormTypeTimeoutsPtrOutput { return v.Timeouts }).(FormTypeTimeoutsPtrOutput) +} + +type FormTypeArrayOutput struct{ *pulumi.OutputState } + +func (FormTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FormType)(nil)).Elem() +} + +func (o FormTypeArrayOutput) ToFormTypeArrayOutput() FormTypeArrayOutput { + return o +} + +func (o FormTypeArrayOutput) ToFormTypeArrayOutputWithContext(ctx context.Context) FormTypeArrayOutput { + return o +} + +func (o FormTypeArrayOutput) Index(i pulumi.IntInput) FormTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FormType { + return vs[0].([]*FormType)[vs[1].(int)] + }).(FormTypeOutput) +} + +type FormTypeMapOutput struct{ *pulumi.OutputState } + +func (FormTypeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FormType)(nil)).Elem() +} + +func (o FormTypeMapOutput) ToFormTypeMapOutput() FormTypeMapOutput { + return o +} + +func (o FormTypeMapOutput) ToFormTypeMapOutputWithContext(ctx context.Context) FormTypeMapOutput { + return o +} + +func (o FormTypeMapOutput) MapIndex(k pulumi.StringInput) FormTypeOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FormType { + return vs[0].(map[string]*FormType)[vs[1].(string)] + }).(FormTypeOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeInput)(nil)).Elem(), &FormType{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeArrayInput)(nil)).Elem(), FormTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeMapInput)(nil)).Elem(), FormTypeMap{}) + pulumi.RegisterOutputType(FormTypeOutput{}) + pulumi.RegisterOutputType(FormTypeArrayOutput{}) + pulumi.RegisterOutputType(FormTypeMapOutput{}) +} diff --git a/sdk/go/aws/datazone/glossaryTerm.go b/sdk/go/aws/datazone/glossaryTerm.go new file mode 100644 index 00000000000..9295f09844e --- /dev/null +++ b/sdk/go/aws/datazone/glossaryTerm.go @@ -0,0 +1,488 @@ +// 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 datazone + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS DataZone Glossary Term. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "datazone.amazonaws.com", +// }, +// }, +// map[string]interface{}{ +// "Action": []string{ +// "sts:AssumeRole", +// "sts:TagSession", +// }, +// "Effect": "Allow", +// "Principal": map[string]interface{}{ +// "Service": "cloudformation.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "datazone:*", +// "ram:*", +// "sso:*", +// "kms:*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json1 := string(tmpJSON1) +// example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// Name: pulumi.String("example"), +// AssumeRolePolicy: pulumi.String(json0), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("example"), +// Policy: pulumi.String(json1), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// exampleDomain, err := datazone.NewDomain(ctx, "example", &datazone.DomainArgs{ +// Name: pulumi.String("example_name"), +// DomainExecutionRole: example.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewSecurityGroup(ctx, "example", &ec2.SecurityGroupArgs{ +// Name: pulumi.String("example_name"), +// }) +// if err != nil { +// return err +// } +// exampleProject, err := datazone.NewProject(ctx, "example", &datazone.ProjectArgs{ +// DomainIdentifier: exampleDomain.ID(), +// GlossaryTerms: pulumi.StringArray{ +// pulumi.String("2N8w6XJCwZf"), +// }, +// Name: pulumi.String("example"), +// SkipDeletionCheck: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// exampleGlossary, err := datazone.NewGlossary(ctx, "example", &datazone.GlossaryArgs{ +// Description: pulumi.String("description"), +// Name: pulumi.String("example"), +// OwningProjectIdentifier: exampleProject.ID(), +// Status: pulumi.String("ENABLED"), +// DomainIdentifier: exampleProject.DomainIdentifier, +// }) +// if err != nil { +// return err +// } +// _, err = datazone.NewGlossaryTerm(ctx, "example", &datazone.GlossaryTermArgs{ +// DomainIdentifier: exampleDomain.ID(), +// GlossaryIdentifier: exampleGlossary.ID(), +// Name: pulumi.String("example"), +// Status: pulumi.String("ENABLED"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: +// +// ```sh +// $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id +// ``` +type GlossaryTerm struct { + pulumi.CustomResourceState + + // Time of glossary term creation. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Creator of glossary term. + CreatedBy pulumi.StringOutput `pulumi:"createdBy"` + // Identifier of domain. + DomainIdentifier pulumi.StringPtrOutput `pulumi:"domainIdentifier"` + // Identifier of glossary. + GlossaryIdentifier pulumi.StringOutput `pulumi:"glossaryIdentifier"` + // Long description of entry. + LongDescription pulumi.StringPtrOutput `pulumi:"longDescription"` + // Name of glossary term. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // Short description of entry. + ShortDescription pulumi.StringPtrOutput `pulumi:"shortDescription"` + // If glossary term is ENABLED or DISABLED. + Status pulumi.StringPtrOutput `pulumi:"status"` + // Object classifying the term relations through the following attributes: + TermRelations GlossaryTermTermRelationsPtrOutput `pulumi:"termRelations"` + Timeouts GlossaryTermTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewGlossaryTerm registers a new resource with the given unique name, arguments, and options. +func NewGlossaryTerm(ctx *pulumi.Context, + name string, args *GlossaryTermArgs, opts ...pulumi.ResourceOption) (*GlossaryTerm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GlossaryIdentifier == nil { + return nil, errors.New("invalid value for required argument 'GlossaryIdentifier'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GlossaryTerm + err := ctx.RegisterResource("aws:datazone/glossaryTerm:GlossaryTerm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGlossaryTerm gets an existing GlossaryTerm 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 GetGlossaryTerm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GlossaryTermState, opts ...pulumi.ResourceOption) (*GlossaryTerm, error) { + var resource GlossaryTerm + err := ctx.ReadResource("aws:datazone/glossaryTerm:GlossaryTerm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GlossaryTerm resources. +type glossaryTermState struct { + // Time of glossary term creation. + CreatedAt *string `pulumi:"createdAt"` + // Creator of glossary term. + CreatedBy *string `pulumi:"createdBy"` + // Identifier of domain. + DomainIdentifier *string `pulumi:"domainIdentifier"` + // Identifier of glossary. + GlossaryIdentifier *string `pulumi:"glossaryIdentifier"` + // Long description of entry. + LongDescription *string `pulumi:"longDescription"` + // Name of glossary term. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Short description of entry. + ShortDescription *string `pulumi:"shortDescription"` + // If glossary term is ENABLED or DISABLED. + Status *string `pulumi:"status"` + // Object classifying the term relations through the following attributes: + TermRelations *GlossaryTermTermRelations `pulumi:"termRelations"` + Timeouts *GlossaryTermTimeouts `pulumi:"timeouts"` +} + +type GlossaryTermState struct { + // Time of glossary term creation. + CreatedAt pulumi.StringPtrInput + // Creator of glossary term. + CreatedBy pulumi.StringPtrInput + // Identifier of domain. + DomainIdentifier pulumi.StringPtrInput + // Identifier of glossary. + GlossaryIdentifier pulumi.StringPtrInput + // Long description of entry. + LongDescription pulumi.StringPtrInput + // Name of glossary term. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Short description of entry. + ShortDescription pulumi.StringPtrInput + // If glossary term is ENABLED or DISABLED. + Status pulumi.StringPtrInput + // Object classifying the term relations through the following attributes: + TermRelations GlossaryTermTermRelationsPtrInput + Timeouts GlossaryTermTimeoutsPtrInput +} + +func (GlossaryTermState) ElementType() reflect.Type { + return reflect.TypeOf((*glossaryTermState)(nil)).Elem() +} + +type glossaryTermArgs struct { + // Identifier of domain. + DomainIdentifier *string `pulumi:"domainIdentifier"` + // Identifier of glossary. + GlossaryIdentifier string `pulumi:"glossaryIdentifier"` + // Long description of entry. + LongDescription *string `pulumi:"longDescription"` + // Name of glossary term. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Short description of entry. + ShortDescription *string `pulumi:"shortDescription"` + // If glossary term is ENABLED or DISABLED. + Status *string `pulumi:"status"` + // Object classifying the term relations through the following attributes: + TermRelations *GlossaryTermTermRelations `pulumi:"termRelations"` + Timeouts *GlossaryTermTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a GlossaryTerm resource. +type GlossaryTermArgs struct { + // Identifier of domain. + DomainIdentifier pulumi.StringPtrInput + // Identifier of glossary. + GlossaryIdentifier pulumi.StringInput + // Long description of entry. + LongDescription pulumi.StringPtrInput + // Name of glossary term. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Short description of entry. + ShortDescription pulumi.StringPtrInput + // If glossary term is ENABLED or DISABLED. + Status pulumi.StringPtrInput + // Object classifying the term relations through the following attributes: + TermRelations GlossaryTermTermRelationsPtrInput + Timeouts GlossaryTermTimeoutsPtrInput +} + +func (GlossaryTermArgs) ElementType() reflect.Type { + return reflect.TypeOf((*glossaryTermArgs)(nil)).Elem() +} + +type GlossaryTermInput interface { + pulumi.Input + + ToGlossaryTermOutput() GlossaryTermOutput + ToGlossaryTermOutputWithContext(ctx context.Context) GlossaryTermOutput +} + +func (*GlossaryTerm) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTerm)(nil)).Elem() +} + +func (i *GlossaryTerm) ToGlossaryTermOutput() GlossaryTermOutput { + return i.ToGlossaryTermOutputWithContext(context.Background()) +} + +func (i *GlossaryTerm) ToGlossaryTermOutputWithContext(ctx context.Context) GlossaryTermOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermOutput) +} + +// GlossaryTermArrayInput is an input type that accepts GlossaryTermArray and GlossaryTermArrayOutput values. +// You can construct a concrete instance of `GlossaryTermArrayInput` via: +// +// GlossaryTermArray{ GlossaryTermArgs{...} } +type GlossaryTermArrayInput interface { + pulumi.Input + + ToGlossaryTermArrayOutput() GlossaryTermArrayOutput + ToGlossaryTermArrayOutputWithContext(context.Context) GlossaryTermArrayOutput +} + +type GlossaryTermArray []GlossaryTermInput + +func (GlossaryTermArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GlossaryTerm)(nil)).Elem() +} + +func (i GlossaryTermArray) ToGlossaryTermArrayOutput() GlossaryTermArrayOutput { + return i.ToGlossaryTermArrayOutputWithContext(context.Background()) +} + +func (i GlossaryTermArray) ToGlossaryTermArrayOutputWithContext(ctx context.Context) GlossaryTermArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermArrayOutput) +} + +// GlossaryTermMapInput is an input type that accepts GlossaryTermMap and GlossaryTermMapOutput values. +// You can construct a concrete instance of `GlossaryTermMapInput` via: +// +// GlossaryTermMap{ "key": GlossaryTermArgs{...} } +type GlossaryTermMapInput interface { + pulumi.Input + + ToGlossaryTermMapOutput() GlossaryTermMapOutput + ToGlossaryTermMapOutputWithContext(context.Context) GlossaryTermMapOutput +} + +type GlossaryTermMap map[string]GlossaryTermInput + +func (GlossaryTermMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GlossaryTerm)(nil)).Elem() +} + +func (i GlossaryTermMap) ToGlossaryTermMapOutput() GlossaryTermMapOutput { + return i.ToGlossaryTermMapOutputWithContext(context.Background()) +} + +func (i GlossaryTermMap) ToGlossaryTermMapOutputWithContext(ctx context.Context) GlossaryTermMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermMapOutput) +} + +type GlossaryTermOutput struct{ *pulumi.OutputState } + +func (GlossaryTermOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTerm)(nil)).Elem() +} + +func (o GlossaryTermOutput) ToGlossaryTermOutput() GlossaryTermOutput { + return o +} + +func (o GlossaryTermOutput) ToGlossaryTermOutputWithContext(ctx context.Context) GlossaryTermOutput { + return o +} + +// Time of glossary term creation. +func (o GlossaryTermOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Creator of glossary term. +func (o GlossaryTermOutput) CreatedBy() pulumi.StringOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringOutput { return v.CreatedBy }).(pulumi.StringOutput) +} + +// Identifier of domain. +func (o GlossaryTermOutput) DomainIdentifier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringPtrOutput { return v.DomainIdentifier }).(pulumi.StringPtrOutput) +} + +// Identifier of glossary. +func (o GlossaryTermOutput) GlossaryIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringOutput { return v.GlossaryIdentifier }).(pulumi.StringOutput) +} + +// Long description of entry. +func (o GlossaryTermOutput) LongDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringPtrOutput { return v.LongDescription }).(pulumi.StringPtrOutput) +} + +// Name of glossary term. +// +// The following arguments are optional: +func (o GlossaryTermOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Short description of entry. +func (o GlossaryTermOutput) ShortDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringPtrOutput { return v.ShortDescription }).(pulumi.StringPtrOutput) +} + +// If glossary term is ENABLED or DISABLED. +func (o GlossaryTermOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// Object classifying the term relations through the following attributes: +func (o GlossaryTermOutput) TermRelations() GlossaryTermTermRelationsPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) GlossaryTermTermRelationsPtrOutput { return v.TermRelations }).(GlossaryTermTermRelationsPtrOutput) +} + +func (o GlossaryTermOutput) Timeouts() GlossaryTermTimeoutsPtrOutput { + return o.ApplyT(func(v *GlossaryTerm) GlossaryTermTimeoutsPtrOutput { return v.Timeouts }).(GlossaryTermTimeoutsPtrOutput) +} + +type GlossaryTermArrayOutput struct{ *pulumi.OutputState } + +func (GlossaryTermArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GlossaryTerm)(nil)).Elem() +} + +func (o GlossaryTermArrayOutput) ToGlossaryTermArrayOutput() GlossaryTermArrayOutput { + return o +} + +func (o GlossaryTermArrayOutput) ToGlossaryTermArrayOutputWithContext(ctx context.Context) GlossaryTermArrayOutput { + return o +} + +func (o GlossaryTermArrayOutput) Index(i pulumi.IntInput) GlossaryTermOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GlossaryTerm { + return vs[0].([]*GlossaryTerm)[vs[1].(int)] + }).(GlossaryTermOutput) +} + +type GlossaryTermMapOutput struct{ *pulumi.OutputState } + +func (GlossaryTermMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GlossaryTerm)(nil)).Elem() +} + +func (o GlossaryTermMapOutput) ToGlossaryTermMapOutput() GlossaryTermMapOutput { + return o +} + +func (o GlossaryTermMapOutput) ToGlossaryTermMapOutputWithContext(ctx context.Context) GlossaryTermMapOutput { + return o +} + +func (o GlossaryTermMapOutput) MapIndex(k pulumi.StringInput) GlossaryTermOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GlossaryTerm { + return vs[0].(map[string]*GlossaryTerm)[vs[1].(string)] + }).(GlossaryTermOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermInput)(nil)).Elem(), &GlossaryTerm{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermArrayInput)(nil)).Elem(), GlossaryTermArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermMapInput)(nil)).Elem(), GlossaryTermMap{}) + pulumi.RegisterOutputType(GlossaryTermOutput{}) + pulumi.RegisterOutputType(GlossaryTermArrayOutput{}) + pulumi.RegisterOutputType(GlossaryTermMapOutput{}) +} diff --git a/sdk/go/aws/datazone/init.go b/sdk/go/aws/datazone/init.go index 75a85fa261d..175c019244d 100644 --- a/sdk/go/aws/datazone/init.go +++ b/sdk/go/aws/datazone/init.go @@ -25,8 +25,14 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Domain{} case "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": r = &EnvironmentBlueprintConfiguration{} + case "aws:datazone/environmentProfile:EnvironmentProfile": + r = &EnvironmentProfile{} + case "aws:datazone/formType:FormType": + r = &FormType{} case "aws:datazone/glossary:Glossary": r = &Glossary{} + case "aws:datazone/glossaryTerm:GlossaryTerm": + r = &GlossaryTerm{} case "aws:datazone/project:Project": r = &Project{} default: @@ -52,11 +58,26 @@ func init() { "datazone/environmentBlueprintConfiguration", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "datazone/environmentProfile", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "datazone/formType", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "datazone/glossary", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "datazone/glossaryTerm", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "datazone/project", diff --git a/sdk/go/aws/datazone/pulumiTypes.go b/sdk/go/aws/datazone/pulumiTypes.go index 136a82f3bf7..a9ae26c27be 100644 --- a/sdk/go/aws/datazone/pulumiTypes.go +++ b/sdk/go/aws/datazone/pulumiTypes.go @@ -317,6 +317,789 @@ func (o DomainTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type EnvironmentProfileUserParameter struct { + // Name of the environment profile parameter. + Name *string `pulumi:"name"` + // Value of the environment profile parameter. + Value *string `pulumi:"value"` +} + +// EnvironmentProfileUserParameterInput is an input type that accepts EnvironmentProfileUserParameterArgs and EnvironmentProfileUserParameterOutput values. +// You can construct a concrete instance of `EnvironmentProfileUserParameterInput` via: +// +// EnvironmentProfileUserParameterArgs{...} +type EnvironmentProfileUserParameterInput interface { + pulumi.Input + + ToEnvironmentProfileUserParameterOutput() EnvironmentProfileUserParameterOutput + ToEnvironmentProfileUserParameterOutputWithContext(context.Context) EnvironmentProfileUserParameterOutput +} + +type EnvironmentProfileUserParameterArgs struct { + // Name of the environment profile parameter. + Name pulumi.StringPtrInput `pulumi:"name"` + // Value of the environment profile parameter. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EnvironmentProfileUserParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentProfileUserParameter)(nil)).Elem() +} + +func (i EnvironmentProfileUserParameterArgs) ToEnvironmentProfileUserParameterOutput() EnvironmentProfileUserParameterOutput { + return i.ToEnvironmentProfileUserParameterOutputWithContext(context.Background()) +} + +func (i EnvironmentProfileUserParameterArgs) ToEnvironmentProfileUserParameterOutputWithContext(ctx context.Context) EnvironmentProfileUserParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentProfileUserParameterOutput) +} + +// EnvironmentProfileUserParameterArrayInput is an input type that accepts EnvironmentProfileUserParameterArray and EnvironmentProfileUserParameterArrayOutput values. +// You can construct a concrete instance of `EnvironmentProfileUserParameterArrayInput` via: +// +// EnvironmentProfileUserParameterArray{ EnvironmentProfileUserParameterArgs{...} } +type EnvironmentProfileUserParameterArrayInput interface { + pulumi.Input + + ToEnvironmentProfileUserParameterArrayOutput() EnvironmentProfileUserParameterArrayOutput + ToEnvironmentProfileUserParameterArrayOutputWithContext(context.Context) EnvironmentProfileUserParameterArrayOutput +} + +type EnvironmentProfileUserParameterArray []EnvironmentProfileUserParameterInput + +func (EnvironmentProfileUserParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EnvironmentProfileUserParameter)(nil)).Elem() +} + +func (i EnvironmentProfileUserParameterArray) ToEnvironmentProfileUserParameterArrayOutput() EnvironmentProfileUserParameterArrayOutput { + return i.ToEnvironmentProfileUserParameterArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentProfileUserParameterArray) ToEnvironmentProfileUserParameterArrayOutputWithContext(ctx context.Context) EnvironmentProfileUserParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentProfileUserParameterArrayOutput) +} + +type EnvironmentProfileUserParameterOutput struct{ *pulumi.OutputState } + +func (EnvironmentProfileUserParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentProfileUserParameter)(nil)).Elem() +} + +func (o EnvironmentProfileUserParameterOutput) ToEnvironmentProfileUserParameterOutput() EnvironmentProfileUserParameterOutput { + return o +} + +func (o EnvironmentProfileUserParameterOutput) ToEnvironmentProfileUserParameterOutputWithContext(ctx context.Context) EnvironmentProfileUserParameterOutput { + return o +} + +// Name of the environment profile parameter. +func (o EnvironmentProfileUserParameterOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentProfileUserParameter) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Value of the environment profile parameter. +func (o EnvironmentProfileUserParameterOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentProfileUserParameter) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EnvironmentProfileUserParameterArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentProfileUserParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EnvironmentProfileUserParameter)(nil)).Elem() +} + +func (o EnvironmentProfileUserParameterArrayOutput) ToEnvironmentProfileUserParameterArrayOutput() EnvironmentProfileUserParameterArrayOutput { + return o +} + +func (o EnvironmentProfileUserParameterArrayOutput) ToEnvironmentProfileUserParameterArrayOutputWithContext(ctx context.Context) EnvironmentProfileUserParameterArrayOutput { + return o +} + +func (o EnvironmentProfileUserParameterArrayOutput) Index(i pulumi.IntInput) EnvironmentProfileUserParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EnvironmentProfileUserParameter { + return vs[0].([]EnvironmentProfileUserParameter)[vs[1].(int)] + }).(EnvironmentProfileUserParameterOutput) +} + +type FormTypeImport struct { + // Name of the form type. Must be the name of the structure in smithy document. + Name string `pulumi:"name"` + // Revision of the Form Type. + Revision string `pulumi:"revision"` +} + +// FormTypeImportInput is an input type that accepts FormTypeImportArgs and FormTypeImportOutput values. +// You can construct a concrete instance of `FormTypeImportInput` via: +// +// FormTypeImportArgs{...} +type FormTypeImportInput interface { + pulumi.Input + + ToFormTypeImportOutput() FormTypeImportOutput + ToFormTypeImportOutputWithContext(context.Context) FormTypeImportOutput +} + +type FormTypeImportArgs struct { + // Name of the form type. Must be the name of the structure in smithy document. + Name pulumi.StringInput `pulumi:"name"` + // Revision of the Form Type. + Revision pulumi.StringInput `pulumi:"revision"` +} + +func (FormTypeImportArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeImport)(nil)).Elem() +} + +func (i FormTypeImportArgs) ToFormTypeImportOutput() FormTypeImportOutput { + return i.ToFormTypeImportOutputWithContext(context.Background()) +} + +func (i FormTypeImportArgs) ToFormTypeImportOutputWithContext(ctx context.Context) FormTypeImportOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeImportOutput) +} + +// FormTypeImportArrayInput is an input type that accepts FormTypeImportArray and FormTypeImportArrayOutput values. +// You can construct a concrete instance of `FormTypeImportArrayInput` via: +// +// FormTypeImportArray{ FormTypeImportArgs{...} } +type FormTypeImportArrayInput interface { + pulumi.Input + + ToFormTypeImportArrayOutput() FormTypeImportArrayOutput + ToFormTypeImportArrayOutputWithContext(context.Context) FormTypeImportArrayOutput +} + +type FormTypeImportArray []FormTypeImportInput + +func (FormTypeImportArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]FormTypeImport)(nil)).Elem() +} + +func (i FormTypeImportArray) ToFormTypeImportArrayOutput() FormTypeImportArrayOutput { + return i.ToFormTypeImportArrayOutputWithContext(context.Background()) +} + +func (i FormTypeImportArray) ToFormTypeImportArrayOutputWithContext(ctx context.Context) FormTypeImportArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeImportArrayOutput) +} + +type FormTypeImportOutput struct{ *pulumi.OutputState } + +func (FormTypeImportOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeImport)(nil)).Elem() +} + +func (o FormTypeImportOutput) ToFormTypeImportOutput() FormTypeImportOutput { + return o +} + +func (o FormTypeImportOutput) ToFormTypeImportOutputWithContext(ctx context.Context) FormTypeImportOutput { + return o +} + +// Name of the form type. Must be the name of the structure in smithy document. +func (o FormTypeImportOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v FormTypeImport) string { return v.Name }).(pulumi.StringOutput) +} + +// Revision of the Form Type. +func (o FormTypeImportOutput) Revision() pulumi.StringOutput { + return o.ApplyT(func(v FormTypeImport) string { return v.Revision }).(pulumi.StringOutput) +} + +type FormTypeImportArrayOutput struct{ *pulumi.OutputState } + +func (FormTypeImportArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]FormTypeImport)(nil)).Elem() +} + +func (o FormTypeImportArrayOutput) ToFormTypeImportArrayOutput() FormTypeImportArrayOutput { + return o +} + +func (o FormTypeImportArrayOutput) ToFormTypeImportArrayOutputWithContext(ctx context.Context) FormTypeImportArrayOutput { + return o +} + +func (o FormTypeImportArrayOutput) Index(i pulumi.IntInput) FormTypeImportOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) FormTypeImport { + return vs[0].([]FormTypeImport)[vs[1].(int)] + }).(FormTypeImportOutput) +} + +type FormTypeModel struct { + // Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + // + // The following arguments are optional: + Smithy string `pulumi:"smithy"` +} + +// FormTypeModelInput is an input type that accepts FormTypeModelArgs and FormTypeModelOutput values. +// You can construct a concrete instance of `FormTypeModelInput` via: +// +// FormTypeModelArgs{...} +type FormTypeModelInput interface { + pulumi.Input + + ToFormTypeModelOutput() FormTypeModelOutput + ToFormTypeModelOutputWithContext(context.Context) FormTypeModelOutput +} + +type FormTypeModelArgs struct { + // Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + // + // The following arguments are optional: + Smithy pulumi.StringInput `pulumi:"smithy"` +} + +func (FormTypeModelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeModel)(nil)).Elem() +} + +func (i FormTypeModelArgs) ToFormTypeModelOutput() FormTypeModelOutput { + return i.ToFormTypeModelOutputWithContext(context.Background()) +} + +func (i FormTypeModelArgs) ToFormTypeModelOutputWithContext(ctx context.Context) FormTypeModelOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeModelOutput) +} + +func (i FormTypeModelArgs) ToFormTypeModelPtrOutput() FormTypeModelPtrOutput { + return i.ToFormTypeModelPtrOutputWithContext(context.Background()) +} + +func (i FormTypeModelArgs) ToFormTypeModelPtrOutputWithContext(ctx context.Context) FormTypeModelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeModelOutput).ToFormTypeModelPtrOutputWithContext(ctx) +} + +// FormTypeModelPtrInput is an input type that accepts FormTypeModelArgs, FormTypeModelPtr and FormTypeModelPtrOutput values. +// You can construct a concrete instance of `FormTypeModelPtrInput` via: +// +// FormTypeModelArgs{...} +// +// or: +// +// nil +type FormTypeModelPtrInput interface { + pulumi.Input + + ToFormTypeModelPtrOutput() FormTypeModelPtrOutput + ToFormTypeModelPtrOutputWithContext(context.Context) FormTypeModelPtrOutput +} + +type formTypeModelPtrType FormTypeModelArgs + +func FormTypeModelPtr(v *FormTypeModelArgs) FormTypeModelPtrInput { + return (*formTypeModelPtrType)(v) +} + +func (*formTypeModelPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FormTypeModel)(nil)).Elem() +} + +func (i *formTypeModelPtrType) ToFormTypeModelPtrOutput() FormTypeModelPtrOutput { + return i.ToFormTypeModelPtrOutputWithContext(context.Background()) +} + +func (i *formTypeModelPtrType) ToFormTypeModelPtrOutputWithContext(ctx context.Context) FormTypeModelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeModelPtrOutput) +} + +type FormTypeModelOutput struct{ *pulumi.OutputState } + +func (FormTypeModelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeModel)(nil)).Elem() +} + +func (o FormTypeModelOutput) ToFormTypeModelOutput() FormTypeModelOutput { + return o +} + +func (o FormTypeModelOutput) ToFormTypeModelOutputWithContext(ctx context.Context) FormTypeModelOutput { + return o +} + +func (o FormTypeModelOutput) ToFormTypeModelPtrOutput() FormTypeModelPtrOutput { + return o.ToFormTypeModelPtrOutputWithContext(context.Background()) +} + +func (o FormTypeModelOutput) ToFormTypeModelPtrOutputWithContext(ctx context.Context) FormTypeModelPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FormTypeModel) *FormTypeModel { + return &v + }).(FormTypeModelPtrOutput) +} + +// Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. +// +// The following arguments are optional: +func (o FormTypeModelOutput) Smithy() pulumi.StringOutput { + return o.ApplyT(func(v FormTypeModel) string { return v.Smithy }).(pulumi.StringOutput) +} + +type FormTypeModelPtrOutput struct{ *pulumi.OutputState } + +func (FormTypeModelPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FormTypeModel)(nil)).Elem() +} + +func (o FormTypeModelPtrOutput) ToFormTypeModelPtrOutput() FormTypeModelPtrOutput { + return o +} + +func (o FormTypeModelPtrOutput) ToFormTypeModelPtrOutputWithContext(ctx context.Context) FormTypeModelPtrOutput { + return o +} + +func (o FormTypeModelPtrOutput) Elem() FormTypeModelOutput { + return o.ApplyT(func(v *FormTypeModel) FormTypeModel { + if v != nil { + return *v + } + var ret FormTypeModel + return ret + }).(FormTypeModelOutput) +} + +// Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. +// +// The following arguments are optional: +func (o FormTypeModelPtrOutput) Smithy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FormTypeModel) *string { + if v == nil { + return nil + } + return &v.Smithy + }).(pulumi.StringPtrOutput) +} + +type FormTypeTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` +} + +// FormTypeTimeoutsInput is an input type that accepts FormTypeTimeoutsArgs and FormTypeTimeoutsOutput values. +// You can construct a concrete instance of `FormTypeTimeoutsInput` via: +// +// FormTypeTimeoutsArgs{...} +type FormTypeTimeoutsInput interface { + pulumi.Input + + ToFormTypeTimeoutsOutput() FormTypeTimeoutsOutput + ToFormTypeTimeoutsOutputWithContext(context.Context) FormTypeTimeoutsOutput +} + +type FormTypeTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` +} + +func (FormTypeTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeTimeouts)(nil)).Elem() +} + +func (i FormTypeTimeoutsArgs) ToFormTypeTimeoutsOutput() FormTypeTimeoutsOutput { + return i.ToFormTypeTimeoutsOutputWithContext(context.Background()) +} + +func (i FormTypeTimeoutsArgs) ToFormTypeTimeoutsOutputWithContext(ctx context.Context) FormTypeTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeTimeoutsOutput) +} + +func (i FormTypeTimeoutsArgs) ToFormTypeTimeoutsPtrOutput() FormTypeTimeoutsPtrOutput { + return i.ToFormTypeTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i FormTypeTimeoutsArgs) ToFormTypeTimeoutsPtrOutputWithContext(ctx context.Context) FormTypeTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeTimeoutsOutput).ToFormTypeTimeoutsPtrOutputWithContext(ctx) +} + +// FormTypeTimeoutsPtrInput is an input type that accepts FormTypeTimeoutsArgs, FormTypeTimeoutsPtr and FormTypeTimeoutsPtrOutput values. +// You can construct a concrete instance of `FormTypeTimeoutsPtrInput` via: +// +// FormTypeTimeoutsArgs{...} +// +// or: +// +// nil +type FormTypeTimeoutsPtrInput interface { + pulumi.Input + + ToFormTypeTimeoutsPtrOutput() FormTypeTimeoutsPtrOutput + ToFormTypeTimeoutsPtrOutputWithContext(context.Context) FormTypeTimeoutsPtrOutput +} + +type formTypeTimeoutsPtrType FormTypeTimeoutsArgs + +func FormTypeTimeoutsPtr(v *FormTypeTimeoutsArgs) FormTypeTimeoutsPtrInput { + return (*formTypeTimeoutsPtrType)(v) +} + +func (*formTypeTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FormTypeTimeouts)(nil)).Elem() +} + +func (i *formTypeTimeoutsPtrType) ToFormTypeTimeoutsPtrOutput() FormTypeTimeoutsPtrOutput { + return i.ToFormTypeTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *formTypeTimeoutsPtrType) ToFormTypeTimeoutsPtrOutputWithContext(ctx context.Context) FormTypeTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FormTypeTimeoutsPtrOutput) +} + +type FormTypeTimeoutsOutput struct{ *pulumi.OutputState } + +func (FormTypeTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FormTypeTimeouts)(nil)).Elem() +} + +func (o FormTypeTimeoutsOutput) ToFormTypeTimeoutsOutput() FormTypeTimeoutsOutput { + return o +} + +func (o FormTypeTimeoutsOutput) ToFormTypeTimeoutsOutputWithContext(ctx context.Context) FormTypeTimeoutsOutput { + return o +} + +func (o FormTypeTimeoutsOutput) ToFormTypeTimeoutsPtrOutput() FormTypeTimeoutsPtrOutput { + return o.ToFormTypeTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o FormTypeTimeoutsOutput) ToFormTypeTimeoutsPtrOutputWithContext(ctx context.Context) FormTypeTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FormTypeTimeouts) *FormTypeTimeouts { + return &v + }).(FormTypeTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o FormTypeTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v FormTypeTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +type FormTypeTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (FormTypeTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FormTypeTimeouts)(nil)).Elem() +} + +func (o FormTypeTimeoutsPtrOutput) ToFormTypeTimeoutsPtrOutput() FormTypeTimeoutsPtrOutput { + return o +} + +func (o FormTypeTimeoutsPtrOutput) ToFormTypeTimeoutsPtrOutputWithContext(ctx context.Context) FormTypeTimeoutsPtrOutput { + return o +} + +func (o FormTypeTimeoutsPtrOutput) Elem() FormTypeTimeoutsOutput { + return o.ApplyT(func(v *FormTypeTimeouts) FormTypeTimeouts { + if v != nil { + return *v + } + var ret FormTypeTimeouts + return ret + }).(FormTypeTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o FormTypeTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FormTypeTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +type GlossaryTermTermRelations struct { + // String array that calssifies the term relations. + Classifies []string `pulumi:"classifies"` + IsAs []string `pulumi:"isAs"` +} + +// GlossaryTermTermRelationsInput is an input type that accepts GlossaryTermTermRelationsArgs and GlossaryTermTermRelationsOutput values. +// You can construct a concrete instance of `GlossaryTermTermRelationsInput` via: +// +// GlossaryTermTermRelationsArgs{...} +type GlossaryTermTermRelationsInput interface { + pulumi.Input + + ToGlossaryTermTermRelationsOutput() GlossaryTermTermRelationsOutput + ToGlossaryTermTermRelationsOutputWithContext(context.Context) GlossaryTermTermRelationsOutput +} + +type GlossaryTermTermRelationsArgs struct { + // String array that calssifies the term relations. + Classifies pulumi.StringArrayInput `pulumi:"classifies"` + IsAs pulumi.StringArrayInput `pulumi:"isAs"` +} + +func (GlossaryTermTermRelationsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GlossaryTermTermRelations)(nil)).Elem() +} + +func (i GlossaryTermTermRelationsArgs) ToGlossaryTermTermRelationsOutput() GlossaryTermTermRelationsOutput { + return i.ToGlossaryTermTermRelationsOutputWithContext(context.Background()) +} + +func (i GlossaryTermTermRelationsArgs) ToGlossaryTermTermRelationsOutputWithContext(ctx context.Context) GlossaryTermTermRelationsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTermRelationsOutput) +} + +func (i GlossaryTermTermRelationsArgs) ToGlossaryTermTermRelationsPtrOutput() GlossaryTermTermRelationsPtrOutput { + return i.ToGlossaryTermTermRelationsPtrOutputWithContext(context.Background()) +} + +func (i GlossaryTermTermRelationsArgs) ToGlossaryTermTermRelationsPtrOutputWithContext(ctx context.Context) GlossaryTermTermRelationsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTermRelationsOutput).ToGlossaryTermTermRelationsPtrOutputWithContext(ctx) +} + +// GlossaryTermTermRelationsPtrInput is an input type that accepts GlossaryTermTermRelationsArgs, GlossaryTermTermRelationsPtr and GlossaryTermTermRelationsPtrOutput values. +// You can construct a concrete instance of `GlossaryTermTermRelationsPtrInput` via: +// +// GlossaryTermTermRelationsArgs{...} +// +// or: +// +// nil +type GlossaryTermTermRelationsPtrInput interface { + pulumi.Input + + ToGlossaryTermTermRelationsPtrOutput() GlossaryTermTermRelationsPtrOutput + ToGlossaryTermTermRelationsPtrOutputWithContext(context.Context) GlossaryTermTermRelationsPtrOutput +} + +type glossaryTermTermRelationsPtrType GlossaryTermTermRelationsArgs + +func GlossaryTermTermRelationsPtr(v *GlossaryTermTermRelationsArgs) GlossaryTermTermRelationsPtrInput { + return (*glossaryTermTermRelationsPtrType)(v) +} + +func (*glossaryTermTermRelationsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTermTermRelations)(nil)).Elem() +} + +func (i *glossaryTermTermRelationsPtrType) ToGlossaryTermTermRelationsPtrOutput() GlossaryTermTermRelationsPtrOutput { + return i.ToGlossaryTermTermRelationsPtrOutputWithContext(context.Background()) +} + +func (i *glossaryTermTermRelationsPtrType) ToGlossaryTermTermRelationsPtrOutputWithContext(ctx context.Context) GlossaryTermTermRelationsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTermRelationsPtrOutput) +} + +type GlossaryTermTermRelationsOutput struct{ *pulumi.OutputState } + +func (GlossaryTermTermRelationsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GlossaryTermTermRelations)(nil)).Elem() +} + +func (o GlossaryTermTermRelationsOutput) ToGlossaryTermTermRelationsOutput() GlossaryTermTermRelationsOutput { + return o +} + +func (o GlossaryTermTermRelationsOutput) ToGlossaryTermTermRelationsOutputWithContext(ctx context.Context) GlossaryTermTermRelationsOutput { + return o +} + +func (o GlossaryTermTermRelationsOutput) ToGlossaryTermTermRelationsPtrOutput() GlossaryTermTermRelationsPtrOutput { + return o.ToGlossaryTermTermRelationsPtrOutputWithContext(context.Background()) +} + +func (o GlossaryTermTermRelationsOutput) ToGlossaryTermTermRelationsPtrOutputWithContext(ctx context.Context) GlossaryTermTermRelationsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GlossaryTermTermRelations) *GlossaryTermTermRelations { + return &v + }).(GlossaryTermTermRelationsPtrOutput) +} + +// String array that calssifies the term relations. +func (o GlossaryTermTermRelationsOutput) Classifies() pulumi.StringArrayOutput { + return o.ApplyT(func(v GlossaryTermTermRelations) []string { return v.Classifies }).(pulumi.StringArrayOutput) +} + +func (o GlossaryTermTermRelationsOutput) IsAs() pulumi.StringArrayOutput { + return o.ApplyT(func(v GlossaryTermTermRelations) []string { return v.IsAs }).(pulumi.StringArrayOutput) +} + +type GlossaryTermTermRelationsPtrOutput struct{ *pulumi.OutputState } + +func (GlossaryTermTermRelationsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTermTermRelations)(nil)).Elem() +} + +func (o GlossaryTermTermRelationsPtrOutput) ToGlossaryTermTermRelationsPtrOutput() GlossaryTermTermRelationsPtrOutput { + return o +} + +func (o GlossaryTermTermRelationsPtrOutput) ToGlossaryTermTermRelationsPtrOutputWithContext(ctx context.Context) GlossaryTermTermRelationsPtrOutput { + return o +} + +func (o GlossaryTermTermRelationsPtrOutput) Elem() GlossaryTermTermRelationsOutput { + return o.ApplyT(func(v *GlossaryTermTermRelations) GlossaryTermTermRelations { + if v != nil { + return *v + } + var ret GlossaryTermTermRelations + return ret + }).(GlossaryTermTermRelationsOutput) +} + +// String array that calssifies the term relations. +func (o GlossaryTermTermRelationsPtrOutput) Classifies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GlossaryTermTermRelations) []string { + if v == nil { + return nil + } + return v.Classifies + }).(pulumi.StringArrayOutput) +} + +func (o GlossaryTermTermRelationsPtrOutput) IsAs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GlossaryTermTermRelations) []string { + if v == nil { + return nil + } + return v.IsAs + }).(pulumi.StringArrayOutput) +} + +type GlossaryTermTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` +} + +// GlossaryTermTimeoutsInput is an input type that accepts GlossaryTermTimeoutsArgs and GlossaryTermTimeoutsOutput values. +// You can construct a concrete instance of `GlossaryTermTimeoutsInput` via: +// +// GlossaryTermTimeoutsArgs{...} +type GlossaryTermTimeoutsInput interface { + pulumi.Input + + ToGlossaryTermTimeoutsOutput() GlossaryTermTimeoutsOutput + ToGlossaryTermTimeoutsOutputWithContext(context.Context) GlossaryTermTimeoutsOutput +} + +type GlossaryTermTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` +} + +func (GlossaryTermTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GlossaryTermTimeouts)(nil)).Elem() +} + +func (i GlossaryTermTimeoutsArgs) ToGlossaryTermTimeoutsOutput() GlossaryTermTimeoutsOutput { + return i.ToGlossaryTermTimeoutsOutputWithContext(context.Background()) +} + +func (i GlossaryTermTimeoutsArgs) ToGlossaryTermTimeoutsOutputWithContext(ctx context.Context) GlossaryTermTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTimeoutsOutput) +} + +func (i GlossaryTermTimeoutsArgs) ToGlossaryTermTimeoutsPtrOutput() GlossaryTermTimeoutsPtrOutput { + return i.ToGlossaryTermTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i GlossaryTermTimeoutsArgs) ToGlossaryTermTimeoutsPtrOutputWithContext(ctx context.Context) GlossaryTermTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTimeoutsOutput).ToGlossaryTermTimeoutsPtrOutputWithContext(ctx) +} + +// GlossaryTermTimeoutsPtrInput is an input type that accepts GlossaryTermTimeoutsArgs, GlossaryTermTimeoutsPtr and GlossaryTermTimeoutsPtrOutput values. +// You can construct a concrete instance of `GlossaryTermTimeoutsPtrInput` via: +// +// GlossaryTermTimeoutsArgs{...} +// +// or: +// +// nil +type GlossaryTermTimeoutsPtrInput interface { + pulumi.Input + + ToGlossaryTermTimeoutsPtrOutput() GlossaryTermTimeoutsPtrOutput + ToGlossaryTermTimeoutsPtrOutputWithContext(context.Context) GlossaryTermTimeoutsPtrOutput +} + +type glossaryTermTimeoutsPtrType GlossaryTermTimeoutsArgs + +func GlossaryTermTimeoutsPtr(v *GlossaryTermTimeoutsArgs) GlossaryTermTimeoutsPtrInput { + return (*glossaryTermTimeoutsPtrType)(v) +} + +func (*glossaryTermTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTermTimeouts)(nil)).Elem() +} + +func (i *glossaryTermTimeoutsPtrType) ToGlossaryTermTimeoutsPtrOutput() GlossaryTermTimeoutsPtrOutput { + return i.ToGlossaryTermTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *glossaryTermTimeoutsPtrType) ToGlossaryTermTimeoutsPtrOutputWithContext(ctx context.Context) GlossaryTermTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlossaryTermTimeoutsPtrOutput) +} + +type GlossaryTermTimeoutsOutput struct{ *pulumi.OutputState } + +func (GlossaryTermTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GlossaryTermTimeouts)(nil)).Elem() +} + +func (o GlossaryTermTimeoutsOutput) ToGlossaryTermTimeoutsOutput() GlossaryTermTimeoutsOutput { + return o +} + +func (o GlossaryTermTimeoutsOutput) ToGlossaryTermTimeoutsOutputWithContext(ctx context.Context) GlossaryTermTimeoutsOutput { + return o +} + +func (o GlossaryTermTimeoutsOutput) ToGlossaryTermTimeoutsPtrOutput() GlossaryTermTimeoutsPtrOutput { + return o.ToGlossaryTermTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o GlossaryTermTimeoutsOutput) ToGlossaryTermTimeoutsPtrOutputWithContext(ctx context.Context) GlossaryTermTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GlossaryTermTimeouts) *GlossaryTermTimeouts { + return &v + }).(GlossaryTermTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GlossaryTermTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v GlossaryTermTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +type GlossaryTermTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (GlossaryTermTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlossaryTermTimeouts)(nil)).Elem() +} + +func (o GlossaryTermTimeoutsPtrOutput) ToGlossaryTermTimeoutsPtrOutput() GlossaryTermTimeoutsPtrOutput { + return o +} + +func (o GlossaryTermTimeoutsPtrOutput) ToGlossaryTermTimeoutsPtrOutputWithContext(ctx context.Context) GlossaryTermTimeoutsPtrOutput { + return o +} + +func (o GlossaryTermTimeoutsPtrOutput) Elem() GlossaryTermTimeoutsOutput { + return o.ApplyT(func(v *GlossaryTermTimeouts) GlossaryTermTimeouts { + if v != nil { + return *v + } + var ret GlossaryTermTimeouts + return ret + }).(GlossaryTermTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o GlossaryTermTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GlossaryTermTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + type ProjectFailureReason struct { Code string `pulumi:"code"` Message string `pulumi:"message"` @@ -578,6 +1361,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainSingleSignOnPtrInput)(nil)).Elem(), DomainSingleSignOnArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainTimeoutsInput)(nil)).Elem(), DomainTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainTimeoutsPtrInput)(nil)).Elem(), DomainTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentProfileUserParameterInput)(nil)).Elem(), EnvironmentProfileUserParameterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentProfileUserParameterArrayInput)(nil)).Elem(), EnvironmentProfileUserParameterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeImportInput)(nil)).Elem(), FormTypeImportArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeImportArrayInput)(nil)).Elem(), FormTypeImportArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeModelInput)(nil)).Elem(), FormTypeModelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeModelPtrInput)(nil)).Elem(), FormTypeModelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeTimeoutsInput)(nil)).Elem(), FormTypeTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FormTypeTimeoutsPtrInput)(nil)).Elem(), FormTypeTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermTermRelationsInput)(nil)).Elem(), GlossaryTermTermRelationsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermTermRelationsPtrInput)(nil)).Elem(), GlossaryTermTermRelationsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermTimeoutsInput)(nil)).Elem(), GlossaryTermTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlossaryTermTimeoutsPtrInput)(nil)).Elem(), GlossaryTermTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectFailureReasonInput)(nil)).Elem(), ProjectFailureReasonArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectFailureReasonArrayInput)(nil)).Elem(), ProjectFailureReasonArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ProjectTimeoutsInput)(nil)).Elem(), ProjectTimeoutsArgs{}) @@ -586,6 +1381,18 @@ func init() { pulumi.RegisterOutputType(DomainSingleSignOnPtrOutput{}) pulumi.RegisterOutputType(DomainTimeoutsOutput{}) pulumi.RegisterOutputType(DomainTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentProfileUserParameterOutput{}) + pulumi.RegisterOutputType(EnvironmentProfileUserParameterArrayOutput{}) + pulumi.RegisterOutputType(FormTypeImportOutput{}) + pulumi.RegisterOutputType(FormTypeImportArrayOutput{}) + pulumi.RegisterOutputType(FormTypeModelOutput{}) + pulumi.RegisterOutputType(FormTypeModelPtrOutput{}) + pulumi.RegisterOutputType(FormTypeTimeoutsOutput{}) + pulumi.RegisterOutputType(FormTypeTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(GlossaryTermTermRelationsOutput{}) + pulumi.RegisterOutputType(GlossaryTermTermRelationsPtrOutput{}) + pulumi.RegisterOutputType(GlossaryTermTimeoutsOutput{}) + pulumi.RegisterOutputType(GlossaryTermTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ProjectFailureReasonOutput{}) pulumi.RegisterOutputType(ProjectFailureReasonArrayOutput{}) pulumi.RegisterOutputType(ProjectTimeoutsOutput{}) diff --git a/sdk/go/aws/lb/listener.go b/sdk/go/aws/lb/listener.go index 76dbac5fe98..cb8437357e6 100644 --- a/sdk/go/aws/lb/listener.go +++ b/sdk/go/aws/lb/listener.go @@ -80,6 +80,7 @@ import ( // LoadBalancerArn: pulumi.Any(frontEndAwsLb.Arn), // Port: pulumi.Int(443), // Protocol: pulumi.String("TLS"), +// SslPolicy: pulumi.String("ELBSecurityPolicy-2016-08"), // CertificateArn: pulumi.String("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4"), // AlpnPolicy: pulumi.String("HTTP2Preferred"), // DefaultActions: lb.ListenerDefaultActionArray{ @@ -429,7 +430,7 @@ type Listener struct { Port pulumi.IntPtrOutput `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringOutput `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringOutput `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -501,7 +502,7 @@ type listenerState struct { Port *int `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol *string `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -532,7 +533,7 @@ type ListenerState struct { Port pulumi.IntPtrInput // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringPtrInput - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -565,7 +566,7 @@ type listenerArgs struct { Port *int `pulumi:"port"` // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol *string `pulumi:"protocol"` - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy *string `pulumi:"sslPolicy"` // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -591,7 +592,7 @@ type ListenerArgs struct { Port pulumi.IntPtrInput // Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. Protocol pulumi.StringPtrInput - // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + // Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. SslPolicy pulumi.StringPtrInput // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. // @@ -728,7 +729,7 @@ func (o ListenerOutput) Protocol() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) } -// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. +// Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. func (o ListenerOutput) SslPolicy() pulumi.StringOutput { return o.ApplyT(func(v *Listener) pulumi.StringOutput { return v.SslPolicy }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/lex/pulumiTypes2.go b/sdk/go/aws/lex/pulumiTypes2.go index 3e63b2fd38f..cb23339d4d8 100644 --- a/sdk/go/aws/lex/pulumiTypes2.go +++ b/sdk/go/aws/lex/pulumiTypes2.go @@ -3874,8 +3874,8 @@ func (o V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSourcePtrOutp } type V2modelsSlotTypeSlotTypeValues struct { - // List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. - SlotTypeValues []V2modelsSlotTypeSlotTypeValuesSlotTypeValue `pulumi:"slotTypeValues"` + // Value of the slot type entry. See `sampleValue` argument reference below. + SampleValues []V2modelsSlotTypeSlotTypeValuesSampleValue `pulumi:"sampleValues"` // Additional values related to the slot type entry. See `sampleValue` argument reference below. Synonyms []V2modelsSlotTypeSlotTypeValuesSynonym `pulumi:"synonyms"` } @@ -3892,8 +3892,8 @@ type V2modelsSlotTypeSlotTypeValuesInput interface { } type V2modelsSlotTypeSlotTypeValuesArgs struct { - // List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. - SlotTypeValues V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayInput `pulumi:"slotTypeValues"` + // Value of the slot type entry. See `sampleValue` argument reference below. + SampleValues V2modelsSlotTypeSlotTypeValuesSampleValueArrayInput `pulumi:"sampleValues"` // Additional values related to the slot type entry. See `sampleValue` argument reference below. Synonyms V2modelsSlotTypeSlotTypeValuesSynonymArrayInput `pulumi:"synonyms"` } @@ -3975,11 +3975,11 @@ func (o V2modelsSlotTypeSlotTypeValuesOutput) ToV2modelsSlotTypeSlotTypeValuesPt }).(V2modelsSlotTypeSlotTypeValuesPtrOutput) } -// List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. -func (o V2modelsSlotTypeSlotTypeValuesOutput) SlotTypeValues() V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { - return o.ApplyT(func(v V2modelsSlotTypeSlotTypeValues) []V2modelsSlotTypeSlotTypeValuesSlotTypeValue { - return v.SlotTypeValues - }).(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) +// Value of the slot type entry. See `sampleValue` argument reference below. +func (o V2modelsSlotTypeSlotTypeValuesOutput) SampleValues() V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { + return o.ApplyT(func(v V2modelsSlotTypeSlotTypeValues) []V2modelsSlotTypeSlotTypeValuesSampleValue { + return v.SampleValues + }).(V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) } // Additional values related to the slot type entry. See `sampleValue` argument reference below. @@ -4011,14 +4011,14 @@ func (o V2modelsSlotTypeSlotTypeValuesPtrOutput) Elem() V2modelsSlotTypeSlotType }).(V2modelsSlotTypeSlotTypeValuesOutput) } -// List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. -func (o V2modelsSlotTypeSlotTypeValuesPtrOutput) SlotTypeValues() V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { - return o.ApplyT(func(v *V2modelsSlotTypeSlotTypeValues) []V2modelsSlotTypeSlotTypeValuesSlotTypeValue { +// Value of the slot type entry. See `sampleValue` argument reference below. +func (o V2modelsSlotTypeSlotTypeValuesPtrOutput) SampleValues() V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { + return o.ApplyT(func(v *V2modelsSlotTypeSlotTypeValues) []V2modelsSlotTypeSlotTypeValuesSampleValue { if v == nil { return nil } - return v.SlotTypeValues - }).(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) + return v.SampleValues + }).(V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) } // Additional values related to the slot type entry. See `sampleValue` argument reference below. @@ -4031,101 +4031,101 @@ func (o V2modelsSlotTypeSlotTypeValuesPtrOutput) Synonyms() V2modelsSlotTypeSlot }).(V2modelsSlotTypeSlotTypeValuesSynonymArrayOutput) } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValue struct { +type V2modelsSlotTypeSlotTypeValuesSampleValue struct { // Value that can be used for a slot type. Value string `pulumi:"value"` } -// V2modelsSlotTypeSlotTypeValuesSlotTypeValueInput is an input type that accepts V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs and V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput values. -// You can construct a concrete instance of `V2modelsSlotTypeSlotTypeValuesSlotTypeValueInput` via: +// V2modelsSlotTypeSlotTypeValuesSampleValueInput is an input type that accepts V2modelsSlotTypeSlotTypeValuesSampleValueArgs and V2modelsSlotTypeSlotTypeValuesSampleValueOutput values. +// You can construct a concrete instance of `V2modelsSlotTypeSlotTypeValuesSampleValueInput` via: // -// V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs{...} -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueInput interface { +// V2modelsSlotTypeSlotTypeValuesSampleValueArgs{...} +type V2modelsSlotTypeSlotTypeValuesSampleValueInput interface { pulumi.Input - ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput - ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutputWithContext(context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput + ToV2modelsSlotTypeSlotTypeValuesSampleValueOutput() V2modelsSlotTypeSlotTypeValuesSampleValueOutput + ToV2modelsSlotTypeSlotTypeValuesSampleValueOutputWithContext(context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueOutput } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs struct { +type V2modelsSlotTypeSlotTypeValuesSampleValueArgs struct { // Value that can be used for a slot type. Value pulumi.StringInput `pulumi:"value"` } -func (V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs) ElementType() reflect.Type { - return reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSlotTypeValue)(nil)).Elem() +func (V2modelsSlotTypeSlotTypeValuesSampleValueArgs) ElementType() reflect.Type { + return reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSampleValue)(nil)).Elem() } -func (i V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput { - return i.ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutputWithContext(context.Background()) +func (i V2modelsSlotTypeSlotTypeValuesSampleValueArgs) ToV2modelsSlotTypeSlotTypeValuesSampleValueOutput() V2modelsSlotTypeSlotTypeValuesSampleValueOutput { + return i.ToV2modelsSlotTypeSlotTypeValuesSampleValueOutputWithContext(context.Background()) } -func (i V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput { - return pulumi.ToOutputWithContext(ctx, i).(V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) +func (i V2modelsSlotTypeSlotTypeValuesSampleValueArgs) ToV2modelsSlotTypeSlotTypeValuesSampleValueOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueOutput { + return pulumi.ToOutputWithContext(ctx, i).(V2modelsSlotTypeSlotTypeValuesSampleValueOutput) } -// V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayInput is an input type that accepts V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray and V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput values. -// You can construct a concrete instance of `V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayInput` via: +// V2modelsSlotTypeSlotTypeValuesSampleValueArrayInput is an input type that accepts V2modelsSlotTypeSlotTypeValuesSampleValueArray and V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput values. +// You can construct a concrete instance of `V2modelsSlotTypeSlotTypeValuesSampleValueArrayInput` via: // -// V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray{ V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs{...} } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayInput interface { +// V2modelsSlotTypeSlotTypeValuesSampleValueArray{ V2modelsSlotTypeSlotTypeValuesSampleValueArgs{...} } +type V2modelsSlotTypeSlotTypeValuesSampleValueArrayInput interface { pulumi.Input - ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput - ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutputWithContext(context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput + ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput + ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutputWithContext(context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray []V2modelsSlotTypeSlotTypeValuesSlotTypeValueInput +type V2modelsSlotTypeSlotTypeValuesSampleValueArray []V2modelsSlotTypeSlotTypeValuesSampleValueInput -func (V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]V2modelsSlotTypeSlotTypeValuesSlotTypeValue)(nil)).Elem() +func (V2modelsSlotTypeSlotTypeValuesSampleValueArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]V2modelsSlotTypeSlotTypeValuesSampleValue)(nil)).Elem() } -func (i V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { - return i.ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutputWithContext(context.Background()) +func (i V2modelsSlotTypeSlotTypeValuesSampleValueArray) ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { + return i.ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutputWithContext(context.Background()) } -func (i V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) +func (i V2modelsSlotTypeSlotTypeValuesSampleValueArray) ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput struct{ *pulumi.OutputState } +type V2modelsSlotTypeSlotTypeValuesSampleValueOutput struct{ *pulumi.OutputState } -func (V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) ElementType() reflect.Type { - return reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSlotTypeValue)(nil)).Elem() +func (V2modelsSlotTypeSlotTypeValuesSampleValueOutput) ElementType() reflect.Type { + return reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSampleValue)(nil)).Elem() } -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput { +func (o V2modelsSlotTypeSlotTypeValuesSampleValueOutput) ToV2modelsSlotTypeSlotTypeValuesSampleValueOutput() V2modelsSlotTypeSlotTypeValuesSampleValueOutput { return o } -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput { +func (o V2modelsSlotTypeSlotTypeValuesSampleValueOutput) ToV2modelsSlotTypeSlotTypeValuesSampleValueOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueOutput { return o } // Value that can be used for a slot type. -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v V2modelsSlotTypeSlotTypeValuesSlotTypeValue) string { return v.Value }).(pulumi.StringOutput) +func (o V2modelsSlotTypeSlotTypeValuesSampleValueOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v V2modelsSlotTypeSlotTypeValuesSampleValue) string { return v.Value }).(pulumi.StringOutput) } -type V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput struct{ *pulumi.OutputState } +type V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput struct{ *pulumi.OutputState } -func (V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]V2modelsSlotTypeSlotTypeValuesSlotTypeValue)(nil)).Elem() +func (V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]V2modelsSlotTypeSlotTypeValuesSampleValue)(nil)).Elem() } -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { +func (o V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput() V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { return o } -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) ToV2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput { +func (o V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) ToV2modelsSlotTypeSlotTypeValuesSampleValueArrayOutputWithContext(ctx context.Context) V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput { return o } -func (o V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput) Index(i pulumi.IntInput) V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) V2modelsSlotTypeSlotTypeValuesSlotTypeValue { - return vs[0].([]V2modelsSlotTypeSlotTypeValuesSlotTypeValue)[vs[1].(int)] - }).(V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput) +func (o V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput) Index(i pulumi.IntInput) V2modelsSlotTypeSlotTypeValuesSampleValueOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) V2modelsSlotTypeSlotTypeValuesSampleValue { + return vs[0].([]V2modelsSlotTypeSlotTypeValuesSampleValue)[vs[1].(int)] + }).(V2modelsSlotTypeSlotTypeValuesSampleValueOutput) } type V2modelsSlotTypeSlotTypeValuesSynonym struct { @@ -13453,8 +13453,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSourcePtrInput)(nil)).Elem(), V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesPtrInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSlotTypeValueInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSlotTypeValueArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSampleValueInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSampleValueArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSampleValueArrayInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSampleValueArray{}) pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSynonymInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSynonymArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeSlotTypeValuesSynonymArrayInput)(nil)).Elem(), V2modelsSlotTypeSlotTypeValuesSynonymArray{}) pulumi.RegisterInputType(reflect.TypeOf((*V2modelsSlotTypeTimeoutsInput)(nil)).Elem(), V2modelsSlotTypeTimeoutsArgs{}) @@ -13657,8 +13657,8 @@ func init() { pulumi.RegisterOutputType(V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSourcePtrOutput{}) pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesOutput{}) pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesPtrOutput{}) - pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSlotTypeValueOutput{}) - pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArrayOutput{}) + pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSampleValueOutput{}) + pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSampleValueArrayOutput{}) pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSynonymOutput{}) pulumi.RegisterOutputType(V2modelsSlotTypeSlotTypeValuesSynonymArrayOutput{}) pulumi.RegisterOutputType(V2modelsSlotTypeTimeoutsOutput{}) diff --git a/sdk/go/aws/msk/replicator.go b/sdk/go/aws/msk/replicator.go index 3a53ca70c7c..b65464e81a1 100644 --- a/sdk/go/aws/msk/replicator.go +++ b/sdk/go/aws/msk/replicator.go @@ -66,6 +66,9 @@ import ( // TopicsToReplicates: pulumi.StringArray{ // pulumi.String(".*"), // }, +// StartingPosition: &msk.ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs{ +// Type: pulumi.String("LATEST"), +// }, // }, // }, // ConsumerGroupReplications: msk.ReplicatorReplicationInfoListConsumerGroupReplicationArray{ diff --git a/sdk/go/aws/networkfirewall/loggingConfiguration.go b/sdk/go/aws/networkfirewall/loggingConfiguration.go index faca44ff481..a3f89e99196 100644 --- a/sdk/go/aws/networkfirewall/loggingConfiguration.go +++ b/sdk/go/aws/networkfirewall/loggingConfiguration.go @@ -114,7 +114,7 @@ import ( // "deliveryStream": pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name), // }, // LogDestinationType: pulumi.String("KinesisDataFirehose"), -// LogType: pulumi.String("ALERT"), +// LogType: pulumi.String("TLS"), // }, // }, // }, diff --git a/sdk/go/aws/networkfirewall/pulumiTypes.go b/sdk/go/aws/networkfirewall/pulumiTypes.go index ed7d9c5cbb9..643270d6aec 100644 --- a/sdk/go/aws/networkfirewall/pulumiTypes.go +++ b/sdk/go/aws/networkfirewall/pulumiTypes.go @@ -2176,7 +2176,7 @@ func (o FirewallSubnetMappingArrayOutput) Index(i pulumi.IntInput) FirewallSubne } type LoggingConfigurationLoggingConfiguration struct { - // Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + // Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. LogDestinationConfigs []LoggingConfigurationLoggingConfigurationLogDestinationConfig `pulumi:"logDestinationConfigs"` } @@ -2192,7 +2192,7 @@ type LoggingConfigurationLoggingConfigurationInput interface { } type LoggingConfigurationLoggingConfigurationArgs struct { - // Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + // Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. LogDestinationConfigs LoggingConfigurationLoggingConfigurationLogDestinationConfigArrayInput `pulumi:"logDestinationConfigs"` } @@ -2273,7 +2273,7 @@ func (o LoggingConfigurationLoggingConfigurationOutput) ToLoggingConfigurationLo }).(LoggingConfigurationLoggingConfigurationPtrOutput) } -// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. +// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. func (o LoggingConfigurationLoggingConfigurationOutput) LogDestinationConfigs() LoggingConfigurationLoggingConfigurationLogDestinationConfigArrayOutput { return o.ApplyT(func(v LoggingConfigurationLoggingConfiguration) []LoggingConfigurationLoggingConfigurationLogDestinationConfig { return v.LogDestinationConfigs @@ -2304,7 +2304,7 @@ func (o LoggingConfigurationLoggingConfigurationPtrOutput) Elem() LoggingConfigu }).(LoggingConfigurationLoggingConfigurationOutput) } -// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. +// Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. func (o LoggingConfigurationLoggingConfigurationPtrOutput) LogDestinationConfigs() LoggingConfigurationLoggingConfigurationLogDestinationConfigArrayOutput { return o.ApplyT(func(v *LoggingConfigurationLoggingConfiguration) []LoggingConfigurationLoggingConfigurationLogDestinationConfig { if v == nil { @@ -2322,7 +2322,7 @@ type LoggingConfigurationLoggingConfigurationLogDestinationConfig struct { LogDestination map[string]string `pulumi:"logDestination"` // The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. LogDestinationType string `pulumi:"logDestinationType"` - // The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + // The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. LogType string `pulumi:"logType"` } @@ -2345,7 +2345,7 @@ type LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs struct { LogDestination pulumi.StringMapInput `pulumi:"logDestination"` // The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. LogDestinationType pulumi.StringInput `pulumi:"logDestinationType"` - // The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + // The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. LogType pulumi.StringInput `pulumi:"logType"` } @@ -2417,7 +2417,7 @@ func (o LoggingConfigurationLoggingConfigurationLogDestinationConfigOutput) LogD }).(pulumi.StringOutput) } -// The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. +// The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. func (o LoggingConfigurationLoggingConfigurationLogDestinationConfigOutput) LogType() pulumi.StringOutput { return o.ApplyT(func(v LoggingConfigurationLoggingConfigurationLogDestinationConfig) string { return v.LogType }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/pinpoint/emailChannel.go b/sdk/go/aws/pinpoint/emailChannel.go index 1062cbdb52b..64243b82774 100644 --- a/sdk/go/aws/pinpoint/emailChannel.go +++ b/sdk/go/aws/pinpoint/emailChannel.go @@ -128,7 +128,7 @@ type EmailChannel struct { Identity pulumi.StringOutput `pulumi:"identity"` // Messages per second that can be sent. MessagesPerSecond pulumi.IntOutput `pulumi:"messagesPerSecond"` - // The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + // *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` } @@ -183,7 +183,7 @@ type emailChannelState struct { Identity *string `pulumi:"identity"` // Messages per second that can be sent. MessagesPerSecond *int `pulumi:"messagesPerSecond"` - // The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + // *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. RoleArn *string `pulumi:"roleArn"` } @@ -200,7 +200,7 @@ type EmailChannelState struct { Identity pulumi.StringPtrInput // Messages per second that can be sent. MessagesPerSecond pulumi.IntPtrInput - // The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + // *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. RoleArn pulumi.StringPtrInput } @@ -219,7 +219,7 @@ type emailChannelArgs struct { FromAddress string `pulumi:"fromAddress"` // The ARN of an identity verified with SES. Identity string `pulumi:"identity"` - // The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + // *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. RoleArn *string `pulumi:"roleArn"` } @@ -235,7 +235,7 @@ type EmailChannelArgs struct { FromAddress pulumi.StringInput // The ARN of an identity verified with SES. Identity pulumi.StringInput - // The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + // *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. RoleArn pulumi.StringPtrInput } @@ -356,7 +356,7 @@ func (o EmailChannelOutput) MessagesPerSecond() pulumi.IntOutput { return o.ApplyT(func(v *EmailChannel) pulumi.IntOutput { return v.MessagesPerSecond }).(pulumi.IntOutput) } -// The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. +// *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. func (o EmailChannelOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *EmailChannel) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/pinpoint/emailTemplate.go b/sdk/go/aws/pinpoint/emailTemplate.go new file mode 100644 index 00000000000..313963cb970 --- /dev/null +++ b/sdk/go/aws/pinpoint/emailTemplate.go @@ -0,0 +1,311 @@ +// 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 pinpoint + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a Pinpoint Email Template resource +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pinpoint" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := pinpoint.NewEmailTemplate(ctx, "test", &pinpoint.EmailTemplateArgs{ +// TemplateName: pulumi.String("testing"), +// EmailTemplates: pinpoint.EmailTemplateEmailTemplateArray{ +// &pinpoint.EmailTemplateEmailTemplateArgs{ +// Subject: pulumi.String("testing"), +// TextPart: pulumi.String("we are testing template text part"), +// Headers: pinpoint.EmailTemplateEmailTemplateHeaderArray{ +// &pinpoint.EmailTemplateEmailTemplateHeaderArgs{ +// Name: pulumi.String("testingname"), +// Value: pulumi.String("testingvalue"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: +// +// ```sh +// $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name +// ``` +type EmailTemplate struct { + pulumi.CustomResourceState + + // Amazon Resource Name (ARN) of the message template. + Arn pulumi.StringOutput `pulumi:"arn"` + // Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + EmailTemplates EmailTemplateEmailTemplateArrayOutput `pulumi:"emailTemplates"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + TemplateName pulumi.StringOutput `pulumi:"templateName"` +} + +// NewEmailTemplate registers a new resource with the given unique name, arguments, and options. +func NewEmailTemplate(ctx *pulumi.Context, + name string, args *EmailTemplateArgs, opts ...pulumi.ResourceOption) (*EmailTemplate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.TemplateName == nil { + return nil, errors.New("invalid value for required argument 'TemplateName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EmailTemplate + err := ctx.RegisterResource("aws:pinpoint/emailTemplate:EmailTemplate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEmailTemplate gets an existing EmailTemplate 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 GetEmailTemplate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EmailTemplateState, opts ...pulumi.ResourceOption) (*EmailTemplate, error) { + var resource EmailTemplate + err := ctx.ReadResource("aws:pinpoint/emailTemplate:EmailTemplate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EmailTemplate resources. +type emailTemplateState struct { + // Amazon Resource Name (ARN) of the message template. + Arn *string `pulumi:"arn"` + // Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + EmailTemplates []EmailTemplateEmailTemplate `pulumi:"emailTemplates"` + Tags map[string]string `pulumi:"tags"` + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + TemplateName *string `pulumi:"templateName"` +} + +type EmailTemplateState struct { + // Amazon Resource Name (ARN) of the message template. + Arn pulumi.StringPtrInput + // Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + EmailTemplates EmailTemplateEmailTemplateArrayInput + Tags pulumi.StringMapInput + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + TemplateName pulumi.StringPtrInput +} + +func (EmailTemplateState) ElementType() reflect.Type { + return reflect.TypeOf((*emailTemplateState)(nil)).Elem() +} + +type emailTemplateArgs struct { + // Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + EmailTemplates []EmailTemplateEmailTemplate `pulumi:"emailTemplates"` + Tags map[string]string `pulumi:"tags"` + // name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + TemplateName string `pulumi:"templateName"` +} + +// The set of arguments for constructing a EmailTemplate resource. +type EmailTemplateArgs struct { + // Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + EmailTemplates EmailTemplateEmailTemplateArrayInput + Tags pulumi.StringMapInput + // name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + TemplateName pulumi.StringInput +} + +func (EmailTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*emailTemplateArgs)(nil)).Elem() +} + +type EmailTemplateInput interface { + pulumi.Input + + ToEmailTemplateOutput() EmailTemplateOutput + ToEmailTemplateOutputWithContext(ctx context.Context) EmailTemplateOutput +} + +func (*EmailTemplate) ElementType() reflect.Type { + return reflect.TypeOf((**EmailTemplate)(nil)).Elem() +} + +func (i *EmailTemplate) ToEmailTemplateOutput() EmailTemplateOutput { + return i.ToEmailTemplateOutputWithContext(context.Background()) +} + +func (i *EmailTemplate) ToEmailTemplateOutputWithContext(ctx context.Context) EmailTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateOutput) +} + +// EmailTemplateArrayInput is an input type that accepts EmailTemplateArray and EmailTemplateArrayOutput values. +// You can construct a concrete instance of `EmailTemplateArrayInput` via: +// +// EmailTemplateArray{ EmailTemplateArgs{...} } +type EmailTemplateArrayInput interface { + pulumi.Input + + ToEmailTemplateArrayOutput() EmailTemplateArrayOutput + ToEmailTemplateArrayOutputWithContext(context.Context) EmailTemplateArrayOutput +} + +type EmailTemplateArray []EmailTemplateInput + +func (EmailTemplateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EmailTemplate)(nil)).Elem() +} + +func (i EmailTemplateArray) ToEmailTemplateArrayOutput() EmailTemplateArrayOutput { + return i.ToEmailTemplateArrayOutputWithContext(context.Background()) +} + +func (i EmailTemplateArray) ToEmailTemplateArrayOutputWithContext(ctx context.Context) EmailTemplateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateArrayOutput) +} + +// EmailTemplateMapInput is an input type that accepts EmailTemplateMap and EmailTemplateMapOutput values. +// You can construct a concrete instance of `EmailTemplateMapInput` via: +// +// EmailTemplateMap{ "key": EmailTemplateArgs{...} } +type EmailTemplateMapInput interface { + pulumi.Input + + ToEmailTemplateMapOutput() EmailTemplateMapOutput + ToEmailTemplateMapOutputWithContext(context.Context) EmailTemplateMapOutput +} + +type EmailTemplateMap map[string]EmailTemplateInput + +func (EmailTemplateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EmailTemplate)(nil)).Elem() +} + +func (i EmailTemplateMap) ToEmailTemplateMapOutput() EmailTemplateMapOutput { + return i.ToEmailTemplateMapOutputWithContext(context.Background()) +} + +func (i EmailTemplateMap) ToEmailTemplateMapOutputWithContext(ctx context.Context) EmailTemplateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateMapOutput) +} + +type EmailTemplateOutput struct{ *pulumi.OutputState } + +func (EmailTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EmailTemplate)(nil)).Elem() +} + +func (o EmailTemplateOutput) ToEmailTemplateOutput() EmailTemplateOutput { + return o +} + +func (o EmailTemplateOutput) ToEmailTemplateOutputWithContext(ctx context.Context) EmailTemplateOutput { + return o +} + +// Amazon Resource Name (ARN) of the message template. +func (o EmailTemplateOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EmailTemplate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template +func (o EmailTemplateOutput) EmailTemplates() EmailTemplateEmailTemplateArrayOutput { + return o.ApplyT(func(v *EmailTemplate) EmailTemplateEmailTemplateArrayOutput { return v.EmailTemplates }).(EmailTemplateEmailTemplateArrayOutput) +} + +func (o EmailTemplateOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EmailTemplate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Deprecated: Please use `tags` instead. +func (o EmailTemplateOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *EmailTemplate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. +func (o EmailTemplateOutput) TemplateName() pulumi.StringOutput { + return o.ApplyT(func(v *EmailTemplate) pulumi.StringOutput { return v.TemplateName }).(pulumi.StringOutput) +} + +type EmailTemplateArrayOutput struct{ *pulumi.OutputState } + +func (EmailTemplateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EmailTemplate)(nil)).Elem() +} + +func (o EmailTemplateArrayOutput) ToEmailTemplateArrayOutput() EmailTemplateArrayOutput { + return o +} + +func (o EmailTemplateArrayOutput) ToEmailTemplateArrayOutputWithContext(ctx context.Context) EmailTemplateArrayOutput { + return o +} + +func (o EmailTemplateArrayOutput) Index(i pulumi.IntInput) EmailTemplateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EmailTemplate { + return vs[0].([]*EmailTemplate)[vs[1].(int)] + }).(EmailTemplateOutput) +} + +type EmailTemplateMapOutput struct{ *pulumi.OutputState } + +func (EmailTemplateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EmailTemplate)(nil)).Elem() +} + +func (o EmailTemplateMapOutput) ToEmailTemplateMapOutput() EmailTemplateMapOutput { + return o +} + +func (o EmailTemplateMapOutput) ToEmailTemplateMapOutputWithContext(ctx context.Context) EmailTemplateMapOutput { + return o +} + +func (o EmailTemplateMapOutput) MapIndex(k pulumi.StringInput) EmailTemplateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EmailTemplate { + return vs[0].(map[string]*EmailTemplate)[vs[1].(string)] + }).(EmailTemplateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateInput)(nil)).Elem(), &EmailTemplate{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateArrayInput)(nil)).Elem(), EmailTemplateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateMapInput)(nil)).Elem(), EmailTemplateMap{}) + pulumi.RegisterOutputType(EmailTemplateOutput{}) + pulumi.RegisterOutputType(EmailTemplateArrayOutput{}) + pulumi.RegisterOutputType(EmailTemplateMapOutput{}) +} diff --git a/sdk/go/aws/pinpoint/init.go b/sdk/go/aws/pinpoint/init.go index e4610aa5f08..fc603dfa0bf 100644 --- a/sdk/go/aws/pinpoint/init.go +++ b/sdk/go/aws/pinpoint/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &BaiduChannel{} case "aws:pinpoint/emailChannel:EmailChannel": r = &EmailChannel{} + case "aws:pinpoint/emailTemplate:EmailTemplate": + r = &EmailTemplate{} case "aws:pinpoint/eventStream:EventStream": r = &EventStream{} case "aws:pinpoint/gcmChannel:GcmChannel": @@ -96,6 +98,11 @@ func init() { "pinpoint/emailChannel", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "pinpoint/emailTemplate", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "pinpoint/eventStream", diff --git a/sdk/go/aws/pinpoint/pulumiTypes.go b/sdk/go/aws/pinpoint/pulumiTypes.go index 6a9f5b8aa79..0ab04f63d0f 100644 --- a/sdk/go/aws/pinpoint/pulumiTypes.go +++ b/sdk/go/aws/pinpoint/pulumiTypes.go @@ -538,6 +538,257 @@ func (o AppQuietTimePtrOutput) Start() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type EmailTemplateEmailTemplate struct { + // JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + DefaultSubstitutions *string `pulumi:"defaultSubstitutions"` + Description *string `pulumi:"description"` + Headers []EmailTemplateEmailTemplateHeader `pulumi:"headers"` + // The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + HtmlPart *string `pulumi:"htmlPart"` + // The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + RecommenderId *string `pulumi:"recommenderId"` + // Subject line, or title, to use in email messages that are based on the message template. + Subject *string `pulumi:"subject"` + // Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + TextPart *string `pulumi:"textPart"` +} + +// EmailTemplateEmailTemplateInput is an input type that accepts EmailTemplateEmailTemplateArgs and EmailTemplateEmailTemplateOutput values. +// You can construct a concrete instance of `EmailTemplateEmailTemplateInput` via: +// +// EmailTemplateEmailTemplateArgs{...} +type EmailTemplateEmailTemplateInput interface { + pulumi.Input + + ToEmailTemplateEmailTemplateOutput() EmailTemplateEmailTemplateOutput + ToEmailTemplateEmailTemplateOutputWithContext(context.Context) EmailTemplateEmailTemplateOutput +} + +type EmailTemplateEmailTemplateArgs struct { + // JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + DefaultSubstitutions pulumi.StringPtrInput `pulumi:"defaultSubstitutions"` + Description pulumi.StringPtrInput `pulumi:"description"` + Headers EmailTemplateEmailTemplateHeaderArrayInput `pulumi:"headers"` + // The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + HtmlPart pulumi.StringPtrInput `pulumi:"htmlPart"` + // The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + RecommenderId pulumi.StringPtrInput `pulumi:"recommenderId"` + // Subject line, or title, to use in email messages that are based on the message template. + Subject pulumi.StringPtrInput `pulumi:"subject"` + // Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + TextPart pulumi.StringPtrInput `pulumi:"textPart"` +} + +func (EmailTemplateEmailTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EmailTemplateEmailTemplate)(nil)).Elem() +} + +func (i EmailTemplateEmailTemplateArgs) ToEmailTemplateEmailTemplateOutput() EmailTemplateEmailTemplateOutput { + return i.ToEmailTemplateEmailTemplateOutputWithContext(context.Background()) +} + +func (i EmailTemplateEmailTemplateArgs) ToEmailTemplateEmailTemplateOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateEmailTemplateOutput) +} + +// EmailTemplateEmailTemplateArrayInput is an input type that accepts EmailTemplateEmailTemplateArray and EmailTemplateEmailTemplateArrayOutput values. +// You can construct a concrete instance of `EmailTemplateEmailTemplateArrayInput` via: +// +// EmailTemplateEmailTemplateArray{ EmailTemplateEmailTemplateArgs{...} } +type EmailTemplateEmailTemplateArrayInput interface { + pulumi.Input + + ToEmailTemplateEmailTemplateArrayOutput() EmailTemplateEmailTemplateArrayOutput + ToEmailTemplateEmailTemplateArrayOutputWithContext(context.Context) EmailTemplateEmailTemplateArrayOutput +} + +type EmailTemplateEmailTemplateArray []EmailTemplateEmailTemplateInput + +func (EmailTemplateEmailTemplateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EmailTemplateEmailTemplate)(nil)).Elem() +} + +func (i EmailTemplateEmailTemplateArray) ToEmailTemplateEmailTemplateArrayOutput() EmailTemplateEmailTemplateArrayOutput { + return i.ToEmailTemplateEmailTemplateArrayOutputWithContext(context.Background()) +} + +func (i EmailTemplateEmailTemplateArray) ToEmailTemplateEmailTemplateArrayOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateEmailTemplateArrayOutput) +} + +type EmailTemplateEmailTemplateOutput struct{ *pulumi.OutputState } + +func (EmailTemplateEmailTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EmailTemplateEmailTemplate)(nil)).Elem() +} + +func (o EmailTemplateEmailTemplateOutput) ToEmailTemplateEmailTemplateOutput() EmailTemplateEmailTemplateOutput { + return o +} + +func (o EmailTemplateEmailTemplateOutput) ToEmailTemplateEmailTemplateOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateOutput { + return o +} + +// JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. +func (o EmailTemplateEmailTemplateOutput) DefaultSubstitutions() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.DefaultSubstitutions }).(pulumi.StringPtrOutput) +} + +func (o EmailTemplateEmailTemplateOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o EmailTemplateEmailTemplateOutput) Headers() EmailTemplateEmailTemplateHeaderArrayOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) []EmailTemplateEmailTemplateHeader { return v.Headers }).(EmailTemplateEmailTemplateHeaderArrayOutput) +} + +// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. +func (o EmailTemplateEmailTemplateOutput) HtmlPart() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.HtmlPart }).(pulumi.StringPtrOutput) +} + +// The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. +func (o EmailTemplateEmailTemplateOutput) RecommenderId() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.RecommenderId }).(pulumi.StringPtrOutput) +} + +// Subject line, or title, to use in email messages that are based on the message template. +func (o EmailTemplateEmailTemplateOutput) Subject() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.Subject }).(pulumi.StringPtrOutput) +} + +// Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. +func (o EmailTemplateEmailTemplateOutput) TextPart() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplate) *string { return v.TextPart }).(pulumi.StringPtrOutput) +} + +type EmailTemplateEmailTemplateArrayOutput struct{ *pulumi.OutputState } + +func (EmailTemplateEmailTemplateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EmailTemplateEmailTemplate)(nil)).Elem() +} + +func (o EmailTemplateEmailTemplateArrayOutput) ToEmailTemplateEmailTemplateArrayOutput() EmailTemplateEmailTemplateArrayOutput { + return o +} + +func (o EmailTemplateEmailTemplateArrayOutput) ToEmailTemplateEmailTemplateArrayOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateArrayOutput { + return o +} + +func (o EmailTemplateEmailTemplateArrayOutput) Index(i pulumi.IntInput) EmailTemplateEmailTemplateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EmailTemplateEmailTemplate { + return vs[0].([]EmailTemplateEmailTemplate)[vs[1].(int)] + }).(EmailTemplateEmailTemplateOutput) +} + +type EmailTemplateEmailTemplateHeader struct { + // Name of the message header. The header name can contain up to 126 characters. + Name *string `pulumi:"name"` + // Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + Value *string `pulumi:"value"` +} + +// EmailTemplateEmailTemplateHeaderInput is an input type that accepts EmailTemplateEmailTemplateHeaderArgs and EmailTemplateEmailTemplateHeaderOutput values. +// You can construct a concrete instance of `EmailTemplateEmailTemplateHeaderInput` via: +// +// EmailTemplateEmailTemplateHeaderArgs{...} +type EmailTemplateEmailTemplateHeaderInput interface { + pulumi.Input + + ToEmailTemplateEmailTemplateHeaderOutput() EmailTemplateEmailTemplateHeaderOutput + ToEmailTemplateEmailTemplateHeaderOutputWithContext(context.Context) EmailTemplateEmailTemplateHeaderOutput +} + +type EmailTemplateEmailTemplateHeaderArgs struct { + // Name of the message header. The header name can contain up to 126 characters. + Name pulumi.StringPtrInput `pulumi:"name"` + // Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EmailTemplateEmailTemplateHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EmailTemplateEmailTemplateHeader)(nil)).Elem() +} + +func (i EmailTemplateEmailTemplateHeaderArgs) ToEmailTemplateEmailTemplateHeaderOutput() EmailTemplateEmailTemplateHeaderOutput { + return i.ToEmailTemplateEmailTemplateHeaderOutputWithContext(context.Background()) +} + +func (i EmailTemplateEmailTemplateHeaderArgs) ToEmailTemplateEmailTemplateHeaderOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateEmailTemplateHeaderOutput) +} + +// EmailTemplateEmailTemplateHeaderArrayInput is an input type that accepts EmailTemplateEmailTemplateHeaderArray and EmailTemplateEmailTemplateHeaderArrayOutput values. +// You can construct a concrete instance of `EmailTemplateEmailTemplateHeaderArrayInput` via: +// +// EmailTemplateEmailTemplateHeaderArray{ EmailTemplateEmailTemplateHeaderArgs{...} } +type EmailTemplateEmailTemplateHeaderArrayInput interface { + pulumi.Input + + ToEmailTemplateEmailTemplateHeaderArrayOutput() EmailTemplateEmailTemplateHeaderArrayOutput + ToEmailTemplateEmailTemplateHeaderArrayOutputWithContext(context.Context) EmailTemplateEmailTemplateHeaderArrayOutput +} + +type EmailTemplateEmailTemplateHeaderArray []EmailTemplateEmailTemplateHeaderInput + +func (EmailTemplateEmailTemplateHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EmailTemplateEmailTemplateHeader)(nil)).Elem() +} + +func (i EmailTemplateEmailTemplateHeaderArray) ToEmailTemplateEmailTemplateHeaderArrayOutput() EmailTemplateEmailTemplateHeaderArrayOutput { + return i.ToEmailTemplateEmailTemplateHeaderArrayOutputWithContext(context.Background()) +} + +func (i EmailTemplateEmailTemplateHeaderArray) ToEmailTemplateEmailTemplateHeaderArrayOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EmailTemplateEmailTemplateHeaderArrayOutput) +} + +type EmailTemplateEmailTemplateHeaderOutput struct{ *pulumi.OutputState } + +func (EmailTemplateEmailTemplateHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EmailTemplateEmailTemplateHeader)(nil)).Elem() +} + +func (o EmailTemplateEmailTemplateHeaderOutput) ToEmailTemplateEmailTemplateHeaderOutput() EmailTemplateEmailTemplateHeaderOutput { + return o +} + +func (o EmailTemplateEmailTemplateHeaderOutput) ToEmailTemplateEmailTemplateHeaderOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateHeaderOutput { + return o +} + +// Name of the message header. The header name can contain up to 126 characters. +func (o EmailTemplateEmailTemplateHeaderOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplateHeader) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. +func (o EmailTemplateEmailTemplateHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EmailTemplateEmailTemplateHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EmailTemplateEmailTemplateHeaderArrayOutput struct{ *pulumi.OutputState } + +func (EmailTemplateEmailTemplateHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EmailTemplateEmailTemplateHeader)(nil)).Elem() +} + +func (o EmailTemplateEmailTemplateHeaderArrayOutput) ToEmailTemplateEmailTemplateHeaderArrayOutput() EmailTemplateEmailTemplateHeaderArrayOutput { + return o +} + +func (o EmailTemplateEmailTemplateHeaderArrayOutput) ToEmailTemplateEmailTemplateHeaderArrayOutputWithContext(ctx context.Context) EmailTemplateEmailTemplateHeaderArrayOutput { + return o +} + +func (o EmailTemplateEmailTemplateHeaderArrayOutput) Index(i pulumi.IntInput) EmailTemplateEmailTemplateHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EmailTemplateEmailTemplateHeader { + return vs[0].([]EmailTemplateEmailTemplateHeader)[vs[1].(int)] + }).(EmailTemplateEmailTemplateHeaderOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AppCampaignHookInput)(nil)).Elem(), AppCampaignHookArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppCampaignHookPtrInput)(nil)).Elem(), AppCampaignHookArgs{}) @@ -545,10 +796,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AppLimitsPtrInput)(nil)).Elem(), AppLimitsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppQuietTimeInput)(nil)).Elem(), AppQuietTimeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppQuietTimePtrInput)(nil)).Elem(), AppQuietTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateEmailTemplateInput)(nil)).Elem(), EmailTemplateEmailTemplateArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateEmailTemplateArrayInput)(nil)).Elem(), EmailTemplateEmailTemplateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateEmailTemplateHeaderInput)(nil)).Elem(), EmailTemplateEmailTemplateHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EmailTemplateEmailTemplateHeaderArrayInput)(nil)).Elem(), EmailTemplateEmailTemplateHeaderArray{}) pulumi.RegisterOutputType(AppCampaignHookOutput{}) pulumi.RegisterOutputType(AppCampaignHookPtrOutput{}) pulumi.RegisterOutputType(AppLimitsOutput{}) pulumi.RegisterOutputType(AppLimitsPtrOutput{}) pulumi.RegisterOutputType(AppQuietTimeOutput{}) pulumi.RegisterOutputType(AppQuietTimePtrOutput{}) + pulumi.RegisterOutputType(EmailTemplateEmailTemplateOutput{}) + pulumi.RegisterOutputType(EmailTemplateEmailTemplateArrayOutput{}) + pulumi.RegisterOutputType(EmailTemplateEmailTemplateHeaderOutput{}) + pulumi.RegisterOutputType(EmailTemplateEmailTemplateHeaderArrayOutput{}) } diff --git a/sdk/go/aws/pipes/pipe.go b/sdk/go/aws/pipes/pipe.go index 7b0641484cc..c3dbd795ce9 100644 --- a/sdk/go/aws/pipes/pipe.go +++ b/sdk/go/aws/pipes/pipe.go @@ -294,6 +294,47 @@ import ( // // ``` // +// ### SQS Source and Target Configuration Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/pipes" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := pipes.NewPipe(ctx, "example", &pipes.PipeArgs{ +// Name: pulumi.String("example-pipe"), +// RoleArn: pulumi.Any(exampleAwsIamRole.Arn), +// Source: pulumi.Any(source.Arn), +// Target: pulumi.Any(target.Arn), +// SourceParameters: &pipes.PipeSourceParametersArgs{ +// SqsQueueParameters: &pipes.PipeSourceParametersSqsQueueParametersArgs{ +// BatchSize: pulumi.Int(1), +// MaximumBatchingWindowInSeconds: pulumi.Int(2), +// }, +// }, +// TargetParameters: &pipes.PipeTargetParametersArgs{ +// SqsQueueParameters: &pipes.PipeTargetParametersSqsQueueParametersArgs{ +// MessageDeduplicationId: pulumi.String("example-dedupe"), +// MessageGroupId: pulumi.String("example-group"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import pipes using the `name`. For example: diff --git a/sdk/go/aws/rds/clusterInstance.go b/sdk/go/aws/rds/clusterInstance.go index 88eddc66c3c..b82c84ddfa9 100644 --- a/sdk/go/aws/rds/clusterInstance.go +++ b/sdk/go/aws/rds/clusterInstance.go @@ -109,7 +109,7 @@ type ClusterInstance struct { CustomIamInstanceProfile pulumi.StringPtrOutput `pulumi:"customIamInstanceProfile"` // Name of the DB parameter group to associate with this instance. DbParameterGroupName pulumi.StringOutput `pulumi:"dbParameterGroupName"` - // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. + // Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"` // Region-unique, immutable identifier for the DB instance. DbiResourceId pulumi.StringOutput `pulumi:"dbiResourceId"` @@ -221,7 +221,7 @@ type clusterInstanceState struct { CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"` // Name of the DB parameter group to associate with this instance. DbParameterGroupName *string `pulumi:"dbParameterGroupName"` - // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. + // Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"` // Region-unique, immutable identifier for the DB instance. DbiResourceId *string `pulumi:"dbiResourceId"` @@ -295,7 +295,7 @@ type ClusterInstanceState struct { CustomIamInstanceProfile pulumi.StringPtrInput // Name of the DB parameter group to associate with this instance. DbParameterGroupName pulumi.StringPtrInput - // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. + // Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. DbSubnetGroupName pulumi.StringPtrInput // Region-unique, immutable identifier for the DB instance. DbiResourceId pulumi.StringPtrInput @@ -371,7 +371,7 @@ type clusterInstanceArgs struct { CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"` // Name of the DB parameter group to associate with this instance. DbParameterGroupName *string `pulumi:"dbParameterGroupName"` - // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. + // Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"` // Name of the database engine to be used for the RDS cluster instance. // Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters). @@ -424,7 +424,7 @@ type ClusterInstanceArgs struct { CustomIamInstanceProfile pulumi.StringPtrInput // Name of the DB parameter group to associate with this instance. DbParameterGroupName pulumi.StringPtrInput - // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. + // Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. DbSubnetGroupName pulumi.StringPtrInput // Name of the database engine to be used for the RDS cluster instance. // Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters). @@ -591,7 +591,7 @@ func (o ClusterInstanceOutput) DbParameterGroupName() pulumi.StringOutput { return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbParameterGroupName }).(pulumi.StringOutput) } -// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. +// Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`. func (o ClusterInstanceOutput) DbSubnetGroupName() pulumi.StringOutput { return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/sagemaker/app.go b/sdk/go/aws/sagemaker/app.go index 268bce0f732..91b1e79cfbd 100644 --- a/sdk/go/aws/sagemaker/app.go +++ b/sdk/go/aws/sagemaker/app.go @@ -57,7 +57,7 @@ type App struct { // The name of the app. AppName pulumi.StringOutput `pulumi:"appName"` - // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. AppType pulumi.StringOutput `pulumi:"appType"` // The Amazon Resource Name (ARN) of the app. Arn pulumi.StringOutput `pulumi:"arn"` @@ -118,7 +118,7 @@ func GetApp(ctx *pulumi.Context, type appState struct { // The name of the app. AppName *string `pulumi:"appName"` - // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. AppType *string `pulumi:"appType"` // The Amazon Resource Name (ARN) of the app. Arn *string `pulumi:"arn"` @@ -141,7 +141,7 @@ type appState struct { type AppState struct { // The name of the app. AppName pulumi.StringPtrInput - // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. AppType pulumi.StringPtrInput // The Amazon Resource Name (ARN) of the app. Arn pulumi.StringPtrInput @@ -168,7 +168,7 @@ func (AppState) ElementType() reflect.Type { type appArgs struct { // The name of the app. AppName string `pulumi:"appName"` - // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. AppType string `pulumi:"appType"` // The domain ID. DomainId string `pulumi:"domainId"` @@ -186,7 +186,7 @@ type appArgs struct { type AppArgs struct { // The name of the app. AppName pulumi.StringInput - // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + // The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. AppType pulumi.StringInput // The domain ID. DomainId pulumi.StringInput @@ -292,7 +292,7 @@ func (o AppOutput) AppName() pulumi.StringOutput { return o.ApplyT(func(v *App) pulumi.StringOutput { return v.AppName }).(pulumi.StringOutput) } -// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. +// The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. func (o AppOutput) AppType() pulumi.StringOutput { return o.ApplyT(func(v *App) pulumi.StringOutput { return v.AppType }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/securitylake/pulumiTypes.go b/sdk/go/aws/securitylake/pulumiTypes.go index 2c2a63efda0..bc292a533b2 100644 --- a/sdk/go/aws/securitylake/pulumiTypes.go +++ b/sdk/go/aws/securitylake/pulumiTypes.go @@ -19,7 +19,7 @@ type AwsLogSourceSource struct { Accounts []string `pulumi:"accounts"` // Specify the Regions where you want to enable Security Lake. Regions []string `pulumi:"regions"` - // The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + // The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. SourceName string `pulumi:"sourceName"` // The version for a AWS source. // If not specified, the version will be the default. @@ -44,7 +44,7 @@ type AwsLogSourceSourceArgs struct { Accounts pulumi.StringArrayInput `pulumi:"accounts"` // Specify the Regions where you want to enable Security Lake. Regions pulumi.StringArrayInput `pulumi:"regions"` - // The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + // The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. SourceName pulumi.StringInput `pulumi:"sourceName"` // The version for a AWS source. // If not specified, the version will be the default. @@ -140,7 +140,7 @@ func (o AwsLogSourceSourceOutput) Regions() pulumi.StringArrayOutput { return o.ApplyT(func(v AwsLogSourceSource) []string { return v.Regions }).(pulumi.StringArrayOutput) } -// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. +// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. func (o AwsLogSourceSourceOutput) SourceName() pulumi.StringOutput { return o.ApplyT(func(v AwsLogSourceSource) string { return v.SourceName }).(pulumi.StringOutput) } @@ -197,7 +197,7 @@ func (o AwsLogSourceSourcePtrOutput) Regions() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. +// The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. func (o AwsLogSourceSourcePtrOutput) SourceName() pulumi.StringPtrOutput { return o.ApplyT(func(v *AwsLogSourceSource) *string { if v == nil { diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java b/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java index ca9a1f15e0f..dcca9abcb2b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/Listener.java @@ -107,6 +107,7 @@ * .loadBalancerArn(frontEndAwsLb.arn()) * .port("443") * .protocol("TLS") + * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") * .alpnPolicy("HTTP2Preferred") * .defaultActions(ListenerDefaultActionArgs.builder() @@ -596,14 +597,14 @@ public Output protocol() { return this.protocol; } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Export(name="sslPolicy", refs={String.class}, tree="[0]") private Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Output sslPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java index e441ad9483d..507f091ce8e 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/ListenerArgs.java @@ -131,14 +131,14 @@ public Optional> protocol() { } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Import(name="sslPolicy") private @Nullable Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Optional> sslPolicy() { @@ -358,7 +358,7 @@ public Builder protocol(String protocol) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * @@ -369,7 +369,7 @@ public Builder sslPolicy(@Nullable Output sslPolicy) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java index 9ec96ed6659..3e7107d11f6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/alb/inputs/ListenerState.java @@ -145,14 +145,14 @@ public Optional> protocol() { } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Import(name="sslPolicy") private @Nullable Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Optional> sslPolicy() { @@ -418,7 +418,7 @@ public Builder protocol(String protocol) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * @@ -429,7 +429,7 @@ public Builder sslPolicy(@Nullable Output sslPolicy) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociation.java index f4902270b51..6e619d042e9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociation.java @@ -6,11 +6,13 @@ import com.pulumi.aws.Utilities; import com.pulumi.aws.bedrock.AgentAgentKnowledgeBaseAssociationArgs; import com.pulumi.aws.bedrock.inputs.AgentAgentKnowledgeBaseAssociationState; +import com.pulumi.aws.bedrock.outputs.AgentAgentKnowledgeBaseAssociationTimeouts; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; import com.pulumi.core.internal.Codegen; import java.lang.String; +import java.util.Optional; import javax.annotation.Nullable; /** @@ -141,6 +143,12 @@ public Output knowledgeBaseId() { public Output knowledgeBaseState() { return this.knowledgeBaseState; } + @Export(name="timeouts", refs={AgentAgentKnowledgeBaseAssociationTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociationArgs.java index 5c3b01dea11..a5feee43d0f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/AgentAgentKnowledgeBaseAssociationArgs.java @@ -3,6 +3,7 @@ package com.pulumi.aws.bedrock; +import com.pulumi.aws.bedrock.inputs.AgentAgentKnowledgeBaseAssociationTimeoutsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -95,6 +96,13 @@ public Output knowledgeBaseState() { return this.knowledgeBaseState; } + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + private AgentAgentKnowledgeBaseAssociationArgs() {} private AgentAgentKnowledgeBaseAssociationArgs(AgentAgentKnowledgeBaseAssociationArgs $) { @@ -103,6 +111,7 @@ private AgentAgentKnowledgeBaseAssociationArgs(AgentAgentKnowledgeBaseAssociatio this.description = $.description; this.knowledgeBaseId = $.knowledgeBaseId; this.knowledgeBaseState = $.knowledgeBaseState; + this.timeouts = $.timeouts; } public static Builder builder() { @@ -232,6 +241,15 @@ public Builder knowledgeBaseState(String knowledgeBaseState) { return knowledgeBaseState(Output.of(knowledgeBaseState)); } + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(AgentAgentKnowledgeBaseAssociationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + public AgentAgentKnowledgeBaseAssociationArgs build() { if ($.agentId == null) { throw new MissingRequiredPropertyException("AgentAgentKnowledgeBaseAssociationArgs", "agentId"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/BedrockFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/BedrockFunctions.java index e60e1dd36d0..f42cebd124b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/BedrockFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/BedrockFunctions.java @@ -4,8 +4,11 @@ package com.pulumi.aws.bedrock; import com.pulumi.aws.Utilities; +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs; +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsPlainArgs; import com.pulumi.aws.bedrock.inputs.GetCustomModelArgs; import com.pulumi.aws.bedrock.inputs.GetCustomModelPlainArgs; +import com.pulumi.aws.bedrock.outputs.GetAgentAgentVersionsResult; import com.pulumi.aws.bedrock.outputs.GetCustomModelResult; import com.pulumi.aws.bedrock.outputs.GetCustomModelsResult; import com.pulumi.core.Output; @@ -16,6 +19,182 @@ import java.util.concurrent.CompletableFuture; public final class BedrockFunctions { + /** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.bedrock.BedrockFunctions;
+     * import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs;
+     * 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 test = BedrockFunctions.getAgentAgentVersions(GetAgentAgentVersionsArgs.builder()
+     *             .agentId(testAwsBedrockagentAgent.agentId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAgentAgentVersions(GetAgentAgentVersionsArgs args) { + return getAgentAgentVersions(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.bedrock.BedrockFunctions;
+     * import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs;
+     * 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 test = BedrockFunctions.getAgentAgentVersions(GetAgentAgentVersionsArgs.builder()
+     *             .agentId(testAwsBedrockagentAgent.agentId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAgentAgentVersionsPlain(GetAgentAgentVersionsPlainArgs args) { + return getAgentAgentVersionsPlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.bedrock.BedrockFunctions;
+     * import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs;
+     * 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 test = BedrockFunctions.getAgentAgentVersions(GetAgentAgentVersionsArgs.builder()
+     *             .agentId(testAwsBedrockagentAgent.agentId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAgentAgentVersions(GetAgentAgentVersionsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", TypeShape.of(GetAgentAgentVersionsResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.aws.bedrock.BedrockFunctions;
+     * import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsArgs;
+     * 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 test = BedrockFunctions.getAgentAgentVersions(GetAgentAgentVersionsArgs.builder()
+     *             .agentId(testAwsBedrockagentAgent.agentId())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAgentAgentVersionsPlain(GetAgentAgentVersionsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", TypeShape.of(GetAgentAgentVersionsResult.class), args, Utilities.withVersion(options)); + } /** * Returns properties of a specific Amazon Bedrock custom model. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/Guardrail.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/Guardrail.java new file mode 100644 index 00000000000..a912fa08da7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/Guardrail.java @@ -0,0 +1,419 @@ +// *** 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.aws.bedrock; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.bedrock.GuardrailArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailState; +import com.pulumi.aws.bedrock.outputs.GuardrailContentPolicyConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailContextualGroundingPolicyConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailSensitiveInformationPolicyConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailTimeouts; +import com.pulumi.aws.bedrock.outputs.GuardrailTopicPolicyConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailWordPolicyConfig; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an Amazon Bedrock Guardrail. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.bedrock.Guardrail;
+ * import com.pulumi.aws.bedrock.GuardrailArgs;
+ * import com.pulumi.aws.bedrock.inputs.GuardrailContentPolicyConfigArgs;
+ * import com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigArgs;
+ * import com.pulumi.aws.bedrock.inputs.GuardrailTopicPolicyConfigArgs;
+ * import com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigArgs;
+ * 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 example = new Guardrail("example", GuardrailArgs.builder()
+ *             .name("example")
+ *             .blockedInputMessaging("example")
+ *             .blockedOutputsMessaging("example")
+ *             .description("example")
+ *             .contentPolicyConfig(GuardrailContentPolicyConfigArgs.builder()
+ *                 .filtersConfigs(GuardrailContentPolicyConfigFiltersConfigArgs.builder()
+ *                     .inputStrength("MEDIUM")
+ *                     .outputStrength("MEDIUM")
+ *                     .type("HATE")
+ *                     .build())
+ *                 .build())
+ *             .sensitiveInformationPolicyConfig(GuardrailSensitiveInformationPolicyConfigArgs.builder()
+ *                 .piiEntitiesConfigs(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.builder()
+ *                     .action("BLOCK")
+ *                     .type("NAME")
+ *                     .build())
+ *                 .regexesConfigs(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.builder()
+ *                     .action("BLOCK")
+ *                     .description("example regex")
+ *                     .name("regex_example")
+ *                     .pattern("^\\d{3}-\\d{2}-\\d{4}$")
+ *                     .build())
+ *                 .build())
+ *             .topicPolicyConfig(GuardrailTopicPolicyConfigArgs.builder()
+ *                 .topicsConfigs(GuardrailTopicPolicyConfigTopicsConfigArgs.builder()
+ *                     .name("investment_topic")
+ *                     .examples("Where should I invest my money ?")
+ *                     .type("DENY")
+ *                     .definition("Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .")
+ *                     .build())
+ *                 .build())
+ *             .wordPolicyConfig(GuardrailWordPolicyConfigArgs.builder()
+ *                 .managedWordListsConfigs(GuardrailWordPolicyConfigManagedWordListsConfigArgs.builder()
+ *                     .type("PROFANITY")
+ *                     .build())
+ *                 .wordsConfigs(GuardrailWordPolicyConfigWordsConfigArgs.builder()
+ *                     .text("HATE")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: + * + * ```sh + * $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT + * ``` + * + */ +@ResourceType(type="aws:bedrock/guardrail:Guardrail") +public class Guardrail extends com.pulumi.resources.CustomResource { + /** + * Message to return when the guardrail blocks a prompt. + * + */ + @Export(name="blockedInputMessaging", refs={String.class}, tree="[0]") + private Output blockedInputMessaging; + + /** + * @return Message to return when the guardrail blocks a prompt. + * + */ + public Output blockedInputMessaging() { + return this.blockedInputMessaging; + } + /** + * Message to return when the guardrail blocks a model response. + * + */ + @Export(name="blockedOutputsMessaging", refs={String.class}, tree="[0]") + private Output blockedOutputsMessaging; + + /** + * @return Message to return when the guardrail blocks a model response. + * + */ + public Output blockedOutputsMessaging() { + return this.blockedOutputsMessaging; + } + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + @Export(name="contentPolicyConfig", refs={GuardrailContentPolicyConfig.class}, tree="[0]") + private Output contentPolicyConfig; + + /** + * @return Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + public Output> contentPolicyConfig() { + return Codegen.optional(this.contentPolicyConfig); + } + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + @Export(name="contextualGroundingPolicyConfig", refs={GuardrailContextualGroundingPolicyConfig.class}, tree="[0]") + private Output contextualGroundingPolicyConfig; + + /** + * @return Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + public Output> contextualGroundingPolicyConfig() { + return Codegen.optional(this.contextualGroundingPolicyConfig); + } + /** + * Unix epoch timestamp in seconds for when the Guardrail was created. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Unix epoch timestamp in seconds for when the Guardrail was created. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Description of the guardrail or its version. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of the guardrail or its version. + * + */ + public Output description() { + return this.description; + } + /** + * ARN of the Guardrail. + * + */ + @Export(name="guardrailArn", refs={String.class}, tree="[0]") + private Output guardrailArn; + + /** + * @return ARN of the Guardrail. + * + */ + public Output guardrailArn() { + return this.guardrailArn; + } + /** + * ID of the Guardrail. + * + */ + @Export(name="guardrailId", refs={String.class}, tree="[0]") + private Output guardrailId; + + /** + * @return ID of the Guardrail. + * + */ + public Output guardrailId() { + return this.guardrailId; + } + /** + * The KMS key with which the guardrail was encrypted at rest. + * + */ + @Export(name="kmsKeyArn", refs={String.class}, tree="[0]") + private Output kmsKeyArn; + + /** + * @return The KMS key with which the guardrail was encrypted at rest. + * + */ + public Output> kmsKeyArn() { + return Codegen.optional(this.kmsKeyArn); + } + /** + * Name of the guardrail. + * + * The following arguments are optional: + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the guardrail. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + @Export(name="sensitiveInformationPolicyConfig", refs={GuardrailSensitiveInformationPolicyConfig.class}, tree="[0]") + private Output sensitiveInformationPolicyConfig; + + /** + * @return Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + public Output> sensitiveInformationPolicyConfig() { + return Codegen.optional(this.sensitiveInformationPolicyConfig); + } + /** + * Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + */ + public Output status() { + return this.status; + } + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={GuardrailTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + @Export(name="topicPolicyConfig", refs={GuardrailTopicPolicyConfig.class}, tree="[0]") + private Output topicPolicyConfig; + + /** + * @return Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + public Output> topicPolicyConfig() { + return Codegen.optional(this.topicPolicyConfig); + } + /** + * Version of the Guardrail. + * + */ + @Export(name="version", refs={String.class}, tree="[0]") + private Output version; + + /** + * @return Version of the Guardrail. + * + */ + public Output version() { + return this.version; + } + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + @Export(name="wordPolicyConfig", refs={GuardrailWordPolicyConfig.class}, tree="[0]") + private Output wordPolicyConfig; + + /** + * @return Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + public Output> wordPolicyConfig() { + return Codegen.optional(this.wordPolicyConfig); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Guardrail(java.lang.String name) { + this(name, GuardrailArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Guardrail(java.lang.String name, GuardrailArgs 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 Guardrail(java.lang.String name, GuardrailArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:bedrock/guardrail:Guardrail", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private Guardrail(java.lang.String name, Output id, @Nullable GuardrailState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:bedrock/guardrail:Guardrail", name, state, makeResourceOptions(options, id), false); + } + + private static GuardrailArgs makeArgs(GuardrailArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GuardrailArgs.Empty : args; + } + + 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 Guardrail get(java.lang.String name, Output id, @Nullable GuardrailState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Guardrail(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailArgs.java new file mode 100644 index 00000000000..2549d0e59c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/GuardrailArgs.java @@ -0,0 +1,492 @@ +// *** 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.aws.bedrock; + +import com.pulumi.aws.bedrock.inputs.GuardrailContentPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailContextualGroundingPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailTimeoutsArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailTopicPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailArgs Empty = new GuardrailArgs(); + + /** + * Message to return when the guardrail blocks a prompt. + * + */ + @Import(name="blockedInputMessaging", required=true) + private Output blockedInputMessaging; + + /** + * @return Message to return when the guardrail blocks a prompt. + * + */ + public Output blockedInputMessaging() { + return this.blockedInputMessaging; + } + + /** + * Message to return when the guardrail blocks a model response. + * + */ + @Import(name="blockedOutputsMessaging", required=true) + private Output blockedOutputsMessaging; + + /** + * @return Message to return when the guardrail blocks a model response. + * + */ + public Output blockedOutputsMessaging() { + return this.blockedOutputsMessaging; + } + + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + @Import(name="contentPolicyConfig") + private @Nullable Output contentPolicyConfig; + + /** + * @return Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + public Optional> contentPolicyConfig() { + return Optional.ofNullable(this.contentPolicyConfig); + } + + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + @Import(name="contextualGroundingPolicyConfig") + private @Nullable Output contextualGroundingPolicyConfig; + + /** + * @return Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + public Optional> contextualGroundingPolicyConfig() { + return Optional.ofNullable(this.contextualGroundingPolicyConfig); + } + + /** + * Description of the guardrail or its version. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the guardrail or its version. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The KMS key with which the guardrail was encrypted at rest. + * + */ + @Import(name="kmsKeyArn") + private @Nullable Output kmsKeyArn; + + /** + * @return The KMS key with which the guardrail was encrypted at rest. + * + */ + public Optional> kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + + /** + * Name of the guardrail. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the guardrail. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + @Import(name="sensitiveInformationPolicyConfig") + private @Nullable Output sensitiveInformationPolicyConfig; + + /** + * @return Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + public Optional> sensitiveInformationPolicyConfig() { + return Optional.ofNullable(this.sensitiveInformationPolicyConfig); + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + @Import(name="topicPolicyConfig") + private @Nullable Output topicPolicyConfig; + + /** + * @return Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + public Optional> topicPolicyConfig() { + return Optional.ofNullable(this.topicPolicyConfig); + } + + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + @Import(name="wordPolicyConfig") + private @Nullable Output wordPolicyConfig; + + /** + * @return Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + public Optional> wordPolicyConfig() { + return Optional.ofNullable(this.wordPolicyConfig); + } + + private GuardrailArgs() {} + + private GuardrailArgs(GuardrailArgs $) { + this.blockedInputMessaging = $.blockedInputMessaging; + this.blockedOutputsMessaging = $.blockedOutputsMessaging; + this.contentPolicyConfig = $.contentPolicyConfig; + this.contextualGroundingPolicyConfig = $.contextualGroundingPolicyConfig; + this.description = $.description; + this.kmsKeyArn = $.kmsKeyArn; + this.name = $.name; + this.sensitiveInformationPolicyConfig = $.sensitiveInformationPolicyConfig; + this.tags = $.tags; + this.timeouts = $.timeouts; + this.topicPolicyConfig = $.topicPolicyConfig; + this.wordPolicyConfig = $.wordPolicyConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailArgs $; + + public Builder() { + $ = new GuardrailArgs(); + } + + public Builder(GuardrailArgs defaults) { + $ = new GuardrailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param blockedInputMessaging Message to return when the guardrail blocks a prompt. + * + * @return builder + * + */ + public Builder blockedInputMessaging(Output blockedInputMessaging) { + $.blockedInputMessaging = blockedInputMessaging; + return this; + } + + /** + * @param blockedInputMessaging Message to return when the guardrail blocks a prompt. + * + * @return builder + * + */ + public Builder blockedInputMessaging(String blockedInputMessaging) { + return blockedInputMessaging(Output.of(blockedInputMessaging)); + } + + /** + * @param blockedOutputsMessaging Message to return when the guardrail blocks a model response. + * + * @return builder + * + */ + public Builder blockedOutputsMessaging(Output blockedOutputsMessaging) { + $.blockedOutputsMessaging = blockedOutputsMessaging; + return this; + } + + /** + * @param blockedOutputsMessaging Message to return when the guardrail blocks a model response. + * + * @return builder + * + */ + public Builder blockedOutputsMessaging(String blockedOutputsMessaging) { + return blockedOutputsMessaging(Output.of(blockedOutputsMessaging)); + } + + /** + * @param contentPolicyConfig Content policy config for a guardrail. See Content Policy Config for more information. + * + * @return builder + * + */ + public Builder contentPolicyConfig(@Nullable Output contentPolicyConfig) { + $.contentPolicyConfig = contentPolicyConfig; + return this; + } + + /** + * @param contentPolicyConfig Content policy config for a guardrail. See Content Policy Config for more information. + * + * @return builder + * + */ + public Builder contentPolicyConfig(GuardrailContentPolicyConfigArgs contentPolicyConfig) { + return contentPolicyConfig(Output.of(contentPolicyConfig)); + } + + /** + * @param contextualGroundingPolicyConfig Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + * @return builder + * + */ + public Builder contextualGroundingPolicyConfig(@Nullable Output contextualGroundingPolicyConfig) { + $.contextualGroundingPolicyConfig = contextualGroundingPolicyConfig; + return this; + } + + /** + * @param contextualGroundingPolicyConfig Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + * @return builder + * + */ + public Builder contextualGroundingPolicyConfig(GuardrailContextualGroundingPolicyConfigArgs contextualGroundingPolicyConfig) { + return contextualGroundingPolicyConfig(Output.of(contextualGroundingPolicyConfig)); + } + + /** + * @param description Description of the guardrail or its version. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the guardrail or its version. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param kmsKeyArn The KMS key with which the guardrail was encrypted at rest. + * + * @return builder + * + */ + public Builder kmsKeyArn(@Nullable Output kmsKeyArn) { + $.kmsKeyArn = kmsKeyArn; + return this; + } + + /** + * @param kmsKeyArn The KMS key with which the guardrail was encrypted at rest. + * + * @return builder + * + */ + public Builder kmsKeyArn(String kmsKeyArn) { + return kmsKeyArn(Output.of(kmsKeyArn)); + } + + /** + * @param name Name of the guardrail. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the guardrail. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param sensitiveInformationPolicyConfig Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + * @return builder + * + */ + public Builder sensitiveInformationPolicyConfig(@Nullable Output sensitiveInformationPolicyConfig) { + $.sensitiveInformationPolicyConfig = sensitiveInformationPolicyConfig; + return this; + } + + /** + * @param sensitiveInformationPolicyConfig Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + * @return builder + * + */ + public Builder sensitiveInformationPolicyConfig(GuardrailSensitiveInformationPolicyConfigArgs sensitiveInformationPolicyConfig) { + return sensitiveInformationPolicyConfig(Output.of(sensitiveInformationPolicyConfig)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GuardrailTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param topicPolicyConfig Topic policy config for a guardrail. See Topic Policy Config for more information. + * + * @return builder + * + */ + public Builder topicPolicyConfig(@Nullable Output topicPolicyConfig) { + $.topicPolicyConfig = topicPolicyConfig; + return this; + } + + /** + * @param topicPolicyConfig Topic policy config for a guardrail. See Topic Policy Config for more information. + * + * @return builder + * + */ + public Builder topicPolicyConfig(GuardrailTopicPolicyConfigArgs topicPolicyConfig) { + return topicPolicyConfig(Output.of(topicPolicyConfig)); + } + + /** + * @param wordPolicyConfig Word policy config for a guardrail. See Word Policy Config for more information. + * + * @return builder + * + */ + public Builder wordPolicyConfig(@Nullable Output wordPolicyConfig) { + $.wordPolicyConfig = wordPolicyConfig; + return this; + } + + /** + * @param wordPolicyConfig Word policy config for a guardrail. See Word Policy Config for more information. + * + * @return builder + * + */ + public Builder wordPolicyConfig(GuardrailWordPolicyConfigArgs wordPolicyConfig) { + return wordPolicyConfig(Output.of(wordPolicyConfig)); + } + + public GuardrailArgs build() { + if ($.blockedInputMessaging == null) { + throw new MissingRequiredPropertyException("GuardrailArgs", "blockedInputMessaging"); + } + if ($.blockedOutputsMessaging == null) { + throw new MissingRequiredPropertyException("GuardrailArgs", "blockedOutputsMessaging"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationState.java index b3bb469de8b..0dd68f3991a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationState.java @@ -3,6 +3,7 @@ package com.pulumi.aws.bedrock.inputs; +import com.pulumi.aws.bedrock.inputs.AgentAgentKnowledgeBaseAssociationTimeoutsArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.String; @@ -94,6 +95,13 @@ public Optional> knowledgeBaseState() { return Optional.ofNullable(this.knowledgeBaseState); } + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + private AgentAgentKnowledgeBaseAssociationState() {} private AgentAgentKnowledgeBaseAssociationState(AgentAgentKnowledgeBaseAssociationState $) { @@ -102,6 +110,7 @@ private AgentAgentKnowledgeBaseAssociationState(AgentAgentKnowledgeBaseAssociati this.description = $.description; this.knowledgeBaseId = $.knowledgeBaseId; this.knowledgeBaseState = $.knowledgeBaseState; + this.timeouts = $.timeouts; } public static Builder builder() { @@ -231,6 +240,15 @@ public Builder knowledgeBaseState(String knowledgeBaseState) { return knowledgeBaseState(Output.of(knowledgeBaseState)); } + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(AgentAgentKnowledgeBaseAssociationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + public AgentAgentKnowledgeBaseAssociationState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.java new file mode 100644 index 00000000000..1d0321b7034 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/AgentAgentKnowledgeBaseAssociationTimeoutsArgs.java @@ -0,0 +1,120 @@ +// *** 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.aws.bedrock.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 AgentAgentKnowledgeBaseAssociationTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final AgentAgentKnowledgeBaseAssociationTimeoutsArgs Empty = new AgentAgentKnowledgeBaseAssociationTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private AgentAgentKnowledgeBaseAssociationTimeoutsArgs() {} + + private AgentAgentKnowledgeBaseAssociationTimeoutsArgs(AgentAgentKnowledgeBaseAssociationTimeoutsArgs $) { + this.create = $.create; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AgentAgentKnowledgeBaseAssociationTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AgentAgentKnowledgeBaseAssociationTimeoutsArgs $; + + public Builder() { + $ = new AgentAgentKnowledgeBaseAssociationTimeoutsArgs(); + } + + public Builder(AgentAgentKnowledgeBaseAssociationTimeoutsArgs defaults) { + $ = new AgentAgentKnowledgeBaseAssociationTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public AgentAgentKnowledgeBaseAssociationTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummary.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummary.java new file mode 100644 index 00000000000..37428b50802 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummary.java @@ -0,0 +1,248 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAgentAgentVersionsAgentVersionSummary extends com.pulumi.resources.InvokeArgs { + + public static final GetAgentAgentVersionsAgentVersionSummary Empty = new GetAgentAgentVersionsAgentVersionSummary(); + + /** + * Name of agent to which the version belongs. + * + */ + @Import(name="agentName", required=true) + private String agentName; + + /** + * @return Name of agent to which the version belongs. + * + */ + public String agentName() { + return this.agentName; + } + + /** + * Status of the agent to which the version belongs. + * + */ + @Import(name="agentStatus", required=true) + private String agentStatus; + + /** + * @return Status of the agent to which the version belongs. + * + */ + public String agentStatus() { + return this.agentStatus; + } + + /** + * Version of the agent. + * + */ + @Import(name="agentVersion", required=true) + private String agentVersion; + + /** + * @return Version of the agent. + * + */ + public String agentVersion() { + return this.agentVersion; + } + + /** + * Time at which the version was created. + * + */ + @Import(name="createdAt", required=true) + private String createdAt; + + /** + * @return Time at which the version was created. + * + */ + public String createdAt() { + return this.createdAt; + } + + /** + * Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + @Import(name="description", required=true) + private String description; + + /** + * @return Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + public String description() { + return this.description; + } + + @Import(name="guardrailConfigurations") + private @Nullable List guardrailConfigurations; + + public Optional> guardrailConfigurations() { + return Optional.ofNullable(this.guardrailConfigurations); + } + + /** + * Time at which the version was last updated. + * + */ + @Import(name="updatedAt", required=true) + private String updatedAt; + + /** + * @return Time at which the version was last updated. + * + */ + public String updatedAt() { + return this.updatedAt; + } + + private GetAgentAgentVersionsAgentVersionSummary() {} + + private GetAgentAgentVersionsAgentVersionSummary(GetAgentAgentVersionsAgentVersionSummary $) { + this.agentName = $.agentName; + this.agentStatus = $.agentStatus; + this.agentVersion = $.agentVersion; + this.createdAt = $.createdAt; + this.description = $.description; + this.guardrailConfigurations = $.guardrailConfigurations; + this.updatedAt = $.updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsAgentVersionSummary defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsAgentVersionSummary $; + + public Builder() { + $ = new GetAgentAgentVersionsAgentVersionSummary(); + } + + public Builder(GetAgentAgentVersionsAgentVersionSummary defaults) { + $ = new GetAgentAgentVersionsAgentVersionSummary(Objects.requireNonNull(defaults)); + } + + /** + * @param agentName Name of agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentName(String agentName) { + $.agentName = agentName; + return this; + } + + /** + * @param agentStatus Status of the agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentStatus(String agentStatus) { + $.agentStatus = agentStatus; + return this; + } + + /** + * @param agentVersion Version of the agent. + * + * @return builder + * + */ + public Builder agentVersion(String agentVersion) { + $.agentVersion = agentVersion; + return this; + } + + /** + * @param createdAt Time at which the version was created. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param description Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + * @return builder + * + */ + public Builder description(String description) { + $.description = description; + return this; + } + + public Builder guardrailConfigurations(@Nullable List guardrailConfigurations) { + $.guardrailConfigurations = guardrailConfigurations; + return this; + } + + public Builder guardrailConfigurations(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration... guardrailConfigurations) { + return guardrailConfigurations(List.of(guardrailConfigurations)); + } + + /** + * @param updatedAt Time at which the version was last updated. + * + * @return builder + * + */ + public Builder updatedAt(String updatedAt) { + $.updatedAt = updatedAt; + return this; + } + + public GetAgentAgentVersionsAgentVersionSummary build() { + if ($.agentName == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentName"); + } + if ($.agentStatus == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentStatus"); + } + if ($.agentVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentVersion"); + } + if ($.createdAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "createdAt"); + } + if ($.description == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "description"); + } + if ($.updatedAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "updatedAt"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.java new file mode 100644 index 00000000000..c526817fa3f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryArgs.java @@ -0,0 +1,314 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAgentAgentVersionsAgentVersionSummaryArgs extends com.pulumi.resources.ResourceArgs { + + public static final GetAgentAgentVersionsAgentVersionSummaryArgs Empty = new GetAgentAgentVersionsAgentVersionSummaryArgs(); + + /** + * Name of agent to which the version belongs. + * + */ + @Import(name="agentName", required=true) + private Output agentName; + + /** + * @return Name of agent to which the version belongs. + * + */ + public Output agentName() { + return this.agentName; + } + + /** + * Status of the agent to which the version belongs. + * + */ + @Import(name="agentStatus", required=true) + private Output agentStatus; + + /** + * @return Status of the agent to which the version belongs. + * + */ + public Output agentStatus() { + return this.agentStatus; + } + + /** + * Version of the agent. + * + */ + @Import(name="agentVersion", required=true) + private Output agentVersion; + + /** + * @return Version of the agent. + * + */ + public Output agentVersion() { + return this.agentVersion; + } + + /** + * Time at which the version was created. + * + */ + @Import(name="createdAt", required=true) + private Output createdAt; + + /** + * @return Time at which the version was created. + * + */ + public Output createdAt() { + return this.createdAt; + } + + /** + * Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + @Import(name="description", required=true) + private Output description; + + /** + * @return Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + public Output description() { + return this.description; + } + + @Import(name="guardrailConfigurations") + private @Nullable Output> guardrailConfigurations; + + public Optional>> guardrailConfigurations() { + return Optional.ofNullable(this.guardrailConfigurations); + } + + /** + * Time at which the version was last updated. + * + */ + @Import(name="updatedAt", required=true) + private Output updatedAt; + + /** + * @return Time at which the version was last updated. + * + */ + public Output updatedAt() { + return this.updatedAt; + } + + private GetAgentAgentVersionsAgentVersionSummaryArgs() {} + + private GetAgentAgentVersionsAgentVersionSummaryArgs(GetAgentAgentVersionsAgentVersionSummaryArgs $) { + this.agentName = $.agentName; + this.agentStatus = $.agentStatus; + this.agentVersion = $.agentVersion; + this.createdAt = $.createdAt; + this.description = $.description; + this.guardrailConfigurations = $.guardrailConfigurations; + this.updatedAt = $.updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsAgentVersionSummaryArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsAgentVersionSummaryArgs $; + + public Builder() { + $ = new GetAgentAgentVersionsAgentVersionSummaryArgs(); + } + + public Builder(GetAgentAgentVersionsAgentVersionSummaryArgs defaults) { + $ = new GetAgentAgentVersionsAgentVersionSummaryArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param agentName Name of agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentName(Output agentName) { + $.agentName = agentName; + return this; + } + + /** + * @param agentName Name of agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentName(String agentName) { + return agentName(Output.of(agentName)); + } + + /** + * @param agentStatus Status of the agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentStatus(Output agentStatus) { + $.agentStatus = agentStatus; + return this; + } + + /** + * @param agentStatus Status of the agent to which the version belongs. + * + * @return builder + * + */ + public Builder agentStatus(String agentStatus) { + return agentStatus(Output.of(agentStatus)); + } + + /** + * @param agentVersion Version of the agent. + * + * @return builder + * + */ + public Builder agentVersion(Output agentVersion) { + $.agentVersion = agentVersion; + return this; + } + + /** + * @param agentVersion Version of the agent. + * + * @return builder + * + */ + public Builder agentVersion(String agentVersion) { + return agentVersion(Output.of(agentVersion)); + } + + /** + * @param createdAt Time at which the version was created. + * + * @return builder + * + */ + public Builder createdAt(Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Time at which the version was created. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param description Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + * @return builder + * + */ + public Builder description(Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + public Builder guardrailConfigurations(@Nullable Output> guardrailConfigurations) { + $.guardrailConfigurations = guardrailConfigurations; + return this; + } + + public Builder guardrailConfigurations(List guardrailConfigurations) { + return guardrailConfigurations(Output.of(guardrailConfigurations)); + } + + public Builder guardrailConfigurations(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs... guardrailConfigurations) { + return guardrailConfigurations(List.of(guardrailConfigurations)); + } + + /** + * @param updatedAt Time at which the version was last updated. + * + * @return builder + * + */ + public Builder updatedAt(Output updatedAt) { + $.updatedAt = updatedAt; + return this; + } + + /** + * @param updatedAt Time at which the version was last updated. + * + * @return builder + * + */ + public Builder updatedAt(String updatedAt) { + return updatedAt(Output.of(updatedAt)); + } + + public GetAgentAgentVersionsAgentVersionSummaryArgs build() { + if ($.agentName == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "agentName"); + } + if ($.agentStatus == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "agentStatus"); + } + if ($.agentVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "agentVersion"); + } + if ($.createdAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "createdAt"); + } + if ($.description == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "description"); + } + if ($.updatedAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryArgs", "updatedAt"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java new file mode 100644 index 00000000000..8c0e196cc21 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java @@ -0,0 +1,104 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration extends com.pulumi.resources.InvokeArgs { + + public static final GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration Empty = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration(); + + /** + * Unique identifier of the guardrail. + * + */ + @Import(name="guardrailIdentifier", required=true) + private String guardrailIdentifier; + + /** + * @return Unique identifier of the guardrail. + * + */ + public String guardrailIdentifier() { + return this.guardrailIdentifier; + } + + /** + * Version of the guardrail. + * + */ + @Import(name="guardrailVersion", required=true) + private String guardrailVersion; + + /** + * @return Version of the guardrail. + * + */ + public String guardrailVersion() { + return this.guardrailVersion; + } + + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration() {} + + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration $) { + this.guardrailIdentifier = $.guardrailIdentifier; + this.guardrailVersion = $.guardrailVersion; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration $; + + public Builder() { + $ = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration(); + } + + public Builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration defaults) { + $ = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration(Objects.requireNonNull(defaults)); + } + + /** + * @param guardrailIdentifier Unique identifier of the guardrail. + * + * @return builder + * + */ + public Builder guardrailIdentifier(String guardrailIdentifier) { + $.guardrailIdentifier = guardrailIdentifier; + return this; + } + + /** + * @param guardrailVersion Version of the guardrail. + * + * @return builder + * + */ + public Builder guardrailVersion(String guardrailVersion) { + $.guardrailVersion = guardrailVersion; + return this; + } + + public GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration build() { + if ($.guardrailIdentifier == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration", "guardrailIdentifier"); + } + if ($.guardrailVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration", "guardrailVersion"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.java new file mode 100644 index 00000000000..233dfdc328a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs.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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs Empty = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs(); + + /** + * Unique identifier of the guardrail. + * + */ + @Import(name="guardrailIdentifier", required=true) + private Output guardrailIdentifier; + + /** + * @return Unique identifier of the guardrail. + * + */ + public Output guardrailIdentifier() { + return this.guardrailIdentifier; + } + + /** + * Version of the guardrail. + * + */ + @Import(name="guardrailVersion", required=true) + private Output guardrailVersion; + + /** + * @return Version of the guardrail. + * + */ + public Output guardrailVersion() { + return this.guardrailVersion; + } + + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs() {} + + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs $) { + this.guardrailIdentifier = $.guardrailIdentifier; + this.guardrailVersion = $.guardrailVersion; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs $; + + public Builder() { + $ = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs(); + } + + public Builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs defaults) { + $ = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param guardrailIdentifier Unique identifier of the guardrail. + * + * @return builder + * + */ + public Builder guardrailIdentifier(Output guardrailIdentifier) { + $.guardrailIdentifier = guardrailIdentifier; + return this; + } + + /** + * @param guardrailIdentifier Unique identifier of the guardrail. + * + * @return builder + * + */ + public Builder guardrailIdentifier(String guardrailIdentifier) { + return guardrailIdentifier(Output.of(guardrailIdentifier)); + } + + /** + * @param guardrailVersion Version of the guardrail. + * + * @return builder + * + */ + public Builder guardrailVersion(Output guardrailVersion) { + $.guardrailVersion = guardrailVersion; + return this; + } + + /** + * @param guardrailVersion Version of the guardrail. + * + * @return builder + * + */ + public Builder guardrailVersion(String guardrailVersion) { + return guardrailVersion(Output.of(guardrailVersion)); + } + + public GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs build() { + if ($.guardrailIdentifier == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs", "guardrailIdentifier"); + } + if ($.guardrailVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs", "guardrailVersion"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsArgs.java new file mode 100644 index 00000000000..28ab7710c13 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsArgs.java @@ -0,0 +1,136 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsAgentVersionSummaryArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAgentAgentVersionsArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAgentAgentVersionsArgs Empty = new GetAgentAgentVersionsArgs(); + + /** + * Unique identifier of the agent. + * + */ + @Import(name="agentId", required=true) + private Output agentId; + + /** + * @return Unique identifier of the agent. + * + */ + public Output agentId() { + return this.agentId; + } + + /** + * List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + @Import(name="agentVersionSummaries") + private @Nullable Output> agentVersionSummaries; + + /** + * @return List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + public Optional>> agentVersionSummaries() { + return Optional.ofNullable(this.agentVersionSummaries); + } + + private GetAgentAgentVersionsArgs() {} + + private GetAgentAgentVersionsArgs(GetAgentAgentVersionsArgs $) { + this.agentId = $.agentId; + this.agentVersionSummaries = $.agentVersionSummaries; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsArgs $; + + public Builder() { + $ = new GetAgentAgentVersionsArgs(); + } + + public Builder(GetAgentAgentVersionsArgs defaults) { + $ = new GetAgentAgentVersionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param agentId Unique identifier of the agent. + * + * @return builder + * + */ + public Builder agentId(Output agentId) { + $.agentId = agentId; + return this; + } + + /** + * @param agentId Unique identifier of the agent. + * + * @return builder + * + */ + public Builder agentId(String agentId) { + return agentId(Output.of(agentId)); + } + + /** + * @param agentVersionSummaries List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + * @return builder + * + */ + public Builder agentVersionSummaries(@Nullable Output> agentVersionSummaries) { + $.agentVersionSummaries = agentVersionSummaries; + return this; + } + + /** + * @param agentVersionSummaries List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + * @return builder + * + */ + public Builder agentVersionSummaries(List agentVersionSummaries) { + return agentVersionSummaries(Output.of(agentVersionSummaries)); + } + + /** + * @param agentVersionSummaries List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + * @return builder + * + */ + public Builder agentVersionSummaries(GetAgentAgentVersionsAgentVersionSummaryArgs... agentVersionSummaries) { + return agentVersionSummaries(List.of(agentVersionSummaries)); + } + + public GetAgentAgentVersionsArgs build() { + if ($.agentId == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsArgs", "agentId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsPlainArgs.java new file mode 100644 index 00000000000..e2b423cf6ac --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GetAgentAgentVersionsPlainArgs.java @@ -0,0 +1,115 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GetAgentAgentVersionsAgentVersionSummary; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetAgentAgentVersionsPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAgentAgentVersionsPlainArgs Empty = new GetAgentAgentVersionsPlainArgs(); + + /** + * Unique identifier of the agent. + * + */ + @Import(name="agentId", required=true) + private String agentId; + + /** + * @return Unique identifier of the agent. + * + */ + public String agentId() { + return this.agentId; + } + + /** + * List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + @Import(name="agentVersionSummaries") + private @Nullable List agentVersionSummaries; + + /** + * @return List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + public Optional> agentVersionSummaries() { + return Optional.ofNullable(this.agentVersionSummaries); + } + + private GetAgentAgentVersionsPlainArgs() {} + + private GetAgentAgentVersionsPlainArgs(GetAgentAgentVersionsPlainArgs $) { + this.agentId = $.agentId; + this.agentVersionSummaries = $.agentVersionSummaries; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAgentAgentVersionsPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAgentAgentVersionsPlainArgs $; + + public Builder() { + $ = new GetAgentAgentVersionsPlainArgs(); + } + + public Builder(GetAgentAgentVersionsPlainArgs defaults) { + $ = new GetAgentAgentVersionsPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param agentId Unique identifier of the agent. + * + * @return builder + * + */ + public Builder agentId(String agentId) { + $.agentId = agentId; + return this; + } + + /** + * @param agentVersionSummaries List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + * @return builder + * + */ + public Builder agentVersionSummaries(@Nullable List agentVersionSummaries) { + $.agentVersionSummaries = agentVersionSummaries; + return this; + } + + /** + * @param agentVersionSummaries List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + * @return builder + * + */ + public Builder agentVersionSummaries(GetAgentAgentVersionsAgentVersionSummary... agentVersionSummaries) { + return agentVersionSummaries(List.of(agentVersionSummaries)); + } + + public GetAgentAgentVersionsPlainArgs build() { + if ($.agentId == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsPlainArgs", "agentId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigArgs.java new file mode 100644 index 00000000000..518cb8e5cda --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigArgs.java @@ -0,0 +1,94 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailContentPolicyConfigFiltersConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailContentPolicyConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailContentPolicyConfigArgs Empty = new GuardrailContentPolicyConfigArgs(); + + /** + * List of content filter configs in content policy. See Filters Config for more information. + * + */ + @Import(name="filtersConfigs") + private @Nullable Output> filtersConfigs; + + /** + * @return List of content filter configs in content policy. See Filters Config for more information. + * + */ + public Optional>> filtersConfigs() { + return Optional.ofNullable(this.filtersConfigs); + } + + private GuardrailContentPolicyConfigArgs() {} + + private GuardrailContentPolicyConfigArgs(GuardrailContentPolicyConfigArgs $) { + this.filtersConfigs = $.filtersConfigs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailContentPolicyConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailContentPolicyConfigArgs $; + + public Builder() { + $ = new GuardrailContentPolicyConfigArgs(); + } + + public Builder(GuardrailContentPolicyConfigArgs defaults) { + $ = new GuardrailContentPolicyConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param filtersConfigs List of content filter configs in content policy. See Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(@Nullable Output> filtersConfigs) { + $.filtersConfigs = filtersConfigs; + return this; + } + + /** + * @param filtersConfigs List of content filter configs in content policy. See Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(List filtersConfigs) { + return filtersConfigs(Output.of(filtersConfigs)); + } + + /** + * @param filtersConfigs List of content filter configs in content policy. See Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(GuardrailContentPolicyConfigFiltersConfigArgs... filtersConfigs) { + return filtersConfigs(List.of(filtersConfigs)); + } + + public GuardrailContentPolicyConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigFiltersConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigFiltersConfigArgs.java new file mode 100644 index 00000000000..36c51acabec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContentPolicyConfigFiltersConfigArgs.java @@ -0,0 +1,165 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GuardrailContentPolicyConfigFiltersConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailContentPolicyConfigFiltersConfigArgs Empty = new GuardrailContentPolicyConfigFiltersConfigArgs(); + + /** + * Strength for filters. + * + */ + @Import(name="inputStrength", required=true) + private Output inputStrength; + + /** + * @return Strength for filters. + * + */ + public Output inputStrength() { + return this.inputStrength; + } + + /** + * Strength for filters. + * + */ + @Import(name="outputStrength", required=true) + private Output outputStrength; + + /** + * @return Strength for filters. + * + */ + public Output outputStrength() { + return this.outputStrength; + } + + /** + * Type of contextual grounding filter. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Type of contextual grounding filter. + * + */ + public Output type() { + return this.type; + } + + private GuardrailContentPolicyConfigFiltersConfigArgs() {} + + private GuardrailContentPolicyConfigFiltersConfigArgs(GuardrailContentPolicyConfigFiltersConfigArgs $) { + this.inputStrength = $.inputStrength; + this.outputStrength = $.outputStrength; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailContentPolicyConfigFiltersConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailContentPolicyConfigFiltersConfigArgs $; + + public Builder() { + $ = new GuardrailContentPolicyConfigFiltersConfigArgs(); + } + + public Builder(GuardrailContentPolicyConfigFiltersConfigArgs defaults) { + $ = new GuardrailContentPolicyConfigFiltersConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param inputStrength Strength for filters. + * + * @return builder + * + */ + public Builder inputStrength(Output inputStrength) { + $.inputStrength = inputStrength; + return this; + } + + /** + * @param inputStrength Strength for filters. + * + * @return builder + * + */ + public Builder inputStrength(String inputStrength) { + return inputStrength(Output.of(inputStrength)); + } + + /** + * @param outputStrength Strength for filters. + * + * @return builder + * + */ + public Builder outputStrength(Output outputStrength) { + $.outputStrength = outputStrength; + return this; + } + + /** + * @param outputStrength Strength for filters. + * + * @return builder + * + */ + public Builder outputStrength(String outputStrength) { + return outputStrength(Output.of(outputStrength)); + } + + /** + * @param type Type of contextual grounding filter. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Type of contextual grounding filter. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public GuardrailContentPolicyConfigFiltersConfigArgs build() { + if ($.inputStrength == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfigArgs", "inputStrength"); + } + if ($.outputStrength == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfigArgs", "outputStrength"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigArgs.java new file mode 100644 index 00000000000..10db0243977 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigArgs.java @@ -0,0 +1,94 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailContextualGroundingPolicyConfigFiltersConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailContextualGroundingPolicyConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailContextualGroundingPolicyConfigArgs Empty = new GuardrailContextualGroundingPolicyConfigArgs(); + + /** + * List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + */ + @Import(name="filtersConfigs") + private @Nullable Output> filtersConfigs; + + /** + * @return List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + */ + public Optional>> filtersConfigs() { + return Optional.ofNullable(this.filtersConfigs); + } + + private GuardrailContextualGroundingPolicyConfigArgs() {} + + private GuardrailContextualGroundingPolicyConfigArgs(GuardrailContextualGroundingPolicyConfigArgs $) { + this.filtersConfigs = $.filtersConfigs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailContextualGroundingPolicyConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailContextualGroundingPolicyConfigArgs $; + + public Builder() { + $ = new GuardrailContextualGroundingPolicyConfigArgs(); + } + + public Builder(GuardrailContextualGroundingPolicyConfigArgs defaults) { + $ = new GuardrailContextualGroundingPolicyConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param filtersConfigs List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(@Nullable Output> filtersConfigs) { + $.filtersConfigs = filtersConfigs; + return this; + } + + /** + * @param filtersConfigs List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(List filtersConfigs) { + return filtersConfigs(Output.of(filtersConfigs)); + } + + /** + * @param filtersConfigs List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + * @return builder + * + */ + public Builder filtersConfigs(GuardrailContextualGroundingPolicyConfigFiltersConfigArgs... filtersConfigs) { + return filtersConfigs(List.of(filtersConfigs)); + } + + public GuardrailContextualGroundingPolicyConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.java new file mode 100644 index 00000000000..fd3a85fee8e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailContextualGroundingPolicyConfigFiltersConfigArgs.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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; + + +public final class GuardrailContextualGroundingPolicyConfigFiltersConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailContextualGroundingPolicyConfigFiltersConfigArgs Empty = new GuardrailContextualGroundingPolicyConfigFiltersConfigArgs(); + + /** + * The threshold for this filter. + * + */ + @Import(name="threshold", required=true) + private Output threshold; + + /** + * @return The threshold for this filter. + * + */ + public Output threshold() { + return this.threshold; + } + + /** + * Type of contextual grounding filter. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Type of contextual grounding filter. + * + */ + public Output type() { + return this.type; + } + + private GuardrailContextualGroundingPolicyConfigFiltersConfigArgs() {} + + private GuardrailContextualGroundingPolicyConfigFiltersConfigArgs(GuardrailContextualGroundingPolicyConfigFiltersConfigArgs $) { + this.threshold = $.threshold; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailContextualGroundingPolicyConfigFiltersConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailContextualGroundingPolicyConfigFiltersConfigArgs $; + + public Builder() { + $ = new GuardrailContextualGroundingPolicyConfigFiltersConfigArgs(); + } + + public Builder(GuardrailContextualGroundingPolicyConfigFiltersConfigArgs defaults) { + $ = new GuardrailContextualGroundingPolicyConfigFiltersConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param threshold The threshold for this filter. + * + * @return builder + * + */ + public Builder threshold(Output threshold) { + $.threshold = threshold; + return this; + } + + /** + * @param threshold The threshold for this filter. + * + * @return builder + * + */ + public Builder threshold(Double threshold) { + return threshold(Output.of(threshold)); + } + + /** + * @param type Type of contextual grounding filter. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Type of contextual grounding filter. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public GuardrailContextualGroundingPolicyConfigFiltersConfigArgs build() { + if ($.threshold == null) { + throw new MissingRequiredPropertyException("GuardrailContextualGroundingPolicyConfigFiltersConfigArgs", "threshold"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("GuardrailContextualGroundingPolicyConfigFiltersConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigArgs.java new file mode 100644 index 00000000000..bd025187947 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigArgs.java @@ -0,0 +1,142 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailSensitiveInformationPolicyConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailSensitiveInformationPolicyConfigArgs Empty = new GuardrailSensitiveInformationPolicyConfigArgs(); + + /** + * List of entities. See PII Entities Config for more information. + * + */ + @Import(name="piiEntitiesConfigs") + private @Nullable Output> piiEntitiesConfigs; + + /** + * @return List of entities. See PII Entities Config for more information. + * + */ + public Optional>> piiEntitiesConfigs() { + return Optional.ofNullable(this.piiEntitiesConfigs); + } + + /** + * List of regex. See Regexes Config for more information. + * + */ + @Import(name="regexesConfigs") + private @Nullable Output> regexesConfigs; + + /** + * @return List of regex. See Regexes Config for more information. + * + */ + public Optional>> regexesConfigs() { + return Optional.ofNullable(this.regexesConfigs); + } + + private GuardrailSensitiveInformationPolicyConfigArgs() {} + + private GuardrailSensitiveInformationPolicyConfigArgs(GuardrailSensitiveInformationPolicyConfigArgs $) { + this.piiEntitiesConfigs = $.piiEntitiesConfigs; + this.regexesConfigs = $.regexesConfigs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailSensitiveInformationPolicyConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailSensitiveInformationPolicyConfigArgs $; + + public Builder() { + $ = new GuardrailSensitiveInformationPolicyConfigArgs(); + } + + public Builder(GuardrailSensitiveInformationPolicyConfigArgs defaults) { + $ = new GuardrailSensitiveInformationPolicyConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param piiEntitiesConfigs List of entities. See PII Entities Config for more information. + * + * @return builder + * + */ + public Builder piiEntitiesConfigs(@Nullable Output> piiEntitiesConfigs) { + $.piiEntitiesConfigs = piiEntitiesConfigs; + return this; + } + + /** + * @param piiEntitiesConfigs List of entities. See PII Entities Config for more information. + * + * @return builder + * + */ + public Builder piiEntitiesConfigs(List piiEntitiesConfigs) { + return piiEntitiesConfigs(Output.of(piiEntitiesConfigs)); + } + + /** + * @param piiEntitiesConfigs List of entities. See PII Entities Config for more information. + * + * @return builder + * + */ + public Builder piiEntitiesConfigs(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs... piiEntitiesConfigs) { + return piiEntitiesConfigs(List.of(piiEntitiesConfigs)); + } + + /** + * @param regexesConfigs List of regex. See Regexes Config for more information. + * + * @return builder + * + */ + public Builder regexesConfigs(@Nullable Output> regexesConfigs) { + $.regexesConfigs = regexesConfigs; + return this; + } + + /** + * @param regexesConfigs List of regex. See Regexes Config for more information. + * + * @return builder + * + */ + public Builder regexesConfigs(List regexesConfigs) { + return regexesConfigs(Output.of(regexesConfigs)); + } + + /** + * @param regexesConfigs List of regex. See Regexes Config for more information. + * + * @return builder + * + */ + public Builder regexesConfigs(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs... regexesConfigs) { + return regexesConfigs(List.of(regexesConfigs)); + } + + public GuardrailSensitiveInformationPolicyConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.java new file mode 100644 index 00000000000..42d0dc71acd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs.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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs Empty = new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs(); + + /** + * Options for sensitive information action. + * + */ + @Import(name="action", required=true) + private Output action; + + /** + * @return Options for sensitive information action. + * + */ + public Output action() { + return this.action; + } + + /** + * The currently supported PII entities. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The currently supported PII entities. + * + */ + public Output type() { + return this.type; + } + + private GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs() {} + + private GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs $) { + this.action = $.action; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs $; + + public Builder() { + $ = new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs(); + } + + public Builder(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs defaults) { + $ = new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param action Options for sensitive information action. + * + * @return builder + * + */ + public Builder action(Output action) { + $.action = action; + return this; + } + + /** + * @param action Options for sensitive information action. + * + * @return builder + * + */ + public Builder action(String action) { + return action(Output.of(action)); + } + + /** + * @param type The currently supported PII entities. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The currently supported PII entities. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs build() { + if ($.action == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs", "action"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.java new file mode 100644 index 00000000000..49b610d699f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs.java @@ -0,0 +1,204 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs Empty = new GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs(); + + /** + * Options for sensitive information action. + * + */ + @Import(name="action", required=true) + private Output action; + + /** + * @return Options for sensitive information action. + * + */ + public Output action() { + return this.action; + } + + /** + * The regex description. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return The regex description. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The regex name. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return The regex name. + * + */ + public Output name() { + return this.name; + } + + /** + * The regex pattern. + * + */ + @Import(name="pattern", required=true) + private Output pattern; + + /** + * @return The regex pattern. + * + */ + public Output pattern() { + return this.pattern; + } + + private GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs() {} + + private GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs $) { + this.action = $.action; + this.description = $.description; + this.name = $.name; + this.pattern = $.pattern; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs $; + + public Builder() { + $ = new GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs(); + } + + public Builder(GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs defaults) { + $ = new GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param action Options for sensitive information action. + * + * @return builder + * + */ + public Builder action(Output action) { + $.action = action; + return this; + } + + /** + * @param action Options for sensitive information action. + * + * @return builder + * + */ + public Builder action(String action) { + return action(Output.of(action)); + } + + /** + * @param description The regex description. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description The regex description. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param name The regex name. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name The regex name. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param pattern The regex pattern. + * + * @return builder + * + */ + public Builder pattern(Output pattern) { + $.pattern = pattern; + return this; + } + + /** + * @param pattern The regex pattern. + * + * @return builder + * + */ + public Builder pattern(String pattern) { + return pattern(Output.of(pattern)); + } + + public GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs build() { + if ($.action == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs", "action"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs", "name"); + } + if ($.pattern == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs", "pattern"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailState.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailState.java new file mode 100644 index 00000000000..afbcf4832f3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailState.java @@ -0,0 +1,715 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailContentPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailContextualGroundingPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailSensitiveInformationPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailTimeoutsArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailTopicPolicyConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailState extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailState Empty = new GuardrailState(); + + /** + * Message to return when the guardrail blocks a prompt. + * + */ + @Import(name="blockedInputMessaging") + private @Nullable Output blockedInputMessaging; + + /** + * @return Message to return when the guardrail blocks a prompt. + * + */ + public Optional> blockedInputMessaging() { + return Optional.ofNullable(this.blockedInputMessaging); + } + + /** + * Message to return when the guardrail blocks a model response. + * + */ + @Import(name="blockedOutputsMessaging") + private @Nullable Output blockedOutputsMessaging; + + /** + * @return Message to return when the guardrail blocks a model response. + * + */ + public Optional> blockedOutputsMessaging() { + return Optional.ofNullable(this.blockedOutputsMessaging); + } + + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + @Import(name="contentPolicyConfig") + private @Nullable Output contentPolicyConfig; + + /** + * @return Content policy config for a guardrail. See Content Policy Config for more information. + * + */ + public Optional> contentPolicyConfig() { + return Optional.ofNullable(this.contentPolicyConfig); + } + + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + @Import(name="contextualGroundingPolicyConfig") + private @Nullable Output contextualGroundingPolicyConfig; + + /** + * @return Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + */ + public Optional> contextualGroundingPolicyConfig() { + return Optional.ofNullable(this.contextualGroundingPolicyConfig); + } + + /** + * Unix epoch timestamp in seconds for when the Guardrail was created. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Unix epoch timestamp in seconds for when the Guardrail was created. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Description of the guardrail or its version. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the guardrail or its version. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * ARN of the Guardrail. + * + */ + @Import(name="guardrailArn") + private @Nullable Output guardrailArn; + + /** + * @return ARN of the Guardrail. + * + */ + public Optional> guardrailArn() { + return Optional.ofNullable(this.guardrailArn); + } + + /** + * ID of the Guardrail. + * + */ + @Import(name="guardrailId") + private @Nullable Output guardrailId; + + /** + * @return ID of the Guardrail. + * + */ + public Optional> guardrailId() { + return Optional.ofNullable(this.guardrailId); + } + + /** + * The KMS key with which the guardrail was encrypted at rest. + * + */ + @Import(name="kmsKeyArn") + private @Nullable Output kmsKeyArn; + + /** + * @return The KMS key with which the guardrail was encrypted at rest. + * + */ + public Optional> kmsKeyArn() { + return Optional.ofNullable(this.kmsKeyArn); + } + + /** + * Name of the guardrail. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the guardrail. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + @Import(name="sensitiveInformationPolicyConfig") + private @Nullable Output sensitiveInformationPolicyConfig; + + /** + * @return Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + */ + public Optional> sensitiveInformationPolicyConfig() { + return Optional.ofNullable(this.sensitiveInformationPolicyConfig); + } + + /** + * Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + @Import(name="topicPolicyConfig") + private @Nullable Output topicPolicyConfig; + + /** + * @return Topic policy config for a guardrail. See Topic Policy Config for more information. + * + */ + public Optional> topicPolicyConfig() { + return Optional.ofNullable(this.topicPolicyConfig); + } + + /** + * Version of the Guardrail. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return Version of the Guardrail. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + @Import(name="wordPolicyConfig") + private @Nullable Output wordPolicyConfig; + + /** + * @return Word policy config for a guardrail. See Word Policy Config for more information. + * + */ + public Optional> wordPolicyConfig() { + return Optional.ofNullable(this.wordPolicyConfig); + } + + private GuardrailState() {} + + private GuardrailState(GuardrailState $) { + this.blockedInputMessaging = $.blockedInputMessaging; + this.blockedOutputsMessaging = $.blockedOutputsMessaging; + this.contentPolicyConfig = $.contentPolicyConfig; + this.contextualGroundingPolicyConfig = $.contextualGroundingPolicyConfig; + this.createdAt = $.createdAt; + this.description = $.description; + this.guardrailArn = $.guardrailArn; + this.guardrailId = $.guardrailId; + this.kmsKeyArn = $.kmsKeyArn; + this.name = $.name; + this.sensitiveInformationPolicyConfig = $.sensitiveInformationPolicyConfig; + this.status = $.status; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + this.topicPolicyConfig = $.topicPolicyConfig; + this.version = $.version; + this.wordPolicyConfig = $.wordPolicyConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailState $; + + public Builder() { + $ = new GuardrailState(); + } + + public Builder(GuardrailState defaults) { + $ = new GuardrailState(Objects.requireNonNull(defaults)); + } + + /** + * @param blockedInputMessaging Message to return when the guardrail blocks a prompt. + * + * @return builder + * + */ + public Builder blockedInputMessaging(@Nullable Output blockedInputMessaging) { + $.blockedInputMessaging = blockedInputMessaging; + return this; + } + + /** + * @param blockedInputMessaging Message to return when the guardrail blocks a prompt. + * + * @return builder + * + */ + public Builder blockedInputMessaging(String blockedInputMessaging) { + return blockedInputMessaging(Output.of(blockedInputMessaging)); + } + + /** + * @param blockedOutputsMessaging Message to return when the guardrail blocks a model response. + * + * @return builder + * + */ + public Builder blockedOutputsMessaging(@Nullable Output blockedOutputsMessaging) { + $.blockedOutputsMessaging = blockedOutputsMessaging; + return this; + } + + /** + * @param blockedOutputsMessaging Message to return when the guardrail blocks a model response. + * + * @return builder + * + */ + public Builder blockedOutputsMessaging(String blockedOutputsMessaging) { + return blockedOutputsMessaging(Output.of(blockedOutputsMessaging)); + } + + /** + * @param contentPolicyConfig Content policy config for a guardrail. See Content Policy Config for more information. + * + * @return builder + * + */ + public Builder contentPolicyConfig(@Nullable Output contentPolicyConfig) { + $.contentPolicyConfig = contentPolicyConfig; + return this; + } + + /** + * @param contentPolicyConfig Content policy config for a guardrail. See Content Policy Config for more information. + * + * @return builder + * + */ + public Builder contentPolicyConfig(GuardrailContentPolicyConfigArgs contentPolicyConfig) { + return contentPolicyConfig(Output.of(contentPolicyConfig)); + } + + /** + * @param contextualGroundingPolicyConfig Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + * @return builder + * + */ + public Builder contextualGroundingPolicyConfig(@Nullable Output contextualGroundingPolicyConfig) { + $.contextualGroundingPolicyConfig = contextualGroundingPolicyConfig; + return this; + } + + /** + * @param contextualGroundingPolicyConfig Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + * + * @return builder + * + */ + public Builder contextualGroundingPolicyConfig(GuardrailContextualGroundingPolicyConfigArgs contextualGroundingPolicyConfig) { + return contextualGroundingPolicyConfig(Output.of(contextualGroundingPolicyConfig)); + } + + /** + * @param createdAt Unix epoch timestamp in seconds for when the Guardrail was created. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Unix epoch timestamp in seconds for when the Guardrail was created. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param description Description of the guardrail or its version. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the guardrail or its version. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param guardrailArn ARN of the Guardrail. + * + * @return builder + * + */ + public Builder guardrailArn(@Nullable Output guardrailArn) { + $.guardrailArn = guardrailArn; + return this; + } + + /** + * @param guardrailArn ARN of the Guardrail. + * + * @return builder + * + */ + public Builder guardrailArn(String guardrailArn) { + return guardrailArn(Output.of(guardrailArn)); + } + + /** + * @param guardrailId ID of the Guardrail. + * + * @return builder + * + */ + public Builder guardrailId(@Nullable Output guardrailId) { + $.guardrailId = guardrailId; + return this; + } + + /** + * @param guardrailId ID of the Guardrail. + * + * @return builder + * + */ + public Builder guardrailId(String guardrailId) { + return guardrailId(Output.of(guardrailId)); + } + + /** + * @param kmsKeyArn The KMS key with which the guardrail was encrypted at rest. + * + * @return builder + * + */ + public Builder kmsKeyArn(@Nullable Output kmsKeyArn) { + $.kmsKeyArn = kmsKeyArn; + return this; + } + + /** + * @param kmsKeyArn The KMS key with which the guardrail was encrypted at rest. + * + * @return builder + * + */ + public Builder kmsKeyArn(String kmsKeyArn) { + return kmsKeyArn(Output.of(kmsKeyArn)); + } + + /** + * @param name Name of the guardrail. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the guardrail. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param sensitiveInformationPolicyConfig Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + * @return builder + * + */ + public Builder sensitiveInformationPolicyConfig(@Nullable Output sensitiveInformationPolicyConfig) { + $.sensitiveInformationPolicyConfig = sensitiveInformationPolicyConfig; + return this; + } + + /** + * @param sensitiveInformationPolicyConfig Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + * + * @return builder + * + */ + public Builder sensitiveInformationPolicyConfig(GuardrailSensitiveInformationPolicyConfigArgs sensitiveInformationPolicyConfig) { + return sensitiveInformationPolicyConfig(Output.of(sensitiveInformationPolicyConfig)); + } + + /** + * @param status Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GuardrailTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + /** + * @param topicPolicyConfig Topic policy config for a guardrail. See Topic Policy Config for more information. + * + * @return builder + * + */ + public Builder topicPolicyConfig(@Nullable Output topicPolicyConfig) { + $.topicPolicyConfig = topicPolicyConfig; + return this; + } + + /** + * @param topicPolicyConfig Topic policy config for a guardrail. See Topic Policy Config for more information. + * + * @return builder + * + */ + public Builder topicPolicyConfig(GuardrailTopicPolicyConfigArgs topicPolicyConfig) { + return topicPolicyConfig(Output.of(topicPolicyConfig)); + } + + /** + * @param version Version of the Guardrail. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version Version of the Guardrail. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + /** + * @param wordPolicyConfig Word policy config for a guardrail. See Word Policy Config for more information. + * + * @return builder + * + */ + public Builder wordPolicyConfig(@Nullable Output wordPolicyConfig) { + $.wordPolicyConfig = wordPolicyConfig; + return this; + } + + /** + * @param wordPolicyConfig Word policy config for a guardrail. See Word Policy Config for more information. + * + * @return builder + * + */ + public Builder wordPolicyConfig(GuardrailWordPolicyConfigArgs wordPolicyConfig) { + return wordPolicyConfig(Output.of(wordPolicyConfig)); + } + + public GuardrailState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTimeoutsArgs.java new file mode 100644 index 00000000000..ddfe80ad45d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTimeoutsArgs.java @@ -0,0 +1,157 @@ +// *** 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.aws.bedrock.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 GuardrailTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailTimeoutsArgs Empty = new GuardrailTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + @Import(name="delete") + private @Nullable Output delete; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional> delete() { + return Optional.ofNullable(this.delete); + } + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="update") + private @Nullable Output update; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> update() { + return Optional.ofNullable(this.update); + } + + private GuardrailTimeoutsArgs() {} + + private GuardrailTimeoutsArgs(GuardrailTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailTimeoutsArgs $; + + public Builder() { + $ = new GuardrailTimeoutsArgs(); + } + + public Builder(GuardrailTimeoutsArgs defaults) { + $ = new GuardrailTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(@Nullable Output delete) { + $.delete = delete; + return this; + } + + /** + * @param delete A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + * @return builder + * + */ + public Builder delete(String delete) { + return delete(Output.of(delete)); + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(@Nullable Output update) { + $.update = update; + return this; + } + + /** + * @param update A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder update(String update) { + return update(Output.of(update)); + } + + public GuardrailTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigArgs.java new file mode 100644 index 00000000000..1bdf113e66e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigArgs.java @@ -0,0 +1,94 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailTopicPolicyConfigTopicsConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailTopicPolicyConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailTopicPolicyConfigArgs Empty = new GuardrailTopicPolicyConfigArgs(); + + /** + * List of topic configs in topic policy. See Topics Config for more information. + * + */ + @Import(name="topicsConfigs") + private @Nullable Output> topicsConfigs; + + /** + * @return List of topic configs in topic policy. See Topics Config for more information. + * + */ + public Optional>> topicsConfigs() { + return Optional.ofNullable(this.topicsConfigs); + } + + private GuardrailTopicPolicyConfigArgs() {} + + private GuardrailTopicPolicyConfigArgs(GuardrailTopicPolicyConfigArgs $) { + this.topicsConfigs = $.topicsConfigs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailTopicPolicyConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailTopicPolicyConfigArgs $; + + public Builder() { + $ = new GuardrailTopicPolicyConfigArgs(); + } + + public Builder(GuardrailTopicPolicyConfigArgs defaults) { + $ = new GuardrailTopicPolicyConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param topicsConfigs List of topic configs in topic policy. See Topics Config for more information. + * + * @return builder + * + */ + public Builder topicsConfigs(@Nullable Output> topicsConfigs) { + $.topicsConfigs = topicsConfigs; + return this; + } + + /** + * @param topicsConfigs List of topic configs in topic policy. See Topics Config for more information. + * + * @return builder + * + */ + public Builder topicsConfigs(List topicsConfigs) { + return topicsConfigs(Output.of(topicsConfigs)); + } + + /** + * @param topicsConfigs List of topic configs in topic policy. See Topics Config for more information. + * + * @return builder + * + */ + public Builder topicsConfigs(GuardrailTopicPolicyConfigTopicsConfigArgs... topicsConfigs) { + return topicsConfigs(List.of(topicsConfigs)); + } + + public GuardrailTopicPolicyConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.java new file mode 100644 index 00000000000..f28c582b9bb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailTopicPolicyConfigTopicsConfigArgs.java @@ -0,0 +1,215 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailTopicPolicyConfigTopicsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailTopicPolicyConfigTopicsConfigArgs Empty = new GuardrailTopicPolicyConfigTopicsConfigArgs(); + + /** + * Definition of topic in topic policy. + * + */ + @Import(name="definition", required=true) + private Output definition; + + /** + * @return Definition of topic in topic policy. + * + */ + public Output definition() { + return this.definition; + } + + /** + * List of text examples. + * + */ + @Import(name="examples") + private @Nullable Output> examples; + + /** + * @return List of text examples. + * + */ + public Optional>> examples() { + return Optional.ofNullable(this.examples); + } + + /** + * Name of topic in topic policy. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of topic in topic policy. + * + */ + public Output name() { + return this.name; + } + + /** + * Type of topic in a policy. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Type of topic in a policy. + * + */ + public Output type() { + return this.type; + } + + private GuardrailTopicPolicyConfigTopicsConfigArgs() {} + + private GuardrailTopicPolicyConfigTopicsConfigArgs(GuardrailTopicPolicyConfigTopicsConfigArgs $) { + this.definition = $.definition; + this.examples = $.examples; + this.name = $.name; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailTopicPolicyConfigTopicsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailTopicPolicyConfigTopicsConfigArgs $; + + public Builder() { + $ = new GuardrailTopicPolicyConfigTopicsConfigArgs(); + } + + public Builder(GuardrailTopicPolicyConfigTopicsConfigArgs defaults) { + $ = new GuardrailTopicPolicyConfigTopicsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param definition Definition of topic in topic policy. + * + * @return builder + * + */ + public Builder definition(Output definition) { + $.definition = definition; + return this; + } + + /** + * @param definition Definition of topic in topic policy. + * + * @return builder + * + */ + public Builder definition(String definition) { + return definition(Output.of(definition)); + } + + /** + * @param examples List of text examples. + * + * @return builder + * + */ + public Builder examples(@Nullable Output> examples) { + $.examples = examples; + return this; + } + + /** + * @param examples List of text examples. + * + * @return builder + * + */ + public Builder examples(List examples) { + return examples(Output.of(examples)); + } + + /** + * @param examples List of text examples. + * + * @return builder + * + */ + public Builder examples(String... examples) { + return examples(List.of(examples)); + } + + /** + * @param name Name of topic in topic policy. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of topic in topic policy. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param type Type of topic in a policy. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Type of topic in a policy. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public GuardrailTopicPolicyConfigTopicsConfigArgs build() { + if ($.definition == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfigArgs", "definition"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfigArgs", "name"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigArgs.java new file mode 100644 index 00000000000..a7aa6add86f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigArgs.java @@ -0,0 +1,142 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigManagedWordListsConfigArgs; +import com.pulumi.aws.bedrock.inputs.GuardrailWordPolicyConfigWordsConfigArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GuardrailWordPolicyConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailWordPolicyConfigArgs Empty = new GuardrailWordPolicyConfigArgs(); + + /** + * A config for the list of managed words. See Managed Word Lists Config for more information. + * + */ + @Import(name="managedWordListsConfigs") + private @Nullable Output> managedWordListsConfigs; + + /** + * @return A config for the list of managed words. See Managed Word Lists Config for more information. + * + */ + public Optional>> managedWordListsConfigs() { + return Optional.ofNullable(this.managedWordListsConfigs); + } + + /** + * List of custom word configs. See Words Config for more information. + * + */ + @Import(name="wordsConfigs") + private @Nullable Output> wordsConfigs; + + /** + * @return List of custom word configs. See Words Config for more information. + * + */ + public Optional>> wordsConfigs() { + return Optional.ofNullable(this.wordsConfigs); + } + + private GuardrailWordPolicyConfigArgs() {} + + private GuardrailWordPolicyConfigArgs(GuardrailWordPolicyConfigArgs $) { + this.managedWordListsConfigs = $.managedWordListsConfigs; + this.wordsConfigs = $.wordsConfigs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailWordPolicyConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailWordPolicyConfigArgs $; + + public Builder() { + $ = new GuardrailWordPolicyConfigArgs(); + } + + public Builder(GuardrailWordPolicyConfigArgs defaults) { + $ = new GuardrailWordPolicyConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param managedWordListsConfigs A config for the list of managed words. See Managed Word Lists Config for more information. + * + * @return builder + * + */ + public Builder managedWordListsConfigs(@Nullable Output> managedWordListsConfigs) { + $.managedWordListsConfigs = managedWordListsConfigs; + return this; + } + + /** + * @param managedWordListsConfigs A config for the list of managed words. See Managed Word Lists Config for more information. + * + * @return builder + * + */ + public Builder managedWordListsConfigs(List managedWordListsConfigs) { + return managedWordListsConfigs(Output.of(managedWordListsConfigs)); + } + + /** + * @param managedWordListsConfigs A config for the list of managed words. See Managed Word Lists Config for more information. + * + * @return builder + * + */ + public Builder managedWordListsConfigs(GuardrailWordPolicyConfigManagedWordListsConfigArgs... managedWordListsConfigs) { + return managedWordListsConfigs(List.of(managedWordListsConfigs)); + } + + /** + * @param wordsConfigs List of custom word configs. See Words Config for more information. + * + * @return builder + * + */ + public Builder wordsConfigs(@Nullable Output> wordsConfigs) { + $.wordsConfigs = wordsConfigs; + return this; + } + + /** + * @param wordsConfigs List of custom word configs. See Words Config for more information. + * + * @return builder + * + */ + public Builder wordsConfigs(List wordsConfigs) { + return wordsConfigs(Output.of(wordsConfigs)); + } + + /** + * @param wordsConfigs List of custom word configs. See Words Config for more information. + * + * @return builder + * + */ + public Builder wordsConfigs(GuardrailWordPolicyConfigWordsConfigArgs... wordsConfigs) { + return wordsConfigs(List.of(wordsConfigs)); + } + + public GuardrailWordPolicyConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.java new file mode 100644 index 00000000000..0bf5ba0cf07 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigManagedWordListsConfigArgs.java @@ -0,0 +1,85 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GuardrailWordPolicyConfigManagedWordListsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailWordPolicyConfigManagedWordListsConfigArgs Empty = new GuardrailWordPolicyConfigManagedWordListsConfigArgs(); + + /** + * Options for managed words. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Options for managed words. + * + */ + public Output type() { + return this.type; + } + + private GuardrailWordPolicyConfigManagedWordListsConfigArgs() {} + + private GuardrailWordPolicyConfigManagedWordListsConfigArgs(GuardrailWordPolicyConfigManagedWordListsConfigArgs $) { + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailWordPolicyConfigManagedWordListsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailWordPolicyConfigManagedWordListsConfigArgs $; + + public Builder() { + $ = new GuardrailWordPolicyConfigManagedWordListsConfigArgs(); + } + + public Builder(GuardrailWordPolicyConfigManagedWordListsConfigArgs defaults) { + $ = new GuardrailWordPolicyConfigManagedWordListsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param type Options for managed words. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Options for managed words. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public GuardrailWordPolicyConfigManagedWordListsConfigArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("GuardrailWordPolicyConfigManagedWordListsConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigWordsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigWordsConfigArgs.java new file mode 100644 index 00000000000..d56a0e853ad --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/inputs/GuardrailWordPolicyConfigWordsConfigArgs.java @@ -0,0 +1,85 @@ +// *** 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.aws.bedrock.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GuardrailWordPolicyConfigWordsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final GuardrailWordPolicyConfigWordsConfigArgs Empty = new GuardrailWordPolicyConfigWordsConfigArgs(); + + /** + * The custom word text. + * + */ + @Import(name="text", required=true) + private Output text; + + /** + * @return The custom word text. + * + */ + public Output text() { + return this.text; + } + + private GuardrailWordPolicyConfigWordsConfigArgs() {} + + private GuardrailWordPolicyConfigWordsConfigArgs(GuardrailWordPolicyConfigWordsConfigArgs $) { + this.text = $.text; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GuardrailWordPolicyConfigWordsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GuardrailWordPolicyConfigWordsConfigArgs $; + + public Builder() { + $ = new GuardrailWordPolicyConfigWordsConfigArgs(); + } + + public Builder(GuardrailWordPolicyConfigWordsConfigArgs defaults) { + $ = new GuardrailWordPolicyConfigWordsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param text The custom word text. + * + * @return builder + * + */ + public Builder text(Output text) { + $.text = text; + return this; + } + + /** + * @param text The custom word text. + * + * @return builder + * + */ + public Builder text(String text) { + return text(Output.of(text)); + } + + public GuardrailWordPolicyConfigWordsConfigArgs build() { + if ($.text == null) { + throw new MissingRequiredPropertyException("GuardrailWordPolicyConfigWordsConfigArgs", "text"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentKnowledgeBaseAssociationTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentKnowledgeBaseAssociationTimeouts.java new file mode 100644 index 00000000000..f26fdb48cc0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/AgentAgentKnowledgeBaseAssociationTimeouts.java @@ -0,0 +1,78 @@ +// *** 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.aws.bedrock.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 AgentAgentKnowledgeBaseAssociationTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private AgentAgentKnowledgeBaseAssociationTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AgentAgentKnowledgeBaseAssociationTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String update; + public Builder() {} + public Builder(AgentAgentKnowledgeBaseAssociationTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public AgentAgentKnowledgeBaseAssociationTimeouts build() { + final var _resultValue = new AgentAgentKnowledgeBaseAssociationTimeouts(); + _resultValue.create = create; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummary.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummary.java new file mode 100644 index 00000000000..20022f895ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummary.java @@ -0,0 +1,194 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GetAgentAgentVersionsAgentVersionSummary { + /** + * @return Name of agent to which the version belongs. + * + */ + private String agentName; + /** + * @return Status of the agent to which the version belongs. + * + */ + private String agentStatus; + /** + * @return Version of the agent. + * + */ + private String agentVersion; + /** + * @return Time at which the version was created. + * + */ + private String createdAt; + /** + * @return Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + private String description; + private @Nullable List guardrailConfigurations; + /** + * @return Time at which the version was last updated. + * + */ + private String updatedAt; + + private GetAgentAgentVersionsAgentVersionSummary() {} + /** + * @return Name of agent to which the version belongs. + * + */ + public String agentName() { + return this.agentName; + } + /** + * @return Status of the agent to which the version belongs. + * + */ + public String agentStatus() { + return this.agentStatus; + } + /** + * @return Version of the agent. + * + */ + public String agentVersion() { + return this.agentVersion; + } + /** + * @return Time at which the version was created. + * + */ + public String createdAt() { + return this.createdAt; + } + /** + * @return Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + * + */ + public String description() { + return this.description; + } + public List guardrailConfigurations() { + return this.guardrailConfigurations == null ? List.of() : this.guardrailConfigurations; + } + /** + * @return Time at which the version was last updated. + * + */ + public String updatedAt() { + return this.updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetAgentAgentVersionsAgentVersionSummary defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String agentName; + private String agentStatus; + private String agentVersion; + private String createdAt; + private String description; + private @Nullable List guardrailConfigurations; + private String updatedAt; + public Builder() {} + public Builder(GetAgentAgentVersionsAgentVersionSummary defaults) { + Objects.requireNonNull(defaults); + this.agentName = defaults.agentName; + this.agentStatus = defaults.agentStatus; + this.agentVersion = defaults.agentVersion; + this.createdAt = defaults.createdAt; + this.description = defaults.description; + this.guardrailConfigurations = defaults.guardrailConfigurations; + this.updatedAt = defaults.updatedAt; + } + + @CustomType.Setter + public Builder agentName(String agentName) { + if (agentName == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentName"); + } + this.agentName = agentName; + return this; + } + @CustomType.Setter + public Builder agentStatus(String agentStatus) { + if (agentStatus == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentStatus"); + } + this.agentStatus = agentStatus; + return this; + } + @CustomType.Setter + public Builder agentVersion(String agentVersion) { + if (agentVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "agentVersion"); + } + this.agentVersion = agentVersion; + return this; + } + @CustomType.Setter + public Builder createdAt(String createdAt) { + if (createdAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "createdAt"); + } + this.createdAt = createdAt; + return this; + } + @CustomType.Setter + public Builder description(String description) { + if (description == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "description"); + } + this.description = description; + return this; + } + @CustomType.Setter + public Builder guardrailConfigurations(@Nullable List guardrailConfigurations) { + + this.guardrailConfigurations = guardrailConfigurations; + return this; + } + public Builder guardrailConfigurations(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration... guardrailConfigurations) { + return guardrailConfigurations(List.of(guardrailConfigurations)); + } + @CustomType.Setter + public Builder updatedAt(String updatedAt) { + if (updatedAt == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummary", "updatedAt"); + } + this.updatedAt = updatedAt; + return this; + } + public GetAgentAgentVersionsAgentVersionSummary build() { + final var _resultValue = new GetAgentAgentVersionsAgentVersionSummary(); + _resultValue.agentName = agentName; + _resultValue.agentStatus = agentStatus; + _resultValue.agentVersion = agentVersion; + _resultValue.createdAt = createdAt; + _resultValue.description = description; + _resultValue.guardrailConfigurations = guardrailConfigurations; + _resultValue.updatedAt = updatedAt; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java new file mode 100644 index 00000000000..7b2ff60e9f7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration.java @@ -0,0 +1,81 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration { + /** + * @return Unique identifier of the guardrail. + * + */ + private String guardrailIdentifier; + /** + * @return Version of the guardrail. + * + */ + private String guardrailVersion; + + private GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration() {} + /** + * @return Unique identifier of the guardrail. + * + */ + public String guardrailIdentifier() { + return this.guardrailIdentifier; + } + /** + * @return Version of the guardrail. + * + */ + public String guardrailVersion() { + return this.guardrailVersion; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String guardrailIdentifier; + private String guardrailVersion; + public Builder() {} + public Builder(GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration defaults) { + Objects.requireNonNull(defaults); + this.guardrailIdentifier = defaults.guardrailIdentifier; + this.guardrailVersion = defaults.guardrailVersion; + } + + @CustomType.Setter + public Builder guardrailIdentifier(String guardrailIdentifier) { + if (guardrailIdentifier == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration", "guardrailIdentifier"); + } + this.guardrailIdentifier = guardrailIdentifier; + return this; + } + @CustomType.Setter + public Builder guardrailVersion(String guardrailVersion) { + if (guardrailVersion == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration", "guardrailVersion"); + } + this.guardrailVersion = guardrailVersion; + return this; + } + public GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration build() { + final var _resultValue = new GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration(); + _resultValue.guardrailIdentifier = guardrailIdentifier; + _resultValue.guardrailVersion = guardrailVersion; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsResult.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsResult.java new file mode 100644 index 00000000000..b1880f589fb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GetAgentAgentVersionsResult.java @@ -0,0 +1,100 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GetAgentAgentVersionsAgentVersionSummary; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GetAgentAgentVersionsResult { + private String agentId; + /** + * @return List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + private @Nullable List agentVersionSummaries; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + + private GetAgentAgentVersionsResult() {} + public String agentId() { + return this.agentId; + } + /** + * @return List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + * + */ + public List agentVersionSummaries() { + return this.agentVersionSummaries == null ? List.of() : this.agentVersionSummaries; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetAgentAgentVersionsResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String agentId; + private @Nullable List agentVersionSummaries; + private String id; + public Builder() {} + public Builder(GetAgentAgentVersionsResult defaults) { + Objects.requireNonNull(defaults); + this.agentId = defaults.agentId; + this.agentVersionSummaries = defaults.agentVersionSummaries; + this.id = defaults.id; + } + + @CustomType.Setter + public Builder agentId(String agentId) { + if (agentId == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsResult", "agentId"); + } + this.agentId = agentId; + return this; + } + @CustomType.Setter + public Builder agentVersionSummaries(@Nullable List agentVersionSummaries) { + + this.agentVersionSummaries = agentVersionSummaries; + return this; + } + public Builder agentVersionSummaries(GetAgentAgentVersionsAgentVersionSummary... agentVersionSummaries) { + return agentVersionSummaries(List.of(agentVersionSummaries)); + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetAgentAgentVersionsResult", "id"); + } + this.id = id; + return this; + } + public GetAgentAgentVersionsResult build() { + final var _resultValue = new GetAgentAgentVersionsResult(); + _resultValue.agentId = agentId; + _resultValue.agentVersionSummaries = agentVersionSummaries; + _resultValue.id = id; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfig.java new file mode 100644 index 00000000000..6077a5b16c3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfig.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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GuardrailContentPolicyConfigFiltersConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailContentPolicyConfig { + /** + * @return List of content filter configs in content policy. See Filters Config for more information. + * + */ + private @Nullable List filtersConfigs; + + private GuardrailContentPolicyConfig() {} + /** + * @return List of content filter configs in content policy. See Filters Config for more information. + * + */ + public List filtersConfigs() { + return this.filtersConfigs == null ? List.of() : this.filtersConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailContentPolicyConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List filtersConfigs; + public Builder() {} + public Builder(GuardrailContentPolicyConfig defaults) { + Objects.requireNonNull(defaults); + this.filtersConfigs = defaults.filtersConfigs; + } + + @CustomType.Setter + public Builder filtersConfigs(@Nullable List filtersConfigs) { + + this.filtersConfigs = filtersConfigs; + return this; + } + public Builder filtersConfigs(GuardrailContentPolicyConfigFiltersConfig... filtersConfigs) { + return filtersConfigs(List.of(filtersConfigs)); + } + public GuardrailContentPolicyConfig build() { + final var _resultValue = new GuardrailContentPolicyConfig(); + _resultValue.filtersConfigs = filtersConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfigFiltersConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfigFiltersConfig.java new file mode 100644 index 00000000000..eefeec688df --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContentPolicyConfigFiltersConfig.java @@ -0,0 +1,104 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GuardrailContentPolicyConfigFiltersConfig { + /** + * @return Strength for filters. + * + */ + private String inputStrength; + /** + * @return Strength for filters. + * + */ + private String outputStrength; + /** + * @return Type of contextual grounding filter. + * + */ + private String type; + + private GuardrailContentPolicyConfigFiltersConfig() {} + /** + * @return Strength for filters. + * + */ + public String inputStrength() { + return this.inputStrength; + } + /** + * @return Strength for filters. + * + */ + public String outputStrength() { + return this.outputStrength; + } + /** + * @return Type of contextual grounding filter. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailContentPolicyConfigFiltersConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String inputStrength; + private String outputStrength; + private String type; + public Builder() {} + public Builder(GuardrailContentPolicyConfigFiltersConfig defaults) { + Objects.requireNonNull(defaults); + this.inputStrength = defaults.inputStrength; + this.outputStrength = defaults.outputStrength; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder inputStrength(String inputStrength) { + if (inputStrength == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfig", "inputStrength"); + } + this.inputStrength = inputStrength; + return this; + } + @CustomType.Setter + public Builder outputStrength(String outputStrength) { + if (outputStrength == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfig", "outputStrength"); + } + this.outputStrength = outputStrength; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GuardrailContentPolicyConfigFiltersConfig", "type"); + } + this.type = type; + return this; + } + public GuardrailContentPolicyConfigFiltersConfig build() { + final var _resultValue = new GuardrailContentPolicyConfigFiltersConfig(); + _resultValue.inputStrength = inputStrength; + _resultValue.outputStrength = outputStrength; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfig.java new file mode 100644 index 00000000000..0a536c0db01 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfig.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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GuardrailContextualGroundingPolicyConfigFiltersConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailContextualGroundingPolicyConfig { + /** + * @return List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + */ + private @Nullable List filtersConfigs; + + private GuardrailContextualGroundingPolicyConfig() {} + /** + * @return List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + * + */ + public List filtersConfigs() { + return this.filtersConfigs == null ? List.of() : this.filtersConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailContextualGroundingPolicyConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List filtersConfigs; + public Builder() {} + public Builder(GuardrailContextualGroundingPolicyConfig defaults) { + Objects.requireNonNull(defaults); + this.filtersConfigs = defaults.filtersConfigs; + } + + @CustomType.Setter + public Builder filtersConfigs(@Nullable List filtersConfigs) { + + this.filtersConfigs = filtersConfigs; + return this; + } + public Builder filtersConfigs(GuardrailContextualGroundingPolicyConfigFiltersConfig... filtersConfigs) { + return filtersConfigs(List.of(filtersConfigs)); + } + public GuardrailContextualGroundingPolicyConfig build() { + final var _resultValue = new GuardrailContextualGroundingPolicyConfig(); + _resultValue.filtersConfigs = filtersConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.java new file mode 100644 index 00000000000..bc83d04eb92 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailContextualGroundingPolicyConfigFiltersConfig.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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GuardrailContextualGroundingPolicyConfigFiltersConfig { + /** + * @return The threshold for this filter. + * + */ + private Double threshold; + /** + * @return Type of contextual grounding filter. + * + */ + private String type; + + private GuardrailContextualGroundingPolicyConfigFiltersConfig() {} + /** + * @return The threshold for this filter. + * + */ + public Double threshold() { + return this.threshold; + } + /** + * @return Type of contextual grounding filter. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailContextualGroundingPolicyConfigFiltersConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Double threshold; + private String type; + public Builder() {} + public Builder(GuardrailContextualGroundingPolicyConfigFiltersConfig defaults) { + Objects.requireNonNull(defaults); + this.threshold = defaults.threshold; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder threshold(Double threshold) { + if (threshold == null) { + throw new MissingRequiredPropertyException("GuardrailContextualGroundingPolicyConfigFiltersConfig", "threshold"); + } + this.threshold = threshold; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GuardrailContextualGroundingPolicyConfigFiltersConfig", "type"); + } + this.type = type; + return this; + } + public GuardrailContextualGroundingPolicyConfigFiltersConfig build() { + final var _resultValue = new GuardrailContextualGroundingPolicyConfigFiltersConfig(); + _resultValue.threshold = threshold; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfig.java new file mode 100644 index 00000000000..943ca051b1f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfig.java @@ -0,0 +1,85 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailSensitiveInformationPolicyConfigRegexesConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailSensitiveInformationPolicyConfig { + /** + * @return List of entities. See PII Entities Config for more information. + * + */ + private @Nullable List piiEntitiesConfigs; + /** + * @return List of regex. See Regexes Config for more information. + * + */ + private @Nullable List regexesConfigs; + + private GuardrailSensitiveInformationPolicyConfig() {} + /** + * @return List of entities. See PII Entities Config for more information. + * + */ + public List piiEntitiesConfigs() { + return this.piiEntitiesConfigs == null ? List.of() : this.piiEntitiesConfigs; + } + /** + * @return List of regex. See Regexes Config for more information. + * + */ + public List regexesConfigs() { + return this.regexesConfigs == null ? List.of() : this.regexesConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailSensitiveInformationPolicyConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List piiEntitiesConfigs; + private @Nullable List regexesConfigs; + public Builder() {} + public Builder(GuardrailSensitiveInformationPolicyConfig defaults) { + Objects.requireNonNull(defaults); + this.piiEntitiesConfigs = defaults.piiEntitiesConfigs; + this.regexesConfigs = defaults.regexesConfigs; + } + + @CustomType.Setter + public Builder piiEntitiesConfigs(@Nullable List piiEntitiesConfigs) { + + this.piiEntitiesConfigs = piiEntitiesConfigs; + return this; + } + public Builder piiEntitiesConfigs(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig... piiEntitiesConfigs) { + return piiEntitiesConfigs(List.of(piiEntitiesConfigs)); + } + @CustomType.Setter + public Builder regexesConfigs(@Nullable List regexesConfigs) { + + this.regexesConfigs = regexesConfigs; + return this; + } + public Builder regexesConfigs(GuardrailSensitiveInformationPolicyConfigRegexesConfig... regexesConfigs) { + return regexesConfigs(List.of(regexesConfigs)); + } + public GuardrailSensitiveInformationPolicyConfig build() { + final var _resultValue = new GuardrailSensitiveInformationPolicyConfig(); + _resultValue.piiEntitiesConfigs = piiEntitiesConfigs; + _resultValue.regexesConfigs = regexesConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.java new file mode 100644 index 00000000000..51a1aa9a679 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig.java @@ -0,0 +1,81 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + /** + * @return Options for sensitive information action. + * + */ + private String action; + /** + * @return The currently supported PII entities. + * + */ + private String type; + + private GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig() {} + /** + * @return Options for sensitive information action. + * + */ + public String action() { + return this.action; + } + /** + * @return The currently supported PII entities. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String action; + private String type; + public Builder() {} + public Builder(GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig defaults) { + Objects.requireNonNull(defaults); + this.action = defaults.action; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder action(String action) { + if (action == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig", "action"); + } + this.action = action; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig", "type"); + } + this.type = type; + return this; + } + public GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig build() { + final var _resultValue = new GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig(); + _resultValue.action = action; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.java new file mode 100644 index 00000000000..934a10774b7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailSensitiveInformationPolicyConfigRegexesConfig.java @@ -0,0 +1,127 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailSensitiveInformationPolicyConfigRegexesConfig { + /** + * @return Options for sensitive information action. + * + */ + private String action; + /** + * @return The regex description. + * + */ + private @Nullable String description; + /** + * @return The regex name. + * + */ + private String name; + /** + * @return The regex pattern. + * + */ + private String pattern; + + private GuardrailSensitiveInformationPolicyConfigRegexesConfig() {} + /** + * @return Options for sensitive information action. + * + */ + public String action() { + return this.action; + } + /** + * @return The regex description. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return The regex name. + * + */ + public String name() { + return this.name; + } + /** + * @return The regex pattern. + * + */ + public String pattern() { + return this.pattern; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailSensitiveInformationPolicyConfigRegexesConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String action; + private @Nullable String description; + private String name; + private String pattern; + public Builder() {} + public Builder(GuardrailSensitiveInformationPolicyConfigRegexesConfig defaults) { + Objects.requireNonNull(defaults); + this.action = defaults.action; + this.description = defaults.description; + this.name = defaults.name; + this.pattern = defaults.pattern; + } + + @CustomType.Setter + public Builder action(String action) { + if (action == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfig", "action"); + } + this.action = action; + return this; + } + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfig", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder pattern(String pattern) { + if (pattern == null) { + throw new MissingRequiredPropertyException("GuardrailSensitiveInformationPolicyConfigRegexesConfig", "pattern"); + } + this.pattern = pattern; + return this; + } + public GuardrailSensitiveInformationPolicyConfigRegexesConfig build() { + final var _resultValue = new GuardrailSensitiveInformationPolicyConfigRegexesConfig(); + _resultValue.action = action; + _resultValue.description = description; + _resultValue.name = name; + _resultValue.pattern = pattern; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTimeouts.java new file mode 100644 index 00000000000..ff7308f522e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTimeouts.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.aws.bedrock.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 GuardrailTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + private @Nullable String delete; + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String update; + + private GuardrailTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + * + */ + public Optional delete() { + return Optional.ofNullable(this.delete); + } + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional update() { + return Optional.ofNullable(this.update); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + private @Nullable String update; + public Builder() {} + public Builder(GuardrailTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + this.update = defaults.update; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + @CustomType.Setter + public Builder delete(@Nullable String delete) { + + this.delete = delete; + return this; + } + @CustomType.Setter + public Builder update(@Nullable String update) { + + this.update = update; + return this; + } + public GuardrailTimeouts build() { + final var _resultValue = new GuardrailTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfig.java new file mode 100644 index 00000000000..f7cd4f3e58c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfig.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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GuardrailTopicPolicyConfigTopicsConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailTopicPolicyConfig { + /** + * @return List of topic configs in topic policy. See Topics Config for more information. + * + */ + private @Nullable List topicsConfigs; + + private GuardrailTopicPolicyConfig() {} + /** + * @return List of topic configs in topic policy. See Topics Config for more information. + * + */ + public List topicsConfigs() { + return this.topicsConfigs == null ? List.of() : this.topicsConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailTopicPolicyConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List topicsConfigs; + public Builder() {} + public Builder(GuardrailTopicPolicyConfig defaults) { + Objects.requireNonNull(defaults); + this.topicsConfigs = defaults.topicsConfigs; + } + + @CustomType.Setter + public Builder topicsConfigs(@Nullable List topicsConfigs) { + + this.topicsConfigs = topicsConfigs; + return this; + } + public Builder topicsConfigs(GuardrailTopicPolicyConfigTopicsConfig... topicsConfigs) { + return topicsConfigs(List.of(topicsConfigs)); + } + public GuardrailTopicPolicyConfig build() { + final var _resultValue = new GuardrailTopicPolicyConfig(); + _resultValue.topicsConfigs = topicsConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfigTopicsConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfigTopicsConfig.java new file mode 100644 index 00000000000..58cb1ad47c2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailTopicPolicyConfigTopicsConfig.java @@ -0,0 +1,130 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailTopicPolicyConfigTopicsConfig { + /** + * @return Definition of topic in topic policy. + * + */ + private String definition; + /** + * @return List of text examples. + * + */ + private @Nullable List examples; + /** + * @return Name of topic in topic policy. + * + */ + private String name; + /** + * @return Type of topic in a policy. + * + */ + private String type; + + private GuardrailTopicPolicyConfigTopicsConfig() {} + /** + * @return Definition of topic in topic policy. + * + */ + public String definition() { + return this.definition; + } + /** + * @return List of text examples. + * + */ + public List examples() { + return this.examples == null ? List.of() : this.examples; + } + /** + * @return Name of topic in topic policy. + * + */ + public String name() { + return this.name; + } + /** + * @return Type of topic in a policy. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailTopicPolicyConfigTopicsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String definition; + private @Nullable List examples; + private String name; + private String type; + public Builder() {} + public Builder(GuardrailTopicPolicyConfigTopicsConfig defaults) { + Objects.requireNonNull(defaults); + this.definition = defaults.definition; + this.examples = defaults.examples; + this.name = defaults.name; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder definition(String definition) { + if (definition == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfig", "definition"); + } + this.definition = definition; + return this; + } + @CustomType.Setter + public Builder examples(@Nullable List examples) { + + this.examples = examples; + return this; + } + public Builder examples(String... examples) { + return examples(List.of(examples)); + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfig", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GuardrailTopicPolicyConfigTopicsConfig", "type"); + } + this.type = type; + return this; + } + public GuardrailTopicPolicyConfigTopicsConfig build() { + final var _resultValue = new GuardrailTopicPolicyConfigTopicsConfig(); + _resultValue.definition = definition; + _resultValue.examples = examples; + _resultValue.name = name; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfig.java new file mode 100644 index 00000000000..ec6730c0a4f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfig.java @@ -0,0 +1,85 @@ +// *** 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.aws.bedrock.outputs; + +import com.pulumi.aws.bedrock.outputs.GuardrailWordPolicyConfigManagedWordListsConfig; +import com.pulumi.aws.bedrock.outputs.GuardrailWordPolicyConfigWordsConfig; +import com.pulumi.core.annotations.CustomType; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GuardrailWordPolicyConfig { + /** + * @return A config for the list of managed words. See Managed Word Lists Config for more information. + * + */ + private @Nullable List managedWordListsConfigs; + /** + * @return List of custom word configs. See Words Config for more information. + * + */ + private @Nullable List wordsConfigs; + + private GuardrailWordPolicyConfig() {} + /** + * @return A config for the list of managed words. See Managed Word Lists Config for more information. + * + */ + public List managedWordListsConfigs() { + return this.managedWordListsConfigs == null ? List.of() : this.managedWordListsConfigs; + } + /** + * @return List of custom word configs. See Words Config for more information. + * + */ + public List wordsConfigs() { + return this.wordsConfigs == null ? List.of() : this.wordsConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailWordPolicyConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List managedWordListsConfigs; + private @Nullable List wordsConfigs; + public Builder() {} + public Builder(GuardrailWordPolicyConfig defaults) { + Objects.requireNonNull(defaults); + this.managedWordListsConfigs = defaults.managedWordListsConfigs; + this.wordsConfigs = defaults.wordsConfigs; + } + + @CustomType.Setter + public Builder managedWordListsConfigs(@Nullable List managedWordListsConfigs) { + + this.managedWordListsConfigs = managedWordListsConfigs; + return this; + } + public Builder managedWordListsConfigs(GuardrailWordPolicyConfigManagedWordListsConfig... managedWordListsConfigs) { + return managedWordListsConfigs(List.of(managedWordListsConfigs)); + } + @CustomType.Setter + public Builder wordsConfigs(@Nullable List wordsConfigs) { + + this.wordsConfigs = wordsConfigs; + return this; + } + public Builder wordsConfigs(GuardrailWordPolicyConfigWordsConfig... wordsConfigs) { + return wordsConfigs(List.of(wordsConfigs)); + } + public GuardrailWordPolicyConfig build() { + final var _resultValue = new GuardrailWordPolicyConfig(); + _resultValue.managedWordListsConfigs = managedWordListsConfigs; + _resultValue.wordsConfigs = wordsConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigManagedWordListsConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigManagedWordListsConfig.java new file mode 100644 index 00000000000..1e947e4c459 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigManagedWordListsConfig.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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GuardrailWordPolicyConfigManagedWordListsConfig { + /** + * @return Options for managed words. + * + */ + private String type; + + private GuardrailWordPolicyConfigManagedWordListsConfig() {} + /** + * @return Options for managed words. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailWordPolicyConfigManagedWordListsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String type; + public Builder() {} + public Builder(GuardrailWordPolicyConfigManagedWordListsConfig defaults) { + Objects.requireNonNull(defaults); + this.type = defaults.type; + } + + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("GuardrailWordPolicyConfigManagedWordListsConfig", "type"); + } + this.type = type; + return this; + } + public GuardrailWordPolicyConfigManagedWordListsConfig build() { + final var _resultValue = new GuardrailWordPolicyConfigManagedWordListsConfig(); + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigWordsConfig.java b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigWordsConfig.java new file mode 100644 index 00000000000..8678748083b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/bedrock/outputs/GuardrailWordPolicyConfigWordsConfig.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.aws.bedrock.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GuardrailWordPolicyConfigWordsConfig { + /** + * @return The custom word text. + * + */ + private String text; + + private GuardrailWordPolicyConfigWordsConfig() {} + /** + * @return The custom word text. + * + */ + public String text() { + return this.text; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GuardrailWordPolicyConfigWordsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String text; + public Builder() {} + public Builder(GuardrailWordPolicyConfigWordsConfig defaults) { + Objects.requireNonNull(defaults); + this.text = defaults.text; + } + + @CustomType.Setter + public Builder text(String text) { + if (text == null) { + throw new MissingRequiredPropertyException("GuardrailWordPolicyConfigWordsConfig", "text"); + } + this.text = text; + return this; + } + public GuardrailWordPolicyConfigWordsConfig build() { + final var _resultValue = new GuardrailWordPolicyConfigWordsConfig(); + _resultValue.text = text; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccount.java b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccount.java new file mode 100644 index 00000000000..6c0a80329bb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccount.java @@ -0,0 +1,197 @@ +// *** 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.aws.cloudtrail; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.cloudtrail.OrganizationDelegatedAdminAccountArgs; +import com.pulumi.aws.cloudtrail.inputs.OrganizationDelegatedAdminAccountState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Provides a resource to manage an AWS CloudTrail Delegated Administrator. + * + * ## Example Usage + * + * Basic usage: + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.AwsFunctions;
+ * import com.pulumi.aws.inputs.GetCallerIdentityArgs;
+ * import com.pulumi.aws.cloudtrail.OrganizationDelegatedAdminAccount;
+ * import com.pulumi.aws.cloudtrail.OrganizationDelegatedAdminAccountArgs;
+ * 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 delegated = AwsFunctions.getCallerIdentity();
+ * 
+ *         var example = new OrganizationDelegatedAdminAccount("example", OrganizationDelegatedAdminAccountArgs.builder()
+ *             .accountId(delegated.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: + * + * ```sh + * $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 + * ``` + * + */ +@ResourceType(type="aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount") +public class OrganizationDelegatedAdminAccount extends com.pulumi.resources.CustomResource { + /** + * An organization member account ID that you want to designate as a delegated administrator. + * + */ + @Export(name="accountId", refs={String.class}, tree="[0]") + private Output accountId; + + /** + * @return An organization member account ID that you want to designate as a delegated administrator. + * + */ + public Output accountId() { + return this.accountId; + } + /** + * The Amazon Resource Name (ARN) of the delegated administrator's account. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return The Amazon Resource Name (ARN) of the delegated administrator's account. + * + */ + public Output arn() { + return this.arn; + } + /** + * The email address that is associated with the delegated administrator's AWS account. + * + */ + @Export(name="email", refs={String.class}, tree="[0]") + private Output email; + + /** + * @return The email address that is associated with the delegated administrator's AWS account. + * + */ + public Output email() { + return this.email; + } + /** + * The friendly name of the delegated administrator's account. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The friendly name of the delegated administrator's account. + * + */ + public Output name() { + return this.name; + } + /** + * The AWS CloudTrail service principal name. + * + */ + @Export(name="servicePrincipal", refs={String.class}, tree="[0]") + private Output servicePrincipal; + + /** + * @return The AWS CloudTrail service principal name. + * + */ + public Output servicePrincipal() { + return this.servicePrincipal; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public OrganizationDelegatedAdminAccount(java.lang.String name) { + this(name, OrganizationDelegatedAdminAccountArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public OrganizationDelegatedAdminAccount(java.lang.String name, OrganizationDelegatedAdminAccountArgs 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 OrganizationDelegatedAdminAccount(java.lang.String name, OrganizationDelegatedAdminAccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private OrganizationDelegatedAdminAccount(java.lang.String name, Output id, @Nullable OrganizationDelegatedAdminAccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount", name, state, makeResourceOptions(options, id), false); + } + + private static OrganizationDelegatedAdminAccountArgs makeArgs(OrganizationDelegatedAdminAccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationDelegatedAdminAccountArgs.Empty : args; + } + + 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 OrganizationDelegatedAdminAccount get(java.lang.String name, Output id, @Nullable OrganizationDelegatedAdminAccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new OrganizationDelegatedAdminAccount(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccountArgs.java new file mode 100644 index 00000000000..f05ed8b43e2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/OrganizationDelegatedAdminAccountArgs.java @@ -0,0 +1,85 @@ +// *** 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.aws.cloudtrail; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class OrganizationDelegatedAdminAccountArgs extends com.pulumi.resources.ResourceArgs { + + public static final OrganizationDelegatedAdminAccountArgs Empty = new OrganizationDelegatedAdminAccountArgs(); + + /** + * An organization member account ID that you want to designate as a delegated administrator. + * + */ + @Import(name="accountId", required=true) + private Output accountId; + + /** + * @return An organization member account ID that you want to designate as a delegated administrator. + * + */ + public Output accountId() { + return this.accountId; + } + + private OrganizationDelegatedAdminAccountArgs() {} + + private OrganizationDelegatedAdminAccountArgs(OrganizationDelegatedAdminAccountArgs $) { + this.accountId = $.accountId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OrganizationDelegatedAdminAccountArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OrganizationDelegatedAdminAccountArgs $; + + public Builder() { + $ = new OrganizationDelegatedAdminAccountArgs(); + } + + public Builder(OrganizationDelegatedAdminAccountArgs defaults) { + $ = new OrganizationDelegatedAdminAccountArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param accountId An organization member account ID that you want to designate as a delegated administrator. + * + * @return builder + * + */ + public Builder accountId(Output accountId) { + $.accountId = accountId; + return this; + } + + /** + * @param accountId An organization member account ID that you want to designate as a delegated administrator. + * + * @return builder + * + */ + public Builder accountId(String accountId) { + return accountId(Output.of(accountId)); + } + + public OrganizationDelegatedAdminAccountArgs build() { + if ($.accountId == null) { + throw new MissingRequiredPropertyException("OrganizationDelegatedAdminAccountArgs", "accountId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/inputs/OrganizationDelegatedAdminAccountState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/inputs/OrganizationDelegatedAdminAccountState.java new file mode 100644 index 00000000000..0bbcff2507a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudtrail/inputs/OrganizationDelegatedAdminAccountState.java @@ -0,0 +1,231 @@ +// *** 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.aws.cloudtrail.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 OrganizationDelegatedAdminAccountState extends com.pulumi.resources.ResourceArgs { + + public static final OrganizationDelegatedAdminAccountState Empty = new OrganizationDelegatedAdminAccountState(); + + /** + * An organization member account ID that you want to designate as a delegated administrator. + * + */ + @Import(name="accountId") + private @Nullable Output accountId; + + /** + * @return An organization member account ID that you want to designate as a delegated administrator. + * + */ + public Optional> accountId() { + return Optional.ofNullable(this.accountId); + } + + /** + * The Amazon Resource Name (ARN) of the delegated administrator's account. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return The Amazon Resource Name (ARN) of the delegated administrator's account. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * The email address that is associated with the delegated administrator's AWS account. + * + */ + @Import(name="email") + private @Nullable Output email; + + /** + * @return The email address that is associated with the delegated administrator's AWS account. + * + */ + public Optional> email() { + return Optional.ofNullable(this.email); + } + + /** + * The friendly name of the delegated administrator's account. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The friendly name of the delegated administrator's account. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The AWS CloudTrail service principal name. + * + */ + @Import(name="servicePrincipal") + private @Nullable Output servicePrincipal; + + /** + * @return The AWS CloudTrail service principal name. + * + */ + public Optional> servicePrincipal() { + return Optional.ofNullable(this.servicePrincipal); + } + + private OrganizationDelegatedAdminAccountState() {} + + private OrganizationDelegatedAdminAccountState(OrganizationDelegatedAdminAccountState $) { + this.accountId = $.accountId; + this.arn = $.arn; + this.email = $.email; + this.name = $.name; + this.servicePrincipal = $.servicePrincipal; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OrganizationDelegatedAdminAccountState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OrganizationDelegatedAdminAccountState $; + + public Builder() { + $ = new OrganizationDelegatedAdminAccountState(); + } + + public Builder(OrganizationDelegatedAdminAccountState defaults) { + $ = new OrganizationDelegatedAdminAccountState(Objects.requireNonNull(defaults)); + } + + /** + * @param accountId An organization member account ID that you want to designate as a delegated administrator. + * + * @return builder + * + */ + public Builder accountId(@Nullable Output accountId) { + $.accountId = accountId; + return this; + } + + /** + * @param accountId An organization member account ID that you want to designate as a delegated administrator. + * + * @return builder + * + */ + public Builder accountId(String accountId) { + return accountId(Output.of(accountId)); + } + + /** + * @param arn The Amazon Resource Name (ARN) of the delegated administrator's account. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn The Amazon Resource Name (ARN) of the delegated administrator's account. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param email The email address that is associated with the delegated administrator's AWS account. + * + * @return builder + * + */ + public Builder email(@Nullable Output email) { + $.email = email; + return this; + } + + /** + * @param email The email address that is associated with the delegated administrator's AWS account. + * + * @return builder + * + */ + public Builder email(String email) { + return email(Output.of(email)); + } + + /** + * @param name The friendly name of the delegated administrator's account. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The friendly name of the delegated administrator's account. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param servicePrincipal The AWS CloudTrail service principal name. + * + * @return builder + * + */ + public Builder servicePrincipal(@Nullable Output servicePrincipal) { + $.servicePrincipal = servicePrincipal; + return this; + } + + /** + * @param servicePrincipal The AWS CloudTrail service principal name. + * + * @return builder + * + */ + public Builder servicePrincipal(String servicePrincipal) { + return servicePrincipal(Output.of(servicePrincipal)); + } + + public OrganizationDelegatedAdminAccountState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java index cfe27db5797..8ccda1e9400 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/inputs/PipelineStageActionArgs.java @@ -35,14 +35,14 @@ public Output category() { } /** - * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * */ @Import(name="configuration") private @Nullable Output> configuration; /** - * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * */ public Optional>> configuration() { @@ -264,7 +264,7 @@ public Builder category(String category) { } /** - * @param configuration A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * @param configuration A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * * @return builder * @@ -275,7 +275,7 @@ public Builder configuration(@Nullable Output> configuration) } /** - * @param configuration A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * @param configuration A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java index 82e7e9cd995..df99eea3ee8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java +++ b/sdk/java/src/main/java/com/pulumi/aws/codepipeline/outputs/PipelineStageAction.java @@ -21,7 +21,7 @@ public final class PipelineStageAction { */ private String category; /** - * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * */ private @Nullable Map configuration; @@ -86,7 +86,7 @@ public String category() { return this.category; } /** - * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * @return A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. * */ public Map configuration() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfile.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfile.java new file mode 100644 index 00000000000..730349081d0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfile.java @@ -0,0 +1,393 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.datazone.EnvironmentProfileArgs; +import com.pulumi.aws.datazone.inputs.EnvironmentProfileState; +import com.pulumi.aws.datazone.outputs.EnvironmentProfileUserParameter; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS DataZone Environment Profile. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.iam.Role;
+ * import com.pulumi.aws.iam.RoleArgs;
+ * import com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;
+ * import com.pulumi.aws.datazone.Domain;
+ * import com.pulumi.aws.datazone.DomainArgs;
+ * import com.pulumi.aws.ec2.SecurityGroup;
+ * import com.pulumi.aws.ec2.SecurityGroupArgs;
+ * import com.pulumi.aws.datazone.Project;
+ * import com.pulumi.aws.datazone.ProjectArgs;
+ * import com.pulumi.aws.AwsFunctions;
+ * import com.pulumi.aws.inputs.GetCallerIdentityArgs;
+ * import com.pulumi.aws.inputs.GetRegionArgs;
+ * import com.pulumi.aws.datazone.DatazoneFunctions;
+ * import com.pulumi.aws.datazone.inputs.GetEnvironmentBlueprintArgs;
+ * import com.pulumi.aws.datazone.EnvironmentBlueprintConfiguration;
+ * import com.pulumi.aws.datazone.EnvironmentBlueprintConfigurationArgs;
+ * import com.pulumi.aws.datazone.EnvironmentProfile;
+ * import com.pulumi.aws.datazone.EnvironmentProfileArgs;
+ * import com.pulumi.aws.datazone.inputs.EnvironmentProfileUserParameterArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * 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 domainExecutionRole = new Role("domainExecutionRole", RoleArgs.builder()
+ *             .name("example-name")
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "datazone.amazonaws.com")
+ *                             ))
+ *                         ), 
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "cloudformation.amazonaws.com")
+ *                             ))
+ *                         )
+ *                     ))
+ *                 )))
+ *             .inlinePolicies(RoleInlinePolicyArgs.builder()
+ *                 .name("example-name")
+ *                 .policy(serializeJson(
+ *                     jsonObject(
+ *                         jsonProperty("Version", "2012-10-17"),
+ *                         jsonProperty("Statement", jsonArray(jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "datazone:*", 
+ *                                 "ram:*", 
+ *                                 "sso:*", 
+ *                                 "kms:*"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Resource", "*")
+ *                         )))
+ *                     )))
+ *                 .build())
+ *             .build());
+ * 
+ *         var testDomain = new Domain("testDomain", DomainArgs.builder()
+ *             .name("example-name")
+ *             .domainExecutionRole(domainExecutionRole.arn())
+ *             .build());
+ * 
+ *         var testSecurityGroup = new SecurityGroup("testSecurityGroup", SecurityGroupArgs.builder()
+ *             .name("example-name")
+ *             .build());
+ * 
+ *         var testProject = new Project("testProject", ProjectArgs.builder()
+ *             .domainIdentifier(testDomain.id())
+ *             .glossaryTerms("2N8w6XJCwZf")
+ *             .name("example-name")
+ *             .description("desc")
+ *             .skipDeletionCheck(true)
+ *             .build());
+ * 
+ *         final var test = AwsFunctions.getCallerIdentity();
+ * 
+ *         final var testGetRegion = AwsFunctions.getRegion();
+ * 
+ *         final var testGetEnvironmentBlueprint = DatazoneFunctions.getEnvironmentBlueprint(GetEnvironmentBlueprintArgs.builder()
+ *             .domainId(testDomain.id())
+ *             .name("DefaultDataLake")
+ *             .managed(true)
+ *             .build());
+ * 
+ *         var testEnvironmentBlueprintConfiguration = new EnvironmentBlueprintConfiguration("testEnvironmentBlueprintConfiguration", EnvironmentBlueprintConfigurationArgs.builder()
+ *             .domainId(testDomain.id())
+ *             .environmentBlueprintId(testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -> getEnvironmentBlueprintResult).applyValue(testGetEnvironmentBlueprint -> testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -> getEnvironmentBlueprintResult.id())))
+ *             .provisioningRoleArn(domainExecutionRole.arn())
+ *             .enabledRegions(testGetRegion.applyValue(getRegionResult -> getRegionResult.name()))
+ *             .build());
+ * 
+ *         var testEnvironmentProfile = new EnvironmentProfile("testEnvironmentProfile", EnvironmentProfileArgs.builder()
+ *             .awsAccountId(test.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))
+ *             .awsAccountRegion(testGetRegion.applyValue(getRegionResult -> getRegionResult.name()))
+ *             .description("description")
+ *             .environmentBlueprintIdentifier(testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -> getEnvironmentBlueprintResult).applyValue(testGetEnvironmentBlueprint -> testGetEnvironmentBlueprint.applyValue(getEnvironmentBlueprintResult -> getEnvironmentBlueprintResult.id())))
+ *             .name("example-name")
+ *             .projectIdentifier(testProject.id())
+ *             .domainIdentifier(testDomain.id())
+ *             .userParameters(EnvironmentProfileUserParameterArgs.builder()
+ *                 .name("consumerGlueDbName")
+ *                 .value("value")
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: + * + * ```sh + * $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 + * ``` + * + */ +@ResourceType(type="aws:datazone/environmentProfile:EnvironmentProfile") +public class EnvironmentProfile extends com.pulumi.resources.CustomResource { + /** + * Id of the AWS account being used. + * + */ + @Export(name="awsAccountId", refs={String.class}, tree="[0]") + private Output awsAccountId; + + /** + * @return Id of the AWS account being used. + * + */ + public Output awsAccountId() { + return this.awsAccountId; + } + /** + * Desired region for environment profile. + * + */ + @Export(name="awsAccountRegion", refs={String.class}, tree="[0]") + private Output awsAccountRegion; + + /** + * @return Desired region for environment profile. + * + */ + public Output awsAccountRegion() { + return this.awsAccountRegion; + } + /** + * Creation time of environment profile. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Creation time of environment profile. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Creator of environment profile. + * + */ + @Export(name="createdBy", refs={String.class}, tree="[0]") + private Output createdBy; + + /** + * @return Creator of environment profile. + * + */ + public Output createdBy() { + return this.createdBy; + } + /** + * Description of environment profile. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of environment profile. + * + */ + public Output description() { + return this.description; + } + /** + * Domain Identifier for environment profile. + * + */ + @Export(name="domainIdentifier", refs={String.class}, tree="[0]") + private Output domainIdentifier; + + /** + * @return Domain Identifier for environment profile. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + /** + * ID of the blueprint which the environment will be created with. + * + */ + @Export(name="environmentBlueprintIdentifier", refs={String.class}, tree="[0]") + private Output environmentBlueprintIdentifier; + + /** + * @return ID of the blueprint which the environment will be created with. + * + */ + public Output environmentBlueprintIdentifier() { + return this.environmentBlueprintIdentifier; + } + /** + * Name of the environment profile. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the environment profile. + * + */ + public Output name() { + return this.name; + } + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + @Export(name="projectIdentifier", refs={String.class}, tree="[0]") + private Output projectIdentifier; + + /** + * @return Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + public Output projectIdentifier() { + return this.projectIdentifier; + } + /** + * Time of last update to environment profile. + * + */ + @Export(name="updatedAt", refs={String.class}, tree="[0]") + private Output updatedAt; + + /** + * @return Time of last update to environment profile. + * + */ + public Output updatedAt() { + return this.updatedAt; + } + /** + * Array of user parameters of the environment profile with the following attributes: + * + */ + @Export(name="userParameters", refs={List.class,EnvironmentProfileUserParameter.class}, tree="[0,1]") + private Output> userParameters; + + /** + * @return Array of user parameters of the environment profile with the following attributes: + * + */ + public Output>> userParameters() { + return Codegen.optional(this.userParameters); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public EnvironmentProfile(java.lang.String name) { + this(name, EnvironmentProfileArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public EnvironmentProfile(java.lang.String name, EnvironmentProfileArgs 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 EnvironmentProfile(java.lang.String name, EnvironmentProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/environmentProfile:EnvironmentProfile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private EnvironmentProfile(java.lang.String name, Output id, @Nullable EnvironmentProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/environmentProfile:EnvironmentProfile", name, state, makeResourceOptions(options, id), false); + } + + private static EnvironmentProfileArgs makeArgs(EnvironmentProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentProfileArgs.Empty : args; + } + + 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 EnvironmentProfile get(java.lang.String name, Output id, @Nullable EnvironmentProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new EnvironmentProfile(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfileArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfileArgs.java new file mode 100644 index 00000000000..081bf5f3c63 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/EnvironmentProfileArgs.java @@ -0,0 +1,375 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.datazone.inputs.EnvironmentProfileUserParameterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentProfileArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentProfileArgs Empty = new EnvironmentProfileArgs(); + + /** + * Id of the AWS account being used. + * + */ + @Import(name="awsAccountId") + private @Nullable Output awsAccountId; + + /** + * @return Id of the AWS account being used. + * + */ + public Optional> awsAccountId() { + return Optional.ofNullable(this.awsAccountId); + } + + /** + * Desired region for environment profile. + * + */ + @Import(name="awsAccountRegion", required=true) + private Output awsAccountRegion; + + /** + * @return Desired region for environment profile. + * + */ + public Output awsAccountRegion() { + return this.awsAccountRegion; + } + + /** + * Description of environment profile. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of environment profile. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Domain Identifier for environment profile. + * + */ + @Import(name="domainIdentifier", required=true) + private Output domainIdentifier; + + /** + * @return Domain Identifier for environment profile. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + + /** + * ID of the blueprint which the environment will be created with. + * + */ + @Import(name="environmentBlueprintIdentifier", required=true) + private Output environmentBlueprintIdentifier; + + /** + * @return ID of the blueprint which the environment will be created with. + * + */ + public Output environmentBlueprintIdentifier() { + return this.environmentBlueprintIdentifier; + } + + /** + * Name of the environment profile. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the environment profile. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + @Import(name="projectIdentifier", required=true) + private Output projectIdentifier; + + /** + * @return Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + public Output projectIdentifier() { + return this.projectIdentifier; + } + + /** + * Array of user parameters of the environment profile with the following attributes: + * + */ + @Import(name="userParameters") + private @Nullable Output> userParameters; + + /** + * @return Array of user parameters of the environment profile with the following attributes: + * + */ + public Optional>> userParameters() { + return Optional.ofNullable(this.userParameters); + } + + private EnvironmentProfileArgs() {} + + private EnvironmentProfileArgs(EnvironmentProfileArgs $) { + this.awsAccountId = $.awsAccountId; + this.awsAccountRegion = $.awsAccountRegion; + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.environmentBlueprintIdentifier = $.environmentBlueprintIdentifier; + this.name = $.name; + this.projectIdentifier = $.projectIdentifier; + this.userParameters = $.userParameters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentProfileArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentProfileArgs $; + + public Builder() { + $ = new EnvironmentProfileArgs(); + } + + public Builder(EnvironmentProfileArgs defaults) { + $ = new EnvironmentProfileArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param awsAccountId Id of the AWS account being used. + * + * @return builder + * + */ + public Builder awsAccountId(@Nullable Output awsAccountId) { + $.awsAccountId = awsAccountId; + return this; + } + + /** + * @param awsAccountId Id of the AWS account being used. + * + * @return builder + * + */ + public Builder awsAccountId(String awsAccountId) { + return awsAccountId(Output.of(awsAccountId)); + } + + /** + * @param awsAccountRegion Desired region for environment profile. + * + * @return builder + * + */ + public Builder awsAccountRegion(Output awsAccountRegion) { + $.awsAccountRegion = awsAccountRegion; + return this; + } + + /** + * @param awsAccountRegion Desired region for environment profile. + * + * @return builder + * + */ + public Builder awsAccountRegion(String awsAccountRegion) { + return awsAccountRegion(Output.of(awsAccountRegion)); + } + + /** + * @param description Description of environment profile. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of environment profile. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Domain Identifier for environment profile. + * + * @return builder + * + */ + public Builder domainIdentifier(Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Domain Identifier for environment profile. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param environmentBlueprintIdentifier ID of the blueprint which the environment will be created with. + * + * @return builder + * + */ + public Builder environmentBlueprintIdentifier(Output environmentBlueprintIdentifier) { + $.environmentBlueprintIdentifier = environmentBlueprintIdentifier; + return this; + } + + /** + * @param environmentBlueprintIdentifier ID of the blueprint which the environment will be created with. + * + * @return builder + * + */ + public Builder environmentBlueprintIdentifier(String environmentBlueprintIdentifier) { + return environmentBlueprintIdentifier(Output.of(environmentBlueprintIdentifier)); + } + + /** + * @param name Name of the environment profile. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the environment profile. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param projectIdentifier Project identifier for environment profile. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder projectIdentifier(Output projectIdentifier) { + $.projectIdentifier = projectIdentifier; + return this; + } + + /** + * @param projectIdentifier Project identifier for environment profile. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder projectIdentifier(String projectIdentifier) { + return projectIdentifier(Output.of(projectIdentifier)); + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(@Nullable Output> userParameters) { + $.userParameters = userParameters; + return this; + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(List userParameters) { + return userParameters(Output.of(userParameters)); + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(EnvironmentProfileUserParameterArgs... userParameters) { + return userParameters(List.of(userParameters)); + } + + public EnvironmentProfileArgs build() { + if ($.awsAccountRegion == null) { + throw new MissingRequiredPropertyException("EnvironmentProfileArgs", "awsAccountRegion"); + } + if ($.domainIdentifier == null) { + throw new MissingRequiredPropertyException("EnvironmentProfileArgs", "domainIdentifier"); + } + if ($.environmentBlueprintIdentifier == null) { + throw new MissingRequiredPropertyException("EnvironmentProfileArgs", "environmentBlueprintIdentifier"); + } + if ($.projectIdentifier == null) { + throw new MissingRequiredPropertyException("EnvironmentProfileArgs", "projectIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java new file mode 100644 index 00000000000..2c2fb93c4f8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormType.java @@ -0,0 +1,380 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.datazone.FormTypeArgs; +import com.pulumi.aws.datazone.inputs.FormTypeState; +import com.pulumi.aws.datazone.outputs.FormTypeImport; +import com.pulumi.aws.datazone.outputs.FormTypeModel; +import com.pulumi.aws.datazone.outputs.FormTypeTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS DataZone Form Type. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.iam.Role;
+ * import com.pulumi.aws.iam.RoleArgs;
+ * import com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;
+ * import com.pulumi.aws.datazone.Domain;
+ * import com.pulumi.aws.datazone.DomainArgs;
+ * import com.pulumi.aws.ec2.SecurityGroup;
+ * import com.pulumi.aws.ec2.SecurityGroupArgs;
+ * import com.pulumi.aws.datazone.Project;
+ * import com.pulumi.aws.datazone.ProjectArgs;
+ * import com.pulumi.aws.datazone.FormType;
+ * import com.pulumi.aws.datazone.FormTypeArgs;
+ * import com.pulumi.aws.datazone.inputs.FormTypeModelArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * 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 }{{@code
+ *     public static void main(String[] args) }{{@code
+ *         Pulumi.run(App::stack);
+ *     }}{@code
+ * 
+ *     public static void stack(Context ctx) }{{@code
+ *         var domainExecutionRole = new Role("domainExecutionRole", RoleArgs.builder()
+ *             .name("example name")
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "datazone.amazonaws.com")
+ *                             ))
+ *                         ), 
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "cloudformation.amazonaws.com")
+ *                             ))
+ *                         )
+ *                     ))
+ *                 )))
+ *             .inlinePolicies(RoleInlinePolicyArgs.builder()
+ *                 .name("example name")
+ *                 .policy(serializeJson(
+ *                     jsonObject(
+ *                         jsonProperty("Version", "2012-10-17"),
+ *                         jsonProperty("Statement", jsonArray(jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "datazone:*", 
+ *                                 "ram:*", 
+ *                                 "sso:*", 
+ *                                 "kms:*"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Resource", "*")
+ *                         )))
+ *                     )))
+ *                 .build())
+ *             .build());
+ * 
+ *         var test = new Domain("test", DomainArgs.builder()
+ *             .name("example name")
+ *             .domainExecutionRole(domainExecutionRole.arn())
+ *             .build());
+ * 
+ *         var testSecurityGroup = new SecurityGroup("testSecurityGroup", SecurityGroupArgs.builder()
+ *             .name("example name")
+ *             .build());
+ * 
+ *         var testProject = new Project("testProject", ProjectArgs.builder()
+ *             .domainIdentifier(test.id())
+ *             .glossaryTerms("2N8w6XJCwZf")
+ *             .name("example name")
+ *             .description("desc")
+ *             .skipDeletionCheck(true)
+ *             .build());
+ * 
+ *         var testFormType = new FormType("testFormType", FormTypeArgs.builder()
+ *             .description("desc")
+ *             .name("SageMakerModelFormType")
+ *             .domainIdentifier(test.id())
+ *             .owningProjectIdentifier(testProject.id())
+ *             .status("DISABLED")
+ *             .model(FormTypeModelArgs.builder()
+ *                 .smithy("""
+ * 	structure SageMakerModelFormType }{{@code
+ * 			}{@literal @}{@code required
+ * 			}{@literal @}{@code amazon.datazone#searchable
+ * 			modelName: String
+ * 
+ * 			}{@literal @}{@code required
+ * 			modelArn: String
+ * 
+ * 			}{@literal @}{@code required
+ * 			creationTime: String
+ * 			}}{@code
+ *                 """)
+ *                 .build())
+ *             .build());
+ * 
+ *     }}{@code
+ * }}{@code
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: + * + * ```sh + * $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision + * ``` + * + */ +@ResourceType(type="aws:datazone/formType:FormType") +public class FormType extends com.pulumi.resources.CustomResource { + /** + * Creation time of the Form Type. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Creation time of the Form Type. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Creator of the Form Type. + * + */ + @Export(name="createdBy", refs={String.class}, tree="[0]") + private Output createdBy; + + /** + * @return Creator of the Form Type. + * + */ + public Output createdBy() { + return this.createdBy; + } + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Identifier of the domain. + * + */ + @Export(name="domainIdentifier", refs={String.class}, tree="[0]") + private Output domainIdentifier; + + /** + * @return Identifier of the domain. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + @Export(name="imports", refs={List.class,FormTypeImport.class}, tree="[0,1]") + private Output> imports; + + public Output> imports() { + return this.imports; + } + /** + * Object of the model of the form type that contains the following attributes. + * + */ + @Export(name="model", refs={FormTypeModel.class}, tree="[0]") + private Output model; + + /** + * @return Object of the model of the form type that contains the following attributes. + * + */ + public Output> model() { + return Codegen.optional(this.model); + } + /** + * Name of the form type. Must be the name of the structure in smithy document. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + public Output name() { + return this.name; + } + /** + * Origin domain id of the Form Type. + * + */ + @Export(name="originDomainId", refs={String.class}, tree="[0]") + private Output originDomainId; + + /** + * @return Origin domain id of the Form Type. + * + */ + public Output originDomainId() { + return this.originDomainId; + } + /** + * Origin project id of the Form Type. + * + */ + @Export(name="originProjectId", refs={String.class}, tree="[0]") + private Output originProjectId; + + /** + * @return Origin project id of the Form Type. + * + */ + public Output originProjectId() { + return this.originProjectId; + } + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + @Export(name="owningProjectIdentifier", refs={String.class}, tree="[0]") + private Output owningProjectIdentifier; + + /** + * @return Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + public Output owningProjectIdentifier() { + return this.owningProjectIdentifier; + } + /** + * Revision of the Form Type. + * + */ + @Export(name="revision", refs={String.class}, tree="[0]") + private Output revision; + + /** + * @return Revision of the Form Type. + * + */ + public Output revision() { + return this.revision; + } + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + public Output status() { + return this.status; + } + @Export(name="timeouts", refs={FormTypeTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public FormType(java.lang.String name) { + this(name, FormTypeArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public FormType(java.lang.String name, FormTypeArgs 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 FormType(java.lang.String name, FormTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/formType:FormType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private FormType(java.lang.String name, Output id, @Nullable FormTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/formType:FormType", name, state, makeResourceOptions(options, id), false); + } + + private static FormTypeArgs makeArgs(FormTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FormTypeArgs.Empty : args; + } + + 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 FormType get(java.lang.String name, Output id, @Nullable FormTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new FormType(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/FormTypeArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormTypeArgs.java new file mode 100644 index 00000000000..91aba7ada6a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/FormTypeArgs.java @@ -0,0 +1,274 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.datazone.inputs.FormTypeModelArgs; +import com.pulumi.aws.datazone.inputs.FormTypeTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FormTypeArgs extends com.pulumi.resources.ResourceArgs { + + public static final FormTypeArgs Empty = new FormTypeArgs(); + + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Identifier of the domain. + * + */ + @Import(name="domainIdentifier", required=true) + private Output domainIdentifier; + + /** + * @return Identifier of the domain. + * + */ + public Output domainIdentifier() { + return this.domainIdentifier; + } + + /** + * Object of the model of the form type that contains the following attributes. + * + */ + @Import(name="model") + private @Nullable Output model; + + /** + * @return Object of the model of the form type that contains the following attributes. + * + */ + public Optional> model() { + return Optional.ofNullable(this.model); + } + + /** + * Name of the form type. Must be the name of the structure in smithy document. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + @Import(name="owningProjectIdentifier", required=true) + private Output owningProjectIdentifier; + + /** + * @return Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + public Output owningProjectIdentifier() { + return this.owningProjectIdentifier; + } + + @Import(name="status") + private @Nullable Output status; + + public Optional> status() { + return Optional.ofNullable(this.status); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private FormTypeArgs() {} + + private FormTypeArgs(FormTypeArgs $) { + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.model = $.model; + this.name = $.name; + this.owningProjectIdentifier = $.owningProjectIdentifier; + this.status = $.status; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FormTypeArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FormTypeArgs $; + + public Builder() { + $ = new FormTypeArgs(); + } + + public Builder(FormTypeArgs defaults) { + $ = new FormTypeArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of form type. Must have a length of between 1 and 2048 characters. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of form type. Must have a length of between 1 and 2048 characters. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Identifier of the domain. + * + * @return builder + * + */ + public Builder domainIdentifier(Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of the domain. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param model Object of the model of the form type that contains the following attributes. + * + * @return builder + * + */ + public Builder model(@Nullable Output model) { + $.model = model; + return this; + } + + /** + * @param model Object of the model of the form type that contains the following attributes. + * + * @return builder + * + */ + public Builder model(FormTypeModelArgs model) { + return model(Output.of(model)); + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param owningProjectIdentifier Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + * @return builder + * + */ + public Builder owningProjectIdentifier(Output owningProjectIdentifier) { + $.owningProjectIdentifier = owningProjectIdentifier; + return this; + } + + /** + * @param owningProjectIdentifier Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + * @return builder + * + */ + public Builder owningProjectIdentifier(String owningProjectIdentifier) { + return owningProjectIdentifier(Output.of(owningProjectIdentifier)); + } + + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + public Builder status(String status) { + return status(Output.of(status)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(FormTypeTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public FormTypeArgs build() { + if ($.domainIdentifier == null) { + throw new MissingRequiredPropertyException("FormTypeArgs", "domainIdentifier"); + } + if ($.owningProjectIdentifier == null) { + throw new MissingRequiredPropertyException("FormTypeArgs", "owningProjectIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTerm.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTerm.java new file mode 100644 index 00000000000..90f3d2289b9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTerm.java @@ -0,0 +1,346 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.datazone.GlossaryTermArgs; +import com.pulumi.aws.datazone.inputs.GlossaryTermState; +import com.pulumi.aws.datazone.outputs.GlossaryTermTermRelations; +import com.pulumi.aws.datazone.outputs.GlossaryTermTimeouts; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS DataZone Glossary Term. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.iam.Role;
+ * import com.pulumi.aws.iam.RoleArgs;
+ * import com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;
+ * import com.pulumi.aws.datazone.Domain;
+ * import com.pulumi.aws.datazone.DomainArgs;
+ * import com.pulumi.aws.ec2.SecurityGroup;
+ * import com.pulumi.aws.ec2.SecurityGroupArgs;
+ * import com.pulumi.aws.datazone.Project;
+ * import com.pulumi.aws.datazone.ProjectArgs;
+ * import com.pulumi.aws.datazone.Glossary;
+ * import com.pulumi.aws.datazone.GlossaryArgs;
+ * import com.pulumi.aws.datazone.GlossaryTerm;
+ * import com.pulumi.aws.datazone.GlossaryTermArgs;
+ * import static com.pulumi.codegen.internal.Serialization.*;
+ * 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 example = new Role("example", RoleArgs.builder()
+ *             .name("example")
+ *             .assumeRolePolicy(serializeJson(
+ *                 jsonObject(
+ *                     jsonProperty("Version", "2012-10-17"),
+ *                     jsonProperty("Statement", jsonArray(
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "datazone.amazonaws.com")
+ *                             ))
+ *                         ), 
+ *                         jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "sts:AssumeRole", 
+ *                                 "sts:TagSession"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Principal", jsonObject(
+ *                                 jsonProperty("Service", "cloudformation.amazonaws.com")
+ *                             ))
+ *                         )
+ *                     ))
+ *                 )))
+ *             .inlinePolicies(RoleInlinePolicyArgs.builder()
+ *                 .name("example")
+ *                 .policy(serializeJson(
+ *                     jsonObject(
+ *                         jsonProperty("Version", "2012-10-17"),
+ *                         jsonProperty("Statement", jsonArray(jsonObject(
+ *                             jsonProperty("Action", jsonArray(
+ *                                 "datazone:*", 
+ *                                 "ram:*", 
+ *                                 "sso:*", 
+ *                                 "kms:*"
+ *                             )),
+ *                             jsonProperty("Effect", "Allow"),
+ *                             jsonProperty("Resource", "*")
+ *                         )))
+ *                     )))
+ *                 .build())
+ *             .build());
+ * 
+ *         var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
+ *             .name("example_name")
+ *             .domainExecutionRole(example.arn())
+ *             .build());
+ * 
+ *         var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()
+ *             .name("example_name")
+ *             .build());
+ * 
+ *         var exampleProject = new Project("exampleProject", ProjectArgs.builder()
+ *             .domainIdentifier(exampleDomain.id())
+ *             .glossaryTerms("2N8w6XJCwZf")
+ *             .name("example")
+ *             .skipDeletionCheck(true)
+ *             .build());
+ * 
+ *         var exampleGlossary = new Glossary("exampleGlossary", GlossaryArgs.builder()
+ *             .description("description")
+ *             .name("example")
+ *             .owningProjectIdentifier(exampleProject.id())
+ *             .status("ENABLED")
+ *             .domainIdentifier(exampleProject.domainIdentifier())
+ *             .build());
+ * 
+ *         var exampleGlossaryTerm = new GlossaryTerm("exampleGlossaryTerm", GlossaryTermArgs.builder()
+ *             .domainIdentifier(exampleDomain.id())
+ *             .glossaryIdentifier(exampleGlossary.id())
+ *             .name("example")
+ *             .status("ENABLED")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: + * + * ```sh + * $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id + * ``` + * + */ +@ResourceType(type="aws:datazone/glossaryTerm:GlossaryTerm") +public class GlossaryTerm extends com.pulumi.resources.CustomResource { + /** + * Time of glossary term creation. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Time of glossary term creation. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * Creator of glossary term. + * + */ + @Export(name="createdBy", refs={String.class}, tree="[0]") + private Output createdBy; + + /** + * @return Creator of glossary term. + * + */ + public Output createdBy() { + return this.createdBy; + } + /** + * Identifier of domain. + * + */ + @Export(name="domainIdentifier", refs={String.class}, tree="[0]") + private Output domainIdentifier; + + /** + * @return Identifier of domain. + * + */ + public Output> domainIdentifier() { + return Codegen.optional(this.domainIdentifier); + } + /** + * Identifier of glossary. + * + */ + @Export(name="glossaryIdentifier", refs={String.class}, tree="[0]") + private Output glossaryIdentifier; + + /** + * @return Identifier of glossary. + * + */ + public Output glossaryIdentifier() { + return this.glossaryIdentifier; + } + /** + * Long description of entry. + * + */ + @Export(name="longDescription", refs={String.class}, tree="[0]") + private Output longDescription; + + /** + * @return Long description of entry. + * + */ + public Output> longDescription() { + return Codegen.optional(this.longDescription); + } + /** + * Name of glossary term. + * + * The following arguments are optional: + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of glossary term. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + /** + * Short description of entry. + * + */ + @Export(name="shortDescription", refs={String.class}, tree="[0]") + private Output shortDescription; + + /** + * @return Short description of entry. + * + */ + public Output> shortDescription() { + return Codegen.optional(this.shortDescription); + } + /** + * If glossary term is ENABLED or DISABLED. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return If glossary term is ENABLED or DISABLED. + * + */ + public Output> status() { + return Codegen.optional(this.status); + } + /** + * Object classifying the term relations through the following attributes: + * + */ + @Export(name="termRelations", refs={GlossaryTermTermRelations.class}, tree="[0]") + private Output termRelations; + + /** + * @return Object classifying the term relations through the following attributes: + * + */ + public Output> termRelations() { + return Codegen.optional(this.termRelations); + } + @Export(name="timeouts", refs={GlossaryTermTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GlossaryTerm(java.lang.String name) { + this(name, GlossaryTermArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GlossaryTerm(java.lang.String name, GlossaryTermArgs 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 GlossaryTerm(java.lang.String name, GlossaryTermArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/glossaryTerm:GlossaryTerm", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GlossaryTerm(java.lang.String name, Output id, @Nullable GlossaryTermState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:datazone/glossaryTerm:GlossaryTerm", name, state, makeResourceOptions(options, id), false); + } + + private static GlossaryTermArgs makeArgs(GlossaryTermArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GlossaryTermArgs.Empty : args; + } + + 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 GlossaryTerm get(java.lang.String name, Output id, @Nullable GlossaryTermState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GlossaryTerm(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTermArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTermArgs.java new file mode 100644 index 00000000000..42d0f2b6248 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/GlossaryTermArgs.java @@ -0,0 +1,336 @@ +// *** 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.aws.datazone; + +import com.pulumi.aws.datazone.inputs.GlossaryTermTermRelationsArgs; +import com.pulumi.aws.datazone.inputs.GlossaryTermTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GlossaryTermArgs extends com.pulumi.resources.ResourceArgs { + + public static final GlossaryTermArgs Empty = new GlossaryTermArgs(); + + /** + * Identifier of domain. + * + */ + @Import(name="domainIdentifier") + private @Nullable Output domainIdentifier; + + /** + * @return Identifier of domain. + * + */ + public Optional> domainIdentifier() { + return Optional.ofNullable(this.domainIdentifier); + } + + /** + * Identifier of glossary. + * + */ + @Import(name="glossaryIdentifier", required=true) + private Output glossaryIdentifier; + + /** + * @return Identifier of glossary. + * + */ + public Output glossaryIdentifier() { + return this.glossaryIdentifier; + } + + /** + * Long description of entry. + * + */ + @Import(name="longDescription") + private @Nullable Output longDescription; + + /** + * @return Long description of entry. + * + */ + public Optional> longDescription() { + return Optional.ofNullable(this.longDescription); + } + + /** + * Name of glossary term. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of glossary term. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Short description of entry. + * + */ + @Import(name="shortDescription") + private @Nullable Output shortDescription; + + /** + * @return Short description of entry. + * + */ + public Optional> shortDescription() { + return Optional.ofNullable(this.shortDescription); + } + + /** + * If glossary term is ENABLED or DISABLED. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return If glossary term is ENABLED or DISABLED. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Object classifying the term relations through the following attributes: + * + */ + @Import(name="termRelations") + private @Nullable Output termRelations; + + /** + * @return Object classifying the term relations through the following attributes: + * + */ + public Optional> termRelations() { + return Optional.ofNullable(this.termRelations); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private GlossaryTermArgs() {} + + private GlossaryTermArgs(GlossaryTermArgs $) { + this.domainIdentifier = $.domainIdentifier; + this.glossaryIdentifier = $.glossaryIdentifier; + this.longDescription = $.longDescription; + this.name = $.name; + this.shortDescription = $.shortDescription; + this.status = $.status; + this.termRelations = $.termRelations; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlossaryTermArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlossaryTermArgs $; + + public Builder() { + $ = new GlossaryTermArgs(); + } + + public Builder(GlossaryTermArgs defaults) { + $ = new GlossaryTermArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domainIdentifier Identifier of domain. + * + * @return builder + * + */ + public Builder domainIdentifier(@Nullable Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of domain. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param glossaryIdentifier Identifier of glossary. + * + * @return builder + * + */ + public Builder glossaryIdentifier(Output glossaryIdentifier) { + $.glossaryIdentifier = glossaryIdentifier; + return this; + } + + /** + * @param glossaryIdentifier Identifier of glossary. + * + * @return builder + * + */ + public Builder glossaryIdentifier(String glossaryIdentifier) { + return glossaryIdentifier(Output.of(glossaryIdentifier)); + } + + /** + * @param longDescription Long description of entry. + * + * @return builder + * + */ + public Builder longDescription(@Nullable Output longDescription) { + $.longDescription = longDescription; + return this; + } + + /** + * @param longDescription Long description of entry. + * + * @return builder + * + */ + public Builder longDescription(String longDescription) { + return longDescription(Output.of(longDescription)); + } + + /** + * @param name Name of glossary term. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of glossary term. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param shortDescription Short description of entry. + * + * @return builder + * + */ + public Builder shortDescription(@Nullable Output shortDescription) { + $.shortDescription = shortDescription; + return this; + } + + /** + * @param shortDescription Short description of entry. + * + * @return builder + * + */ + public Builder shortDescription(String shortDescription) { + return shortDescription(Output.of(shortDescription)); + } + + /** + * @param status If glossary term is ENABLED or DISABLED. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status If glossary term is ENABLED or DISABLED. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param termRelations Object classifying the term relations through the following attributes: + * + * @return builder + * + */ + public Builder termRelations(@Nullable Output termRelations) { + $.termRelations = termRelations; + return this; + } + + /** + * @param termRelations Object classifying the term relations through the following attributes: + * + * @return builder + * + */ + public Builder termRelations(GlossaryTermTermRelationsArgs termRelations) { + return termRelations(Output.of(termRelations)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GlossaryTermTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public GlossaryTermArgs build() { + if ($.glossaryIdentifier == null) { + throw new MissingRequiredPropertyException("GlossaryTermArgs", "glossaryIdentifier"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileState.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileState.java new file mode 100644 index 00000000000..9c670c17ad7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileState.java @@ -0,0 +1,473 @@ +// *** 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.aws.datazone.inputs; + +import com.pulumi.aws.datazone.inputs.EnvironmentProfileUserParameterArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentProfileState extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentProfileState Empty = new EnvironmentProfileState(); + + /** + * Id of the AWS account being used. + * + */ + @Import(name="awsAccountId") + private @Nullable Output awsAccountId; + + /** + * @return Id of the AWS account being used. + * + */ + public Optional> awsAccountId() { + return Optional.ofNullable(this.awsAccountId); + } + + /** + * Desired region for environment profile. + * + */ + @Import(name="awsAccountRegion") + private @Nullable Output awsAccountRegion; + + /** + * @return Desired region for environment profile. + * + */ + public Optional> awsAccountRegion() { + return Optional.ofNullable(this.awsAccountRegion); + } + + /** + * Creation time of environment profile. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Creation time of environment profile. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Creator of environment profile. + * + */ + @Import(name="createdBy") + private @Nullable Output createdBy; + + /** + * @return Creator of environment profile. + * + */ + public Optional> createdBy() { + return Optional.ofNullable(this.createdBy); + } + + /** + * Description of environment profile. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of environment profile. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Domain Identifier for environment profile. + * + */ + @Import(name="domainIdentifier") + private @Nullable Output domainIdentifier; + + /** + * @return Domain Identifier for environment profile. + * + */ + public Optional> domainIdentifier() { + return Optional.ofNullable(this.domainIdentifier); + } + + /** + * ID of the blueprint which the environment will be created with. + * + */ + @Import(name="environmentBlueprintIdentifier") + private @Nullable Output environmentBlueprintIdentifier; + + /** + * @return ID of the blueprint which the environment will be created with. + * + */ + public Optional> environmentBlueprintIdentifier() { + return Optional.ofNullable(this.environmentBlueprintIdentifier); + } + + /** + * Name of the environment profile. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the environment profile. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + @Import(name="projectIdentifier") + private @Nullable Output projectIdentifier; + + /** + * @return Project identifier for environment profile. + * + * The following arguments are optional: + * + */ + public Optional> projectIdentifier() { + return Optional.ofNullable(this.projectIdentifier); + } + + /** + * Time of last update to environment profile. + * + */ + @Import(name="updatedAt") + private @Nullable Output updatedAt; + + /** + * @return Time of last update to environment profile. + * + */ + public Optional> updatedAt() { + return Optional.ofNullable(this.updatedAt); + } + + /** + * Array of user parameters of the environment profile with the following attributes: + * + */ + @Import(name="userParameters") + private @Nullable Output> userParameters; + + /** + * @return Array of user parameters of the environment profile with the following attributes: + * + */ + public Optional>> userParameters() { + return Optional.ofNullable(this.userParameters); + } + + private EnvironmentProfileState() {} + + private EnvironmentProfileState(EnvironmentProfileState $) { + this.awsAccountId = $.awsAccountId; + this.awsAccountRegion = $.awsAccountRegion; + this.createdAt = $.createdAt; + this.createdBy = $.createdBy; + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.environmentBlueprintIdentifier = $.environmentBlueprintIdentifier; + this.name = $.name; + this.projectIdentifier = $.projectIdentifier; + this.updatedAt = $.updatedAt; + this.userParameters = $.userParameters; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentProfileState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentProfileState $; + + public Builder() { + $ = new EnvironmentProfileState(); + } + + public Builder(EnvironmentProfileState defaults) { + $ = new EnvironmentProfileState(Objects.requireNonNull(defaults)); + } + + /** + * @param awsAccountId Id of the AWS account being used. + * + * @return builder + * + */ + public Builder awsAccountId(@Nullable Output awsAccountId) { + $.awsAccountId = awsAccountId; + return this; + } + + /** + * @param awsAccountId Id of the AWS account being used. + * + * @return builder + * + */ + public Builder awsAccountId(String awsAccountId) { + return awsAccountId(Output.of(awsAccountId)); + } + + /** + * @param awsAccountRegion Desired region for environment profile. + * + * @return builder + * + */ + public Builder awsAccountRegion(@Nullable Output awsAccountRegion) { + $.awsAccountRegion = awsAccountRegion; + return this; + } + + /** + * @param awsAccountRegion Desired region for environment profile. + * + * @return builder + * + */ + public Builder awsAccountRegion(String awsAccountRegion) { + return awsAccountRegion(Output.of(awsAccountRegion)); + } + + /** + * @param createdAt Creation time of environment profile. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Creation time of environment profile. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param createdBy Creator of environment profile. + * + * @return builder + * + */ + public Builder createdBy(@Nullable Output createdBy) { + $.createdBy = createdBy; + return this; + } + + /** + * @param createdBy Creator of environment profile. + * + * @return builder + * + */ + public Builder createdBy(String createdBy) { + return createdBy(Output.of(createdBy)); + } + + /** + * @param description Description of environment profile. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of environment profile. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Domain Identifier for environment profile. + * + * @return builder + * + */ + public Builder domainIdentifier(@Nullable Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Domain Identifier for environment profile. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param environmentBlueprintIdentifier ID of the blueprint which the environment will be created with. + * + * @return builder + * + */ + public Builder environmentBlueprintIdentifier(@Nullable Output environmentBlueprintIdentifier) { + $.environmentBlueprintIdentifier = environmentBlueprintIdentifier; + return this; + } + + /** + * @param environmentBlueprintIdentifier ID of the blueprint which the environment will be created with. + * + * @return builder + * + */ + public Builder environmentBlueprintIdentifier(String environmentBlueprintIdentifier) { + return environmentBlueprintIdentifier(Output.of(environmentBlueprintIdentifier)); + } + + /** + * @param name Name of the environment profile. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the environment profile. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param projectIdentifier Project identifier for environment profile. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder projectIdentifier(@Nullable Output projectIdentifier) { + $.projectIdentifier = projectIdentifier; + return this; + } + + /** + * @param projectIdentifier Project identifier for environment profile. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder projectIdentifier(String projectIdentifier) { + return projectIdentifier(Output.of(projectIdentifier)); + } + + /** + * @param updatedAt Time of last update to environment profile. + * + * @return builder + * + */ + public Builder updatedAt(@Nullable Output updatedAt) { + $.updatedAt = updatedAt; + return this; + } + + /** + * @param updatedAt Time of last update to environment profile. + * + * @return builder + * + */ + public Builder updatedAt(String updatedAt) { + return updatedAt(Output.of(updatedAt)); + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(@Nullable Output> userParameters) { + $.userParameters = userParameters; + return this; + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(List userParameters) { + return userParameters(Output.of(userParameters)); + } + + /** + * @param userParameters Array of user parameters of the environment profile with the following attributes: + * + * @return builder + * + */ + public Builder userParameters(EnvironmentProfileUserParameterArgs... userParameters) { + return userParameters(List.of(userParameters)); + } + + public EnvironmentProfileState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileUserParameterArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileUserParameterArgs.java new file mode 100644 index 00000000000..f03caca4a46 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/EnvironmentProfileUserParameterArgs.java @@ -0,0 +1,120 @@ +// *** 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.aws.datazone.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 EnvironmentProfileUserParameterArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentProfileUserParameterArgs Empty = new EnvironmentProfileUserParameterArgs(); + + /** + * Name of the environment profile parameter. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the environment profile parameter. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Value of the environment profile parameter. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return Value of the environment profile parameter. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private EnvironmentProfileUserParameterArgs() {} + + private EnvironmentProfileUserParameterArgs(EnvironmentProfileUserParameterArgs $) { + this.name = $.name; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentProfileUserParameterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentProfileUserParameterArgs $; + + public Builder() { + $ = new EnvironmentProfileUserParameterArgs(); + } + + public Builder(EnvironmentProfileUserParameterArgs defaults) { + $ = new EnvironmentProfileUserParameterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name Name of the environment profile parameter. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the environment profile parameter. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param value Value of the environment profile parameter. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value Value of the environment profile parameter. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public EnvironmentProfileUserParameterArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeImportArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeImportArgs.java new file mode 100644 index 00000000000..f89565b04ed --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeImportArgs.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.aws.datazone.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class FormTypeImportArgs extends com.pulumi.resources.ResourceArgs { + + public static final FormTypeImportArgs Empty = new FormTypeImportArgs(); + + /** + * Name of the form type. Must be the name of the structure in smithy document. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + public Output name() { + return this.name; + } + + /** + * Revision of the Form Type. + * + */ + @Import(name="revision", required=true) + private Output revision; + + /** + * @return Revision of the Form Type. + * + */ + public Output revision() { + return this.revision; + } + + private FormTypeImportArgs() {} + + private FormTypeImportArgs(FormTypeImportArgs $) { + this.name = $.name; + this.revision = $.revision; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FormTypeImportArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FormTypeImportArgs $; + + public Builder() { + $ = new FormTypeImportArgs(); + } + + public Builder(FormTypeImportArgs defaults) { + $ = new FormTypeImportArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param revision Revision of the Form Type. + * + * @return builder + * + */ + public Builder revision(Output revision) { + $.revision = revision; + return this; + } + + /** + * @param revision Revision of the Form Type. + * + * @return builder + * + */ + public Builder revision(String revision) { + return revision(Output.of(revision)); + } + + public FormTypeImportArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("FormTypeImportArgs", "name"); + } + if ($.revision == null) { + throw new MissingRequiredPropertyException("FormTypeImportArgs", "revision"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeModelArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeModelArgs.java new file mode 100644 index 00000000000..c47999d82d2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeModelArgs.java @@ -0,0 +1,93 @@ +// *** 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.aws.datazone.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class FormTypeModelArgs extends com.pulumi.resources.ResourceArgs { + + public static final FormTypeModelArgs Empty = new FormTypeModelArgs(); + + /** + * Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + */ + @Import(name="smithy", required=true) + private Output smithy; + + /** + * @return Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + */ + public Output smithy() { + return this.smithy; + } + + private FormTypeModelArgs() {} + + private FormTypeModelArgs(FormTypeModelArgs $) { + this.smithy = $.smithy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FormTypeModelArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FormTypeModelArgs $; + + public Builder() { + $ = new FormTypeModelArgs(); + } + + public Builder(FormTypeModelArgs defaults) { + $ = new FormTypeModelArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param smithy Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder smithy(Output smithy) { + $.smithy = smithy; + return this; + } + + /** + * @param smithy Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder smithy(String smithy) { + return smithy(Output.of(smithy)); + } + + public FormTypeModelArgs build() { + if ($.smithy == null) { + throw new MissingRequiredPropertyException("FormTypeModelArgs", "smithy"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeState.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeState.java new file mode 100644 index 00000000000..7e6aac99464 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeState.java @@ -0,0 +1,475 @@ +// *** 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.aws.datazone.inputs; + +import com.pulumi.aws.datazone.inputs.FormTypeImportArgs; +import com.pulumi.aws.datazone.inputs.FormTypeModelArgs; +import com.pulumi.aws.datazone.inputs.FormTypeTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class FormTypeState extends com.pulumi.resources.ResourceArgs { + + public static final FormTypeState Empty = new FormTypeState(); + + /** + * Creation time of the Form Type. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Creation time of the Form Type. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Creator of the Form Type. + * + */ + @Import(name="createdBy") + private @Nullable Output createdBy; + + /** + * @return Creator of the Form Type. + * + */ + public Optional> createdBy() { + return Optional.ofNullable(this.createdBy); + } + + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of form type. Must have a length of between 1 and 2048 characters. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Identifier of the domain. + * + */ + @Import(name="domainIdentifier") + private @Nullable Output domainIdentifier; + + /** + * @return Identifier of the domain. + * + */ + public Optional> domainIdentifier() { + return Optional.ofNullable(this.domainIdentifier); + } + + @Import(name="imports") + private @Nullable Output> imports; + + public Optional>> imports() { + return Optional.ofNullable(this.imports); + } + + /** + * Object of the model of the form type that contains the following attributes. + * + */ + @Import(name="model") + private @Nullable Output model; + + /** + * @return Object of the model of the form type that contains the following attributes. + * + */ + public Optional> model() { + return Optional.ofNullable(this.model); + } + + /** + * Name of the form type. Must be the name of the structure in smithy document. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Origin domain id of the Form Type. + * + */ + @Import(name="originDomainId") + private @Nullable Output originDomainId; + + /** + * @return Origin domain id of the Form Type. + * + */ + public Optional> originDomainId() { + return Optional.ofNullable(this.originDomainId); + } + + /** + * Origin project id of the Form Type. + * + */ + @Import(name="originProjectId") + private @Nullable Output originProjectId; + + /** + * @return Origin project id of the Form Type. + * + */ + public Optional> originProjectId() { + return Optional.ofNullable(this.originProjectId); + } + + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + @Import(name="owningProjectIdentifier") + private @Nullable Output owningProjectIdentifier; + + /** + * @return Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + */ + public Optional> owningProjectIdentifier() { + return Optional.ofNullable(this.owningProjectIdentifier); + } + + /** + * Revision of the Form Type. + * + */ + @Import(name="revision") + private @Nullable Output revision; + + /** + * @return Revision of the Form Type. + * + */ + public Optional> revision() { + return Optional.ofNullable(this.revision); + } + + @Import(name="status") + private @Nullable Output status; + + public Optional> status() { + return Optional.ofNullable(this.status); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private FormTypeState() {} + + private FormTypeState(FormTypeState $) { + this.createdAt = $.createdAt; + this.createdBy = $.createdBy; + this.description = $.description; + this.domainIdentifier = $.domainIdentifier; + this.imports = $.imports; + this.model = $.model; + this.name = $.name; + this.originDomainId = $.originDomainId; + this.originProjectId = $.originProjectId; + this.owningProjectIdentifier = $.owningProjectIdentifier; + this.revision = $.revision; + this.status = $.status; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FormTypeState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FormTypeState $; + + public Builder() { + $ = new FormTypeState(); + } + + public Builder(FormTypeState defaults) { + $ = new FormTypeState(Objects.requireNonNull(defaults)); + } + + /** + * @param createdAt Creation time of the Form Type. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Creation time of the Form Type. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param createdBy Creator of the Form Type. + * + * @return builder + * + */ + public Builder createdBy(@Nullable Output createdBy) { + $.createdBy = createdBy; + return this; + } + + /** + * @param createdBy Creator of the Form Type. + * + * @return builder + * + */ + public Builder createdBy(String createdBy) { + return createdBy(Output.of(createdBy)); + } + + /** + * @param description Description of form type. Must have a length of between 1 and 2048 characters. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of form type. Must have a length of between 1 and 2048 characters. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param domainIdentifier Identifier of the domain. + * + * @return builder + * + */ + public Builder domainIdentifier(@Nullable Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of the domain. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + public Builder imports(@Nullable Output> imports) { + $.imports = imports; + return this; + } + + public Builder imports(List imports) { + return imports(Output.of(imports)); + } + + public Builder imports(FormTypeImportArgs... imports) { + return imports(List.of(imports)); + } + + /** + * @param model Object of the model of the form type that contains the following attributes. + * + * @return builder + * + */ + public Builder model(@Nullable Output model) { + $.model = model; + return this; + } + + /** + * @param model Object of the model of the form type that contains the following attributes. + * + * @return builder + * + */ + public Builder model(FormTypeModelArgs model) { + return model(Output.of(model)); + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the form type. Must be the name of the structure in smithy document. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param originDomainId Origin domain id of the Form Type. + * + * @return builder + * + */ + public Builder originDomainId(@Nullable Output originDomainId) { + $.originDomainId = originDomainId; + return this; + } + + /** + * @param originDomainId Origin domain id of the Form Type. + * + * @return builder + * + */ + public Builder originDomainId(String originDomainId) { + return originDomainId(Output.of(originDomainId)); + } + + /** + * @param originProjectId Origin project id of the Form Type. + * + * @return builder + * + */ + public Builder originProjectId(@Nullable Output originProjectId) { + $.originProjectId = originProjectId; + return this; + } + + /** + * @param originProjectId Origin project id of the Form Type. + * + * @return builder + * + */ + public Builder originProjectId(String originProjectId) { + return originProjectId(Output.of(originProjectId)); + } + + /** + * @param owningProjectIdentifier Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + * @return builder + * + */ + public Builder owningProjectIdentifier(@Nullable Output owningProjectIdentifier) { + $.owningProjectIdentifier = owningProjectIdentifier; + return this; + } + + /** + * @param owningProjectIdentifier Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + * + * @return builder + * + */ + public Builder owningProjectIdentifier(String owningProjectIdentifier) { + return owningProjectIdentifier(Output.of(owningProjectIdentifier)); + } + + /** + * @param revision Revision of the Form Type. + * + * @return builder + * + */ + public Builder revision(@Nullable Output revision) { + $.revision = revision; + return this; + } + + /** + * @param revision Revision of the Form Type. + * + * @return builder + * + */ + public Builder revision(String revision) { + return revision(Output.of(revision)); + } + + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + public Builder status(String status) { + return status(Output.of(status)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(FormTypeTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public FormTypeState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeTimeoutsArgs.java new file mode 100644 index 00000000000..353e604b8d2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/FormTypeTimeoutsArgs.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.aws.datazone.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 FormTypeTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final FormTypeTimeoutsArgs Empty = new FormTypeTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + private FormTypeTimeoutsArgs() {} + + private FormTypeTimeoutsArgs(FormTypeTimeoutsArgs $) { + this.create = $.create; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(FormTypeTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private FormTypeTimeoutsArgs $; + + public Builder() { + $ = new FormTypeTimeoutsArgs(); + } + + public Builder(FormTypeTimeoutsArgs defaults) { + $ = new FormTypeTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + public FormTypeTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermState.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermState.java new file mode 100644 index 00000000000..a0c5931de56 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermState.java @@ -0,0 +1,406 @@ +// *** 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.aws.datazone.inputs; + +import com.pulumi.aws.datazone.inputs.GlossaryTermTermRelationsArgs; +import com.pulumi.aws.datazone.inputs.GlossaryTermTimeoutsArgs; +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 GlossaryTermState extends com.pulumi.resources.ResourceArgs { + + public static final GlossaryTermState Empty = new GlossaryTermState(); + + /** + * Time of glossary term creation. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Time of glossary term creation. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * Creator of glossary term. + * + */ + @Import(name="createdBy") + private @Nullable Output createdBy; + + /** + * @return Creator of glossary term. + * + */ + public Optional> createdBy() { + return Optional.ofNullable(this.createdBy); + } + + /** + * Identifier of domain. + * + */ + @Import(name="domainIdentifier") + private @Nullable Output domainIdentifier; + + /** + * @return Identifier of domain. + * + */ + public Optional> domainIdentifier() { + return Optional.ofNullable(this.domainIdentifier); + } + + /** + * Identifier of glossary. + * + */ + @Import(name="glossaryIdentifier") + private @Nullable Output glossaryIdentifier; + + /** + * @return Identifier of glossary. + * + */ + public Optional> glossaryIdentifier() { + return Optional.ofNullable(this.glossaryIdentifier); + } + + /** + * Long description of entry. + * + */ + @Import(name="longDescription") + private @Nullable Output longDescription; + + /** + * @return Long description of entry. + * + */ + public Optional> longDescription() { + return Optional.ofNullable(this.longDescription); + } + + /** + * Name of glossary term. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of glossary term. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Short description of entry. + * + */ + @Import(name="shortDescription") + private @Nullable Output shortDescription; + + /** + * @return Short description of entry. + * + */ + public Optional> shortDescription() { + return Optional.ofNullable(this.shortDescription); + } + + /** + * If glossary term is ENABLED or DISABLED. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return If glossary term is ENABLED or DISABLED. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Object classifying the term relations through the following attributes: + * + */ + @Import(name="termRelations") + private @Nullable Output termRelations; + + /** + * @return Object classifying the term relations through the following attributes: + * + */ + public Optional> termRelations() { + return Optional.ofNullable(this.termRelations); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private GlossaryTermState() {} + + private GlossaryTermState(GlossaryTermState $) { + this.createdAt = $.createdAt; + this.createdBy = $.createdBy; + this.domainIdentifier = $.domainIdentifier; + this.glossaryIdentifier = $.glossaryIdentifier; + this.longDescription = $.longDescription; + this.name = $.name; + this.shortDescription = $.shortDescription; + this.status = $.status; + this.termRelations = $.termRelations; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlossaryTermState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlossaryTermState $; + + public Builder() { + $ = new GlossaryTermState(); + } + + public Builder(GlossaryTermState defaults) { + $ = new GlossaryTermState(Objects.requireNonNull(defaults)); + } + + /** + * @param createdAt Time of glossary term creation. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Time of glossary term creation. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param createdBy Creator of glossary term. + * + * @return builder + * + */ + public Builder createdBy(@Nullable Output createdBy) { + $.createdBy = createdBy; + return this; + } + + /** + * @param createdBy Creator of glossary term. + * + * @return builder + * + */ + public Builder createdBy(String createdBy) { + return createdBy(Output.of(createdBy)); + } + + /** + * @param domainIdentifier Identifier of domain. + * + * @return builder + * + */ + public Builder domainIdentifier(@Nullable Output domainIdentifier) { + $.domainIdentifier = domainIdentifier; + return this; + } + + /** + * @param domainIdentifier Identifier of domain. + * + * @return builder + * + */ + public Builder domainIdentifier(String domainIdentifier) { + return domainIdentifier(Output.of(domainIdentifier)); + } + + /** + * @param glossaryIdentifier Identifier of glossary. + * + * @return builder + * + */ + public Builder glossaryIdentifier(@Nullable Output glossaryIdentifier) { + $.glossaryIdentifier = glossaryIdentifier; + return this; + } + + /** + * @param glossaryIdentifier Identifier of glossary. + * + * @return builder + * + */ + public Builder glossaryIdentifier(String glossaryIdentifier) { + return glossaryIdentifier(Output.of(glossaryIdentifier)); + } + + /** + * @param longDescription Long description of entry. + * + * @return builder + * + */ + public Builder longDescription(@Nullable Output longDescription) { + $.longDescription = longDescription; + return this; + } + + /** + * @param longDescription Long description of entry. + * + * @return builder + * + */ + public Builder longDescription(String longDescription) { + return longDescription(Output.of(longDescription)); + } + + /** + * @param name Name of glossary term. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of glossary term. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param shortDescription Short description of entry. + * + * @return builder + * + */ + public Builder shortDescription(@Nullable Output shortDescription) { + $.shortDescription = shortDescription; + return this; + } + + /** + * @param shortDescription Short description of entry. + * + * @return builder + * + */ + public Builder shortDescription(String shortDescription) { + return shortDescription(Output.of(shortDescription)); + } + + /** + * @param status If glossary term is ENABLED or DISABLED. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status If glossary term is ENABLED or DISABLED. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param termRelations Object classifying the term relations through the following attributes: + * + * @return builder + * + */ + public Builder termRelations(@Nullable Output termRelations) { + $.termRelations = termRelations; + return this; + } + + /** + * @param termRelations Object classifying the term relations through the following attributes: + * + * @return builder + * + */ + public Builder termRelations(GlossaryTermTermRelationsArgs termRelations) { + return termRelations(Output.of(termRelations)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(GlossaryTermTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public GlossaryTermState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTermRelationsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTermRelationsArgs.java new file mode 100644 index 00000000000..3782a4df249 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTermRelationsArgs.java @@ -0,0 +1,115 @@ +// *** 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.aws.datazone.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GlossaryTermTermRelationsArgs extends com.pulumi.resources.ResourceArgs { + + public static final GlossaryTermTermRelationsArgs Empty = new GlossaryTermTermRelationsArgs(); + + /** + * String array that calssifies the term relations. + * + */ + @Import(name="classifies") + private @Nullable Output> classifies; + + /** + * @return String array that calssifies the term relations. + * + */ + public Optional>> classifies() { + return Optional.ofNullable(this.classifies); + } + + @Import(name="isAs") + private @Nullable Output> isAs; + + public Optional>> isAs() { + return Optional.ofNullable(this.isAs); + } + + private GlossaryTermTermRelationsArgs() {} + + private GlossaryTermTermRelationsArgs(GlossaryTermTermRelationsArgs $) { + this.classifies = $.classifies; + this.isAs = $.isAs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlossaryTermTermRelationsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlossaryTermTermRelationsArgs $; + + public Builder() { + $ = new GlossaryTermTermRelationsArgs(); + } + + public Builder(GlossaryTermTermRelationsArgs defaults) { + $ = new GlossaryTermTermRelationsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param classifies String array that calssifies the term relations. + * + * @return builder + * + */ + public Builder classifies(@Nullable Output> classifies) { + $.classifies = classifies; + return this; + } + + /** + * @param classifies String array that calssifies the term relations. + * + * @return builder + * + */ + public Builder classifies(List classifies) { + return classifies(Output.of(classifies)); + } + + /** + * @param classifies String array that calssifies the term relations. + * + * @return builder + * + */ + public Builder classifies(String... classifies) { + return classifies(List.of(classifies)); + } + + public Builder isAs(@Nullable Output> isAs) { + $.isAs = isAs; + return this; + } + + public Builder isAs(List isAs) { + return isAs(Output.of(isAs)); + } + + public Builder isAs(String... isAs) { + return isAs(List.of(isAs)); + } + + public GlossaryTermTermRelationsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTimeoutsArgs.java new file mode 100644 index 00000000000..fd130bbaffe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/inputs/GlossaryTermTimeoutsArgs.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.aws.datazone.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 GlossaryTermTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final GlossaryTermTimeoutsArgs Empty = new GlossaryTermTimeoutsArgs(); + + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + private GlossaryTermTimeoutsArgs() {} + + private GlossaryTermTimeoutsArgs(GlossaryTermTimeoutsArgs $) { + this.create = $.create; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GlossaryTermTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GlossaryTermTimeoutsArgs $; + + public Builder() { + $ = new GlossaryTermTimeoutsArgs(); + } + + public Builder(GlossaryTermTimeoutsArgs defaults) { + $ = new GlossaryTermTimeoutsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + * @return builder + * + */ + public Builder create(String create) { + return create(Output.of(create)); + } + + public GlossaryTermTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/EnvironmentProfileUserParameter.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/EnvironmentProfileUserParameter.java new file mode 100644 index 00000000000..c781d14e8b3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/EnvironmentProfileUserParameter.java @@ -0,0 +1,78 @@ +// *** 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.aws.datazone.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 EnvironmentProfileUserParameter { + /** + * @return Name of the environment profile parameter. + * + */ + private @Nullable String name; + /** + * @return Value of the environment profile parameter. + * + */ + private @Nullable String value; + + private EnvironmentProfileUserParameter() {} + /** + * @return Name of the environment profile parameter. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return Value of the environment profile parameter. + * + */ + public Optional value() { + return Optional.ofNullable(this.value); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EnvironmentProfileUserParameter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String name; + private @Nullable String value; + public Builder() {} + public Builder(EnvironmentProfileUserParameter defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder value(@Nullable String value) { + + this.value = value; + return this; + } + public EnvironmentProfileUserParameter build() { + final var _resultValue = new EnvironmentProfileUserParameter(); + _resultValue.name = name; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeImport.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeImport.java new file mode 100644 index 00000000000..5f98e53fdfc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeImport.java @@ -0,0 +1,81 @@ +// *** 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.aws.datazone.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class FormTypeImport { + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + private String name; + /** + * @return Revision of the Form Type. + * + */ + private String revision; + + private FormTypeImport() {} + /** + * @return Name of the form type. Must be the name of the structure in smithy document. + * + */ + public String name() { + return this.name; + } + /** + * @return Revision of the Form Type. + * + */ + public String revision() { + return this.revision; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FormTypeImport defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String name; + private String revision; + public Builder() {} + public Builder(FormTypeImport defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.revision = defaults.revision; + } + + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("FormTypeImport", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder revision(String revision) { + if (revision == null) { + throw new MissingRequiredPropertyException("FormTypeImport", "revision"); + } + this.revision = revision; + return this; + } + public FormTypeImport build() { + final var _resultValue = new FormTypeImport(); + _resultValue.name = name; + _resultValue.revision = revision; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeModel.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeModel.java new file mode 100644 index 00000000000..2d891ea740e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeModel.java @@ -0,0 +1,62 @@ +// *** 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.aws.datazone.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class FormTypeModel { + /** + * @return Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + */ + private String smithy; + + private FormTypeModel() {} + /** + * @return Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + * + */ + public String smithy() { + return this.smithy; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FormTypeModel defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String smithy; + public Builder() {} + public Builder(FormTypeModel defaults) { + Objects.requireNonNull(defaults); + this.smithy = defaults.smithy; + } + + @CustomType.Setter + public Builder smithy(String smithy) { + if (smithy == null) { + throw new MissingRequiredPropertyException("FormTypeModel", "smithy"); + } + this.smithy = smithy; + return this; + } + public FormTypeModel build() { + final var _resultValue = new FormTypeModel(); + _resultValue.smithy = smithy; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeTimeouts.java new file mode 100644 index 00000000000..018730d9529 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/FormTypeTimeouts.java @@ -0,0 +1,57 @@ +// *** 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.aws.datazone.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 FormTypeTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + + private FormTypeTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FormTypeTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + public Builder() {} + public Builder(FormTypeTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + public FormTypeTimeouts build() { + final var _resultValue = new FormTypeTimeouts(); + _resultValue.create = create; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTermRelations.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTermRelations.java new file mode 100644 index 00000000000..a4d4632fa11 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTermRelations.java @@ -0,0 +1,76 @@ +// *** 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.aws.datazone.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class GlossaryTermTermRelations { + /** + * @return String array that calssifies the term relations. + * + */ + private @Nullable List classifies; + private @Nullable List isAs; + + private GlossaryTermTermRelations() {} + /** + * @return String array that calssifies the term relations. + * + */ + public List classifies() { + return this.classifies == null ? List.of() : this.classifies; + } + public List isAs() { + return this.isAs == null ? List.of() : this.isAs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GlossaryTermTermRelations defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List classifies; + private @Nullable List isAs; + public Builder() {} + public Builder(GlossaryTermTermRelations defaults) { + Objects.requireNonNull(defaults); + this.classifies = defaults.classifies; + this.isAs = defaults.isAs; + } + + @CustomType.Setter + public Builder classifies(@Nullable List classifies) { + + this.classifies = classifies; + return this; + } + public Builder classifies(String... classifies) { + return classifies(List.of(classifies)); + } + @CustomType.Setter + public Builder isAs(@Nullable List isAs) { + + this.isAs = isAs; + return this; + } + public Builder isAs(String... isAs) { + return isAs(List.of(isAs)); + } + public GlossaryTermTermRelations build() { + final var _resultValue = new GlossaryTermTermRelations(); + _resultValue.classifies = classifies; + _resultValue.isAs = isAs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTimeouts.java new file mode 100644 index 00000000000..ddc4d85ccc2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/datazone/outputs/GlossaryTermTimeouts.java @@ -0,0 +1,57 @@ +// *** 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.aws.datazone.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 GlossaryTermTimeouts { + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + private @Nullable String create; + + private GlossaryTermTimeouts() {} + /** + * @return A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + * + */ + public Optional create() { + return Optional.ofNullable(this.create); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GlossaryTermTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + public Builder() {} + public Builder(GlossaryTermTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + } + + @CustomType.Setter + public Builder create(@Nullable String create) { + + this.create = create; + return this; + } + public GlossaryTermTimeouts build() { + final var _resultValue = new GlossaryTermTimeouts(); + _resultValue.create = create; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java b/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java index 2a16dec36de..34c5f45f636 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/Listener.java @@ -107,6 +107,7 @@ * .loadBalancerArn(frontEndAwsLb.arn()) * .port("443") * .protocol("TLS") + * .sslPolicy("ELBSecurityPolicy-2016-08") * .certificateArn("arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4") * .alpnPolicy("HTTP2Preferred") * .defaultActions(ListenerDefaultActionArgs.builder() @@ -596,14 +597,14 @@ public Output protocol() { return this.protocol; } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Export(name="sslPolicy", refs={String.class}, tree="[0]") private Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Output sslPolicy() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java index b9823e72593..e0fb36828b1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/ListenerArgs.java @@ -131,14 +131,14 @@ public Optional> protocol() { } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Import(name="sslPolicy") private @Nullable Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Optional> sslPolicy() { @@ -358,7 +358,7 @@ public Builder protocol(String protocol) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * @@ -369,7 +369,7 @@ public Builder sslPolicy(@Nullable Output sslPolicy) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java index 2b5b6b707fa..34be2a9cc0a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lb/inputs/ListenerState.java @@ -145,14 +145,14 @@ public Optional> protocol() { } /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ @Import(name="sslPolicy") private @Nullable Output sslPolicy; /** - * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @return Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * */ public Optional> sslPolicy() { @@ -418,7 +418,7 @@ public Builder protocol(String protocol) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * @@ -429,7 +429,7 @@ public Builder sslPolicy(@Nullable Output sslPolicy) { } /** - * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * @param sslPolicy Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesArgs.java index fffcba36c24..6c46e7712bb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesArgs.java @@ -3,11 +3,10 @@ package com.pulumi.aws.lex.inputs; -import com.pulumi.aws.lex.inputs.V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs; +import com.pulumi.aws.lex.inputs.V2modelsSlotTypeSlotTypeValuesSampleValueArgs; import com.pulumi.aws.lex.inputs.V2modelsSlotTypeSlotTypeValuesSynonymArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -19,18 +18,18 @@ public final class V2modelsSlotTypeSlotTypeValuesArgs extends com.pulumi.resourc public static final V2modelsSlotTypeSlotTypeValuesArgs Empty = new V2modelsSlotTypeSlotTypeValuesArgs(); /** - * List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * Value of the slot type entry. See `sample_value` argument reference below. * */ - @Import(name="slotTypeValues", required=true) - private Output> slotTypeValues; + @Import(name="sampleValues") + private @Nullable Output> sampleValues; /** - * @return List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @return Value of the slot type entry. See `sample_value` argument reference below. * */ - public Output> slotTypeValues() { - return this.slotTypeValues; + public Optional>> sampleValues() { + return Optional.ofNullable(this.sampleValues); } /** @@ -51,7 +50,7 @@ public Optional>> synonym private V2modelsSlotTypeSlotTypeValuesArgs() {} private V2modelsSlotTypeSlotTypeValuesArgs(V2modelsSlotTypeSlotTypeValuesArgs $) { - this.slotTypeValues = $.slotTypeValues; + this.sampleValues = $.sampleValues; this.synonyms = $.synonyms; } @@ -74,34 +73,34 @@ public Builder(V2modelsSlotTypeSlotTypeValuesArgs defaults) { } /** - * @param slotTypeValues List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @param sampleValues Value of the slot type entry. See `sample_value` argument reference below. * * @return builder * */ - public Builder slotTypeValues(Output> slotTypeValues) { - $.slotTypeValues = slotTypeValues; + public Builder sampleValues(@Nullable Output> sampleValues) { + $.sampleValues = sampleValues; return this; } /** - * @param slotTypeValues List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @param sampleValues Value of the slot type entry. See `sample_value` argument reference below. * * @return builder * */ - public Builder slotTypeValues(List slotTypeValues) { - return slotTypeValues(Output.of(slotTypeValues)); + public Builder sampleValues(List sampleValues) { + return sampleValues(Output.of(sampleValues)); } /** - * @param slotTypeValues List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @param sampleValues Value of the slot type entry. See `sample_value` argument reference below. * * @return builder * */ - public Builder slotTypeValues(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs... slotTypeValues) { - return slotTypeValues(List.of(slotTypeValues)); + public Builder sampleValues(V2modelsSlotTypeSlotTypeValuesSampleValueArgs... sampleValues) { + return sampleValues(List.of(sampleValues)); } /** @@ -136,9 +135,6 @@ public Builder synonyms(V2modelsSlotTypeSlotTypeValuesSynonymArgs... synonyms) { } public V2modelsSlotTypeSlotTypeValuesArgs build() { - if ($.slotTypeValues == null) { - throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValuesArgs", "slotTypeValues"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.java similarity index 64% rename from sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.java rename to sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.java index 71b688dcda6..d3b3792e893 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/inputs/V2modelsSlotTypeSlotTypeValuesSampleValueArgs.java @@ -10,9 +10,9 @@ import java.util.Objects; -public final class V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs extends com.pulumi.resources.ResourceArgs { +public final class V2modelsSlotTypeSlotTypeValuesSampleValueArgs extends com.pulumi.resources.ResourceArgs { - public static final V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs Empty = new V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs(); + public static final V2modelsSlotTypeSlotTypeValuesSampleValueArgs Empty = new V2modelsSlotTypeSlotTypeValuesSampleValueArgs(); /** * Value that can be used for a slot type. @@ -29,28 +29,28 @@ public Output value() { return this.value; } - private V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs() {} + private V2modelsSlotTypeSlotTypeValuesSampleValueArgs() {} - private V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs $) { + private V2modelsSlotTypeSlotTypeValuesSampleValueArgs(V2modelsSlotTypeSlotTypeValuesSampleValueArgs $) { this.value = $.value; } public static Builder builder() { return new Builder(); } - public static Builder builder(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs defaults) { + public static Builder builder(V2modelsSlotTypeSlotTypeValuesSampleValueArgs defaults) { return new Builder(defaults); } public static final class Builder { - private V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs $; + private V2modelsSlotTypeSlotTypeValuesSampleValueArgs $; public Builder() { - $ = new V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs(); + $ = new V2modelsSlotTypeSlotTypeValuesSampleValueArgs(); } - public Builder(V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs defaults) { - $ = new V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs(Objects.requireNonNull(defaults)); + public Builder(V2modelsSlotTypeSlotTypeValuesSampleValueArgs defaults) { + $ = new V2modelsSlotTypeSlotTypeValuesSampleValueArgs(Objects.requireNonNull(defaults)); } /** @@ -74,9 +74,9 @@ public Builder value(String value) { return value(Output.of(value)); } - public V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs build() { + public V2modelsSlotTypeSlotTypeValuesSampleValueArgs build() { if ($.value == null) { - throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs", "value"); + throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValuesSampleValueArgs", "value"); } return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValues.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValues.java index 4bb75f96f5a..06da601f1c7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValues.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValues.java @@ -3,10 +3,9 @@ package com.pulumi.aws.lex.outputs; -import com.pulumi.aws.lex.outputs.V2modelsSlotTypeSlotTypeValuesSlotTypeValue; +import com.pulumi.aws.lex.outputs.V2modelsSlotTypeSlotTypeValuesSampleValue; import com.pulumi.aws.lex.outputs.V2modelsSlotTypeSlotTypeValuesSynonym; import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; import java.util.List; import java.util.Objects; import javax.annotation.Nullable; @@ -14,10 +13,10 @@ @CustomType public final class V2modelsSlotTypeSlotTypeValues { /** - * @return List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @return Value of the slot type entry. See `sample_value` argument reference below. * */ - private List slotTypeValues; + private @Nullable List sampleValues; /** * @return Additional values related to the slot type entry. See `sample_value` argument reference below. * @@ -26,11 +25,11 @@ public final class V2modelsSlotTypeSlotTypeValues { private V2modelsSlotTypeSlotTypeValues() {} /** - * @return List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + * @return Value of the slot type entry. See `sample_value` argument reference below. * */ - public List slotTypeValues() { - return this.slotTypeValues; + public List sampleValues() { + return this.sampleValues == null ? List.of() : this.sampleValues; } /** * @return Additional values related to the slot type entry. See `sample_value` argument reference below. @@ -49,25 +48,23 @@ public static Builder builder(V2modelsSlotTypeSlotTypeValues defaults) { } @CustomType.Builder public static final class Builder { - private List slotTypeValues; + private @Nullable List sampleValues; private @Nullable List synonyms; public Builder() {} public Builder(V2modelsSlotTypeSlotTypeValues defaults) { Objects.requireNonNull(defaults); - this.slotTypeValues = defaults.slotTypeValues; + this.sampleValues = defaults.sampleValues; this.synonyms = defaults.synonyms; } @CustomType.Setter - public Builder slotTypeValues(List slotTypeValues) { - if (slotTypeValues == null) { - throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValues", "slotTypeValues"); - } - this.slotTypeValues = slotTypeValues; + public Builder sampleValues(@Nullable List sampleValues) { + + this.sampleValues = sampleValues; return this; } - public Builder slotTypeValues(V2modelsSlotTypeSlotTypeValuesSlotTypeValue... slotTypeValues) { - return slotTypeValues(List.of(slotTypeValues)); + public Builder sampleValues(V2modelsSlotTypeSlotTypeValuesSampleValue... sampleValues) { + return sampleValues(List.of(sampleValues)); } @CustomType.Setter public Builder synonyms(@Nullable List synonyms) { @@ -80,7 +77,7 @@ public Builder synonyms(V2modelsSlotTypeSlotTypeValuesSynonym... synonyms) { } public V2modelsSlotTypeSlotTypeValues build() { final var _resultValue = new V2modelsSlotTypeSlotTypeValues(); - _resultValue.slotTypeValues = slotTypeValues; + _resultValue.sampleValues = sampleValues; _resultValue.synonyms = synonyms; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.java b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.java similarity index 79% rename from sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.java rename to sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.java index 4a4e0ec091f..5461f46d0cb 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSlotTypeValue.java +++ b/sdk/java/src/main/java/com/pulumi/aws/lex/outputs/V2modelsSlotTypeSlotTypeValuesSampleValue.java @@ -9,14 +9,14 @@ import java.util.Objects; @CustomType -public final class V2modelsSlotTypeSlotTypeValuesSlotTypeValue { +public final class V2modelsSlotTypeSlotTypeValuesSampleValue { /** * @return Value that can be used for a slot type. * */ private String value; - private V2modelsSlotTypeSlotTypeValuesSlotTypeValue() {} + private V2modelsSlotTypeSlotTypeValuesSampleValue() {} /** * @return Value that can be used for a slot type. * @@ -29,14 +29,14 @@ public static Builder builder() { return new Builder(); } - public static Builder builder(V2modelsSlotTypeSlotTypeValuesSlotTypeValue defaults) { + public static Builder builder(V2modelsSlotTypeSlotTypeValuesSampleValue defaults) { return new Builder(defaults); } @CustomType.Builder public static final class Builder { private String value; public Builder() {} - public Builder(V2modelsSlotTypeSlotTypeValuesSlotTypeValue defaults) { + public Builder(V2modelsSlotTypeSlotTypeValuesSampleValue defaults) { Objects.requireNonNull(defaults); this.value = defaults.value; } @@ -44,13 +44,13 @@ public Builder(V2modelsSlotTypeSlotTypeValuesSlotTypeValue defaults) { @CustomType.Setter public Builder value(String value) { if (value == null) { - throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValuesSlotTypeValue", "value"); + throw new MissingRequiredPropertyException("V2modelsSlotTypeSlotTypeValuesSampleValue", "value"); } this.value = value; return this; } - public V2modelsSlotTypeSlotTypeValuesSlotTypeValue build() { - final var _resultValue = new V2modelsSlotTypeSlotTypeValuesSlotTypeValue(); + public V2modelsSlotTypeSlotTypeValuesSampleValue build() { + final var _resultValue = new V2modelsSlotTypeSlotTypeValuesSampleValue(); _resultValue.value = value; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/msk/Replicator.java b/sdk/java/src/main/java/com/pulumi/aws/msk/Replicator.java index 8a637add230..efb400e5648 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/msk/Replicator.java +++ b/sdk/java/src/main/java/com/pulumi/aws/msk/Replicator.java @@ -81,6 +81,9 @@ * .targetCompressionType("NONE") * .topicReplications(ReplicatorReplicationInfoListTopicReplicationArgs.builder() * .topicsToReplicates(".*") + * .startingPosition(ReplicatorReplicationInfoListTopicReplicationStartingPositionArgs.builder() + * .type("LATEST") + * .build()) * .build()) * .consumerGroupReplications(ReplicatorReplicationInfoListConsumerGroupReplicationArgs.builder() * .consumerGroupsToReplicates(".*") diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/LoggingConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/LoggingConfiguration.java index a8af32f63d8..9131361e9b7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/LoggingConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/LoggingConfiguration.java @@ -140,7 +140,7 @@ * .logDestinationConfigs(LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs.builder() * .logDestination(Map.of("deliveryStream", exampleAwsKinesisFirehoseDeliveryStream.name())) * .logDestinationType("KinesisDataFirehose") - * .logType("ALERT") + * .logType("TLS") * .build()) * .build()) * .build()); diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/inputs/LoggingConfigurationLoggingConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/inputs/LoggingConfigurationLoggingConfigurationArgs.java index 7b1115c4aff..ed4ae4a37c8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/inputs/LoggingConfigurationLoggingConfigurationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/inputs/LoggingConfigurationLoggingConfigurationArgs.java @@ -16,14 +16,14 @@ public final class LoggingConfigurationLoggingConfigurationArgs extends com.pulu public static final LoggingConfigurationLoggingConfigurationArgs Empty = new LoggingConfigurationLoggingConfigurationArgs(); /** - * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. * */ @Import(name="logDestinationConfigs", required=true) private Output> logDestinationConfigs; /** - * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. * */ public Output> logDestinationConfigs() { @@ -55,7 +55,7 @@ public Builder(LoggingConfigurationLoggingConfigurationArgs defaults) { } /** - * @param logDestinationConfigs Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * @param logDestinationConfigs Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. * * @return builder * @@ -66,7 +66,7 @@ public Builder logDestinationConfigs(Output logDestinationType() { } /** - * The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * */ @Import(name="logType", required=true) private Output logType; /** - * @return The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * @return The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * */ public Output logType() { @@ -141,7 +141,7 @@ public Builder logDestinationType(String logDestinationType) { } /** - * @param logType The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * @param logType The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * * @return builder * @@ -152,7 +152,7 @@ public Builder logType(Output logType) { } /** - * @param logType The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * @param logType The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfiguration.java index 6b62d58eb19..25c232e6179 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfiguration.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfiguration.java @@ -12,14 +12,14 @@ @CustomType public final class LoggingConfigurationLoggingConfiguration { /** - * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. * */ private List logDestinationConfigs; private LoggingConfigurationLoggingConfiguration() {} /** - * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * @return Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. * */ public List logDestinationConfigs() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.java b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.java index 874d9ecbd41..6ca33235250 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/aws/networkfirewall/outputs/LoggingConfigurationLoggingConfigurationLogDestinationConfig.java @@ -25,7 +25,7 @@ public final class LoggingConfigurationLoggingConfigurationLogDestinationConfig */ private String logDestinationType; /** - * @return The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * @return The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * */ private String logType; @@ -49,7 +49,7 @@ public String logDestinationType() { return this.logDestinationType; } /** - * @return The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * @return The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. * */ public String logType() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannel.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannel.java index 92b25529976..0378f602ea7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannel.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannel.java @@ -198,14 +198,14 @@ public Output messagesPerSecond() { return this.messagesPerSecond; } /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ @Export(name="roleArn", refs={String.class}, tree="[0]") private Output roleArn; /** - * @return The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @return *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ public Output> roleArn() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannelArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannelArgs.java index 5cb17ba2efd..10069e2c127 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannelArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailChannelArgs.java @@ -93,14 +93,14 @@ public Output identity() { } /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ @Import(name="roleArn") private @Nullable Output roleArn; /** - * @return The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @return *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ public Optional> roleArn() { @@ -242,7 +242,7 @@ public Builder identity(String identity) { } /** - * @param roleArn The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @param roleArn *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * * @return builder * @@ -253,7 +253,7 @@ public Builder roleArn(@Nullable Output roleArn) { } /** - * @param roleArn The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @param roleArn *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplate.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplate.java new file mode 100644 index 00000000000..d01a00e1eae --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplate.java @@ -0,0 +1,194 @@ +// *** 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.aws.pinpoint; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.pinpoint.EmailTemplateArgs; +import com.pulumi.aws.pinpoint.inputs.EmailTemplateState; +import com.pulumi.aws.pinpoint.outputs.EmailTemplateEmailTemplate; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Provides a Pinpoint Email Template resource + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.aws.pinpoint.EmailTemplate;
+ * import com.pulumi.aws.pinpoint.EmailTemplateArgs;
+ * import com.pulumi.aws.pinpoint.inputs.EmailTemplateEmailTemplateArgs;
+ * 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 test = new EmailTemplate("test", EmailTemplateArgs.builder()
+ *             .templateName("testing")
+ *             .emailTemplates(EmailTemplateEmailTemplateArgs.builder()
+ *                 .subject("testing")
+ *                 .textPart("we are testing template text part")
+ *                 .headers(EmailTemplateEmailTemplateHeaderArgs.builder()
+ *                     .name("testingname")
+ *                     .value("testingvalue")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: + * + * ```sh + * $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name + * ``` + * + */ +@ResourceType(type="aws:pinpoint/emailTemplate:EmailTemplate") +public class EmailTemplate extends com.pulumi.resources.CustomResource { + /** + * Amazon Resource Name (ARN) of the message template. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return Amazon Resource Name (ARN) of the message template. + * + */ + public Output arn() { + return this.arn; + } + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + @Export(name="emailTemplates", refs={List.class,EmailTemplateEmailTemplate.class}, tree="[0,1]") + private Output> emailTemplates; + + /** + * @return Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + public Output>> emailTemplates() { + return Codegen.optional(this.emailTemplates); + } + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Export(name="tagsAll", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tagsAll; + + public Output> tagsAll() { + return this.tagsAll; + } + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + @Export(name="templateName", refs={String.class}, tree="[0]") + private Output templateName; + + /** + * @return name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + public Output templateName() { + return this.templateName; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public EmailTemplate(java.lang.String name) { + this(name, EmailTemplateArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public EmailTemplate(java.lang.String name, EmailTemplateArgs 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 EmailTemplate(java.lang.String name, EmailTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:pinpoint/emailTemplate:EmailTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private EmailTemplate(java.lang.String name, Output id, @Nullable EmailTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:pinpoint/emailTemplate:EmailTemplate", name, state, makeResourceOptions(options, id), false); + } + + private static EmailTemplateArgs makeArgs(EmailTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EmailTemplateArgs.Empty : args; + } + + 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 EmailTemplate get(java.lang.String name, Output id, @Nullable EmailTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new EmailTemplate(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplateArgs.java new file mode 100644 index 00000000000..6a6b348e5e1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/EmailTemplateArgs.java @@ -0,0 +1,154 @@ +// *** 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.aws.pinpoint; + +import com.pulumi.aws.pinpoint.inputs.EmailTemplateEmailTemplateArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EmailTemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final EmailTemplateArgs Empty = new EmailTemplateArgs(); + + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + @Import(name="emailTemplates") + private @Nullable Output> emailTemplates; + + /** + * @return Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + public Optional>> emailTemplates() { + return Optional.ofNullable(this.emailTemplates); + } + + @Import(name="tags") + private @Nullable Output> tags; + + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + @Import(name="templateName", required=true) + private Output templateName; + + /** + * @return name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + public Output templateName() { + return this.templateName; + } + + private EmailTemplateArgs() {} + + private EmailTemplateArgs(EmailTemplateArgs $) { + this.emailTemplates = $.emailTemplates; + this.tags = $.tags; + this.templateName = $.templateName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EmailTemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EmailTemplateArgs $; + + public Builder() { + $ = new EmailTemplateArgs(); + } + + public Builder(EmailTemplateArgs defaults) { + $ = new EmailTemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(@Nullable Output> emailTemplates) { + $.emailTemplates = emailTemplates; + return this; + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(List emailTemplates) { + return emailTemplates(Output.of(emailTemplates)); + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(EmailTemplateEmailTemplateArgs... emailTemplates) { + return emailTemplates(List.of(emailTemplates)); + } + + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param templateName name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + * @return builder + * + */ + public Builder templateName(Output templateName) { + $.templateName = templateName; + return this; + } + + /** + * @param templateName name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + * @return builder + * + */ + public Builder templateName(String templateName) { + return templateName(Output.of(templateName)); + } + + public EmailTemplateArgs build() { + if ($.templateName == null) { + throw new MissingRequiredPropertyException("EmailTemplateArgs", "templateName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailChannelState.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailChannelState.java index 5ecdea6e87a..9a3ff2aee9a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailChannelState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailChannelState.java @@ -108,14 +108,14 @@ public Optional> messagesPerSecond() { } /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ @Import(name="roleArn") private @Nullable Output roleArn; /** - * @return The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @return *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * */ public Optional> roleArn() { @@ -279,7 +279,7 @@ public Builder messagesPerSecond(Integer messagesPerSecond) { } /** - * @param roleArn The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @param roleArn *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * * @return builder * @@ -290,7 +290,7 @@ public Builder roleArn(@Nullable Output roleArn) { } /** - * @param roleArn The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * @param roleArn *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateArgs.java new file mode 100644 index 00000000000..0a8dfdddddd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateArgs.java @@ -0,0 +1,271 @@ +// *** 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.aws.pinpoint.inputs; + +import com.pulumi.aws.pinpoint.inputs.EmailTemplateEmailTemplateHeaderArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EmailTemplateEmailTemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final EmailTemplateEmailTemplateArgs Empty = new EmailTemplateEmailTemplateArgs(); + + /** + * JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + */ + @Import(name="defaultSubstitutions") + private @Nullable Output defaultSubstitutions; + + /** + * @return JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + */ + public Optional> defaultSubstitutions() { + return Optional.ofNullable(this.defaultSubstitutions); + } + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + @Import(name="headers") + private @Nullable Output> headers; + + public Optional>> headers() { + return Optional.ofNullable(this.headers); + } + + /** + * The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + */ + @Import(name="htmlPart") + private @Nullable Output htmlPart; + + /** + * @return The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + */ + public Optional> htmlPart() { + return Optional.ofNullable(this.htmlPart); + } + + /** + * The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + */ + @Import(name="recommenderId") + private @Nullable Output recommenderId; + + /** + * @return The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + */ + public Optional> recommenderId() { + return Optional.ofNullable(this.recommenderId); + } + + /** + * Subject line, or title, to use in email messages that are based on the message template. + * + */ + @Import(name="subject") + private @Nullable Output subject; + + /** + * @return Subject line, or title, to use in email messages that are based on the message template. + * + */ + public Optional> subject() { + return Optional.ofNullable(this.subject); + } + + /** + * Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + */ + @Import(name="textPart") + private @Nullable Output textPart; + + /** + * @return Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + */ + public Optional> textPart() { + return Optional.ofNullable(this.textPart); + } + + private EmailTemplateEmailTemplateArgs() {} + + private EmailTemplateEmailTemplateArgs(EmailTemplateEmailTemplateArgs $) { + this.defaultSubstitutions = $.defaultSubstitutions; + this.description = $.description; + this.headers = $.headers; + this.htmlPart = $.htmlPart; + this.recommenderId = $.recommenderId; + this.subject = $.subject; + this.textPart = $.textPart; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EmailTemplateEmailTemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EmailTemplateEmailTemplateArgs $; + + public Builder() { + $ = new EmailTemplateEmailTemplateArgs(); + } + + public Builder(EmailTemplateEmailTemplateArgs defaults) { + $ = new EmailTemplateEmailTemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param defaultSubstitutions JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + * @return builder + * + */ + public Builder defaultSubstitutions(@Nullable Output defaultSubstitutions) { + $.defaultSubstitutions = defaultSubstitutions; + return this; + } + + /** + * @param defaultSubstitutions JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + * @return builder + * + */ + public Builder defaultSubstitutions(String defaultSubstitutions) { + return defaultSubstitutions(Output.of(defaultSubstitutions)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + public Builder headers(@Nullable Output> headers) { + $.headers = headers; + return this; + } + + public Builder headers(List headers) { + return headers(Output.of(headers)); + } + + public Builder headers(EmailTemplateEmailTemplateHeaderArgs... headers) { + return headers(List.of(headers)); + } + + /** + * @param htmlPart The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + * @return builder + * + */ + public Builder htmlPart(@Nullable Output htmlPart) { + $.htmlPart = htmlPart; + return this; + } + + /** + * @param htmlPart The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + * @return builder + * + */ + public Builder htmlPart(String htmlPart) { + return htmlPart(Output.of(htmlPart)); + } + + /** + * @param recommenderId The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + * @return builder + * + */ + public Builder recommenderId(@Nullable Output recommenderId) { + $.recommenderId = recommenderId; + return this; + } + + /** + * @param recommenderId The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + * @return builder + * + */ + public Builder recommenderId(String recommenderId) { + return recommenderId(Output.of(recommenderId)); + } + + /** + * @param subject Subject line, or title, to use in email messages that are based on the message template. + * + * @return builder + * + */ + public Builder subject(@Nullable Output subject) { + $.subject = subject; + return this; + } + + /** + * @param subject Subject line, or title, to use in email messages that are based on the message template. + * + * @return builder + * + */ + public Builder subject(String subject) { + return subject(Output.of(subject)); + } + + /** + * @param textPart Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + * @return builder + * + */ + public Builder textPart(@Nullable Output textPart) { + $.textPart = textPart; + return this; + } + + /** + * @param textPart Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + * @return builder + * + */ + public Builder textPart(String textPart) { + return textPart(Output.of(textPart)); + } + + public EmailTemplateEmailTemplateArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateHeaderArgs.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateHeaderArgs.java new file mode 100644 index 00000000000..bfd8743334b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateEmailTemplateHeaderArgs.java @@ -0,0 +1,120 @@ +// *** 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.aws.pinpoint.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 EmailTemplateEmailTemplateHeaderArgs extends com.pulumi.resources.ResourceArgs { + + public static final EmailTemplateEmailTemplateHeaderArgs Empty = new EmailTemplateEmailTemplateHeaderArgs(); + + /** + * Name of the message header. The header name can contain up to 126 characters. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the message header. The header name can contain up to 126 characters. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private EmailTemplateEmailTemplateHeaderArgs() {} + + private EmailTemplateEmailTemplateHeaderArgs(EmailTemplateEmailTemplateHeaderArgs $) { + this.name = $.name; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EmailTemplateEmailTemplateHeaderArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EmailTemplateEmailTemplateHeaderArgs $; + + public Builder() { + $ = new EmailTemplateEmailTemplateHeaderArgs(); + } + + public Builder(EmailTemplateEmailTemplateHeaderArgs defaults) { + $ = new EmailTemplateEmailTemplateHeaderArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name Name of the message header. The header name can contain up to 126 characters. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the message header. The header name can contain up to 126 characters. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param value Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public EmailTemplateEmailTemplateHeaderArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateState.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateState.java new file mode 100644 index 00000000000..8acaefc8c03 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/inputs/EmailTemplateState.java @@ -0,0 +1,232 @@ +// *** 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.aws.pinpoint.inputs; + +import com.pulumi.aws.pinpoint.inputs.EmailTemplateEmailTemplateArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EmailTemplateState extends com.pulumi.resources.ResourceArgs { + + public static final EmailTemplateState Empty = new EmailTemplateState(); + + /** + * Amazon Resource Name (ARN) of the message template. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return Amazon Resource Name (ARN) of the message template. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + @Import(name="emailTemplates") + private @Nullable Output> emailTemplates; + + /** + * @return Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + */ + public Optional>> emailTemplates() { + return Optional.ofNullable(this.emailTemplates); + } + + @Import(name="tags") + private @Nullable Output> tags; + + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Optional>> tagsAll() { + return Optional.ofNullable(this.tagsAll); + } + + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + @Import(name="templateName") + private @Nullable Output templateName; + + /** + * @return name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + */ + public Optional> templateName() { + return Optional.ofNullable(this.templateName); + } + + private EmailTemplateState() {} + + private EmailTemplateState(EmailTemplateState $) { + this.arn = $.arn; + this.emailTemplates = $.emailTemplates; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.templateName = $.templateName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EmailTemplateState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EmailTemplateState $; + + public Builder() { + $ = new EmailTemplateState(); + } + + public Builder(EmailTemplateState defaults) { + $ = new EmailTemplateState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn Amazon Resource Name (ARN) of the message template. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn Amazon Resource Name (ARN) of the message template. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(@Nullable Output> emailTemplates) { + $.emailTemplates = emailTemplates; + return this; + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(List emailTemplates) { + return emailTemplates(Output.of(emailTemplates)); + } + + /** + * @param emailTemplates Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + * + * @return builder + * + */ + public Builder emailTemplates(EmailTemplateEmailTemplateArgs... emailTemplates) { + return emailTemplates(List.of(emailTemplates)); + } + + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(Map tagsAll) { + return tagsAll(Output.of(tagsAll)); + } + + /** + * @param templateName name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + * @return builder + * + */ + public Builder templateName(@Nullable Output templateName) { + $.templateName = templateName; + return this; + } + + /** + * @param templateName name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + * + * @return builder + * + */ + public Builder templateName(String templateName) { + return templateName(Output.of(templateName)); + } + + public EmailTemplateState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplate.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplate.java new file mode 100644 index 00000000000..b3ebe92babf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplate.java @@ -0,0 +1,172 @@ +// *** 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.aws.pinpoint.outputs; + +import com.pulumi.aws.pinpoint.outputs.EmailTemplateEmailTemplateHeader; +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class EmailTemplateEmailTemplate { + /** + * @return JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + */ + private @Nullable String defaultSubstitutions; + private @Nullable String description; + private @Nullable List headers; + /** + * @return The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + */ + private @Nullable String htmlPart; + /** + * @return The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + */ + private @Nullable String recommenderId; + /** + * @return Subject line, or title, to use in email messages that are based on the message template. + * + */ + private @Nullable String subject; + /** + * @return Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + */ + private @Nullable String textPart; + + private EmailTemplateEmailTemplate() {} + /** + * @return JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + * + */ + public Optional defaultSubstitutions() { + return Optional.ofNullable(this.defaultSubstitutions); + } + public Optional description() { + return Optional.ofNullable(this.description); + } + public List headers() { + return this.headers == null ? List.of() : this.headers; + } + /** + * @return The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + * + */ + public Optional htmlPart() { + return Optional.ofNullable(this.htmlPart); + } + /** + * @return The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + * + */ + public Optional recommenderId() { + return Optional.ofNullable(this.recommenderId); + } + /** + * @return Subject line, or title, to use in email messages that are based on the message template. + * + */ + public Optional subject() { + return Optional.ofNullable(this.subject); + } + /** + * @return Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + * + */ + public Optional textPart() { + return Optional.ofNullable(this.textPart); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EmailTemplateEmailTemplate defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String defaultSubstitutions; + private @Nullable String description; + private @Nullable List headers; + private @Nullable String htmlPart; + private @Nullable String recommenderId; + private @Nullable String subject; + private @Nullable String textPart; + public Builder() {} + public Builder(EmailTemplateEmailTemplate defaults) { + Objects.requireNonNull(defaults); + this.defaultSubstitutions = defaults.defaultSubstitutions; + this.description = defaults.description; + this.headers = defaults.headers; + this.htmlPart = defaults.htmlPart; + this.recommenderId = defaults.recommenderId; + this.subject = defaults.subject; + this.textPart = defaults.textPart; + } + + @CustomType.Setter + public Builder defaultSubstitutions(@Nullable String defaultSubstitutions) { + + this.defaultSubstitutions = defaultSubstitutions; + return this; + } + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder headers(@Nullable List headers) { + + this.headers = headers; + return this; + } + public Builder headers(EmailTemplateEmailTemplateHeader... headers) { + return headers(List.of(headers)); + } + @CustomType.Setter + public Builder htmlPart(@Nullable String htmlPart) { + + this.htmlPart = htmlPart; + return this; + } + @CustomType.Setter + public Builder recommenderId(@Nullable String recommenderId) { + + this.recommenderId = recommenderId; + return this; + } + @CustomType.Setter + public Builder subject(@Nullable String subject) { + + this.subject = subject; + return this; + } + @CustomType.Setter + public Builder textPart(@Nullable String textPart) { + + this.textPart = textPart; + return this; + } + public EmailTemplateEmailTemplate build() { + final var _resultValue = new EmailTemplateEmailTemplate(); + _resultValue.defaultSubstitutions = defaultSubstitutions; + _resultValue.description = description; + _resultValue.headers = headers; + _resultValue.htmlPart = htmlPart; + _resultValue.recommenderId = recommenderId; + _resultValue.subject = subject; + _resultValue.textPart = textPart; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplateHeader.java b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplateHeader.java new file mode 100644 index 00000000000..16c9c62547b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/pinpoint/outputs/EmailTemplateEmailTemplateHeader.java @@ -0,0 +1,78 @@ +// *** 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.aws.pinpoint.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 EmailTemplateEmailTemplateHeader { + /** + * @return Name of the message header. The header name can contain up to 126 characters. + * + */ + private @Nullable String name; + /** + * @return Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + */ + private @Nullable String value; + + private EmailTemplateEmailTemplateHeader() {} + /** + * @return Name of the message header. The header name can contain up to 126 characters. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + * + */ + public Optional value() { + return Optional.ofNullable(this.value); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EmailTemplateEmailTemplateHeader defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String name; + private @Nullable String value; + public Builder() {} + public Builder(EmailTemplateEmailTemplateHeader defaults) { + Objects.requireNonNull(defaults); + this.name = defaults.name; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder value(@Nullable String value) { + + this.value = value; + return this; + } + public EmailTemplateEmailTemplateHeader build() { + final var _resultValue = new EmailTemplateEmailTemplateHeader(); + _resultValue.name = name; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/pipes/Pipe.java b/sdk/java/src/main/java/com/pulumi/aws/pipes/Pipe.java index 01b59470cf8..b0277cfcaa8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/pipes/Pipe.java +++ b/sdk/java/src/main/java/com/pulumi/aws/pipes/Pipe.java @@ -314,6 +314,7 @@ * import com.pulumi.aws.pipes.inputs.PipeSourceParametersArgs; * import com.pulumi.aws.pipes.inputs.PipeSourceParametersSqsQueueParametersArgs; * import com.pulumi.aws.pipes.inputs.PipeTargetParametersArgs; + * import com.pulumi.aws.pipes.inputs.PipeTargetParametersSqsQueueParametersArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -339,7 +340,10 @@ * .build()) * .build()) * .targetParameters(PipeTargetParametersArgs.builder() - * .sqsQueue(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) + * .sqsQueueParameters(PipeTargetParametersSqsQueueParametersArgs.builder() + * .messageDeduplicationId("example-dedupe") + * .messageGroupId("example-group") + * .build()) * .build()) * .build()); * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java index 1deec84ff2a..c93ac1e7b42 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstance.java @@ -229,14 +229,14 @@ public Output dbParameterGroupName() { return this.dbParameterGroupName; } /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ @Export(name="dbSubnetGroupName", refs={String.class}, tree="[0]") private Output dbSubnetGroupName; /** - * @return DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @return Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ public Output dbSubnetGroupName() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java index 34e48d38794..15e9abd6eff 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/ClusterInstanceArgs.java @@ -142,14 +142,14 @@ public Optional> dbParameterGroupName() { } /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ @Import(name="dbSubnetGroupName") private @Nullable Output dbSubnetGroupName; /** - * @return DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @return Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ public Optional> dbSubnetGroupName() { @@ -599,7 +599,7 @@ public Builder dbParameterGroupName(String dbParameterGroupName) { } /** - * @param dbSubnetGroupName DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @param dbSubnetGroupName Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * * @return builder * @@ -610,7 +610,7 @@ public Builder dbSubnetGroupName(@Nullable Output dbSubnetGroupName) { } /** - * @param dbSubnetGroupName DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @param dbSubnetGroupName Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java index 250b342e2da..42986cad95f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/inputs/ClusterInstanceState.java @@ -156,14 +156,14 @@ public Optional> dbParameterGroupName() { } /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ @Import(name="dbSubnetGroupName") private @Nullable Output dbSubnetGroupName; /** - * @return DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @return Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * */ public Optional> dbSubnetGroupName() { @@ -787,7 +787,7 @@ public Builder dbParameterGroupName(String dbParameterGroupName) { } /** - * @param dbSubnetGroupName DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @param dbSubnetGroupName Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * * @return builder * @@ -798,7 +798,7 @@ public Builder dbSubnetGroupName(@Nullable Output dbSubnetGroupName) { } /** - * @param dbSubnetGroupName DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. + * @param dbSubnetGroupName Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `aws.rds.Cluster`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/App.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/App.java index cab98ba6d32..78d8217e6af 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/App.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/App.java @@ -85,14 +85,14 @@ public Output appName() { return this.appName; } /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ @Export(name="appType", refs={String.class}, tree="[0]") private Output appType; /** - * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ public Output appType() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/AppArgs.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/AppArgs.java index 0d3d5213287..17a34bb2252 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/AppArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/AppArgs.java @@ -34,14 +34,14 @@ public Output appName() { } /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ @Import(name="appType", required=true) private Output appType; /** - * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ public Output appType() { @@ -175,7 +175,7 @@ public Builder appName(String appName) { } /** - * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * * @return builder * @@ -186,7 +186,7 @@ public Builder appType(Output appType) { } /** - * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/AppState.java b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/AppState.java index 5655ad5a6ac..8c58b3db234 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/AppState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/sagemaker/inputs/AppState.java @@ -33,14 +33,14 @@ public Optional> appName() { } /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ @Import(name="appType") private @Nullable Output appType; /** - * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @return The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * */ public Optional> appType() { @@ -214,7 +214,7 @@ public Builder appName(String appName) { } /** - * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * * @return builder * @@ -225,7 +225,7 @@ public Builder appType(@Nullable Output appType) { } /** - * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * @param appType The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/securitylake/inputs/AwsLogSourceSourceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/securitylake/inputs/AwsLogSourceSourceArgs.java index 536e0fb5caf..96fa4dd8d63 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securitylake/inputs/AwsLogSourceSourceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securitylake/inputs/AwsLogSourceSourceArgs.java @@ -50,14 +50,14 @@ public Output> regions() { } /** - * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * */ @Import(name="sourceName", required=true) private Output sourceName; /** - * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * */ public Output sourceName() { @@ -176,7 +176,7 @@ public Builder regions(String... regions) { } /** - * @param sourceName The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * @param sourceName The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * * @return builder * @@ -187,7 +187,7 @@ public Builder sourceName(Output sourceName) { } /** - * @param sourceName The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * @param sourceName The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/securitylake/outputs/AwsLogSourceSource.java b/sdk/java/src/main/java/com/pulumi/aws/securitylake/outputs/AwsLogSourceSource.java index 8122d9fe18d..37ccf3fdc45 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/securitylake/outputs/AwsLogSourceSource.java +++ b/sdk/java/src/main/java/com/pulumi/aws/securitylake/outputs/AwsLogSourceSource.java @@ -25,7 +25,7 @@ public final class AwsLogSourceSource { */ private List regions; /** - * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * */ private String sourceName; @@ -54,7 +54,7 @@ public List regions() { return this.regions; } /** - * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * @return The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. * */ public String sourceName() { diff --git a/sdk/nodejs/alb/listener.ts b/sdk/nodejs/alb/listener.ts index 980d6dce43d..589052bedea 100644 --- a/sdk/nodejs/alb/listener.ts +++ b/sdk/nodejs/alb/listener.ts @@ -45,6 +45,7 @@ import * as utilities from "../utilities"; * loadBalancerArn: frontEndAwsLb.arn, * port: 443, * protocol: "TLS", + * sslPolicy: "ELBSecurityPolicy-2016-08", * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", * alpnPolicy: "HTTP2Preferred", * defaultActions: [{ @@ -286,7 +287,7 @@ export class Listener extends pulumi.CustomResource { */ public readonly protocol!: pulumi.Output; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ public readonly sslPolicy!: pulumi.Output; /** @@ -392,7 +393,7 @@ export interface ListenerState { */ protocol?: pulumi.Input; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ sslPolicy?: pulumi.Input; /** @@ -444,7 +445,7 @@ export interface ListenerArgs { */ protocol?: pulumi.Input; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ sslPolicy?: pulumi.Input; /** diff --git a/sdk/nodejs/bedrock/agentAgentKnowledgeBaseAssociation.ts b/sdk/nodejs/bedrock/agentAgentKnowledgeBaseAssociation.ts index b83046c303f..090ab8cfe98 100644 --- a/sdk/nodejs/bedrock/agentAgentKnowledgeBaseAssociation.ts +++ b/sdk/nodejs/bedrock/agentAgentKnowledgeBaseAssociation.ts @@ -2,6 +2,9 @@ // *** 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 enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -81,6 +84,7 @@ export class AgentAgentKnowledgeBaseAssociation extends pulumi.CustomResource { * The following arguments are optional: */ public readonly knowledgeBaseState!: pulumi.Output; + public readonly timeouts!: pulumi.Output; /** * Create a AgentAgentKnowledgeBaseAssociation resource with the given unique name, arguments, and options. @@ -100,6 +104,7 @@ export class AgentAgentKnowledgeBaseAssociation extends pulumi.CustomResource { resourceInputs["description"] = state ? state.description : undefined; resourceInputs["knowledgeBaseId"] = state ? state.knowledgeBaseId : undefined; resourceInputs["knowledgeBaseState"] = state ? state.knowledgeBaseState : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; } else { const args = argsOrState as AgentAgentKnowledgeBaseAssociationArgs | undefined; if ((!args || args.agentId === undefined) && !opts.urn) { @@ -119,6 +124,7 @@ export class AgentAgentKnowledgeBaseAssociation extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["knowledgeBaseId"] = args ? args.knowledgeBaseId : undefined; resourceInputs["knowledgeBaseState"] = args ? args.knowledgeBaseState : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(AgentAgentKnowledgeBaseAssociation.__pulumiType, name, resourceInputs, opts); @@ -151,6 +157,7 @@ export interface AgentAgentKnowledgeBaseAssociationState { * The following arguments are optional: */ knowledgeBaseState?: pulumi.Input; + timeouts?: pulumi.Input; } /** @@ -179,4 +186,5 @@ export interface AgentAgentKnowledgeBaseAssociationArgs { * The following arguments are optional: */ knowledgeBaseState: pulumi.Input; + timeouts?: pulumi.Input; } diff --git a/sdk/nodejs/bedrock/getAgentAgentVersions.ts b/sdk/nodejs/bedrock/getAgentAgentVersions.ts new file mode 100644 index 00000000000..135af735300 --- /dev/null +++ b/sdk/nodejs/bedrock/getAgentAgentVersions.ts @@ -0,0 +1,95 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.bedrock.getAgentAgentVersions({ + * agentId: testAwsBedrockagentAgent.agentId, + * }); + * ``` + */ +export function getAgentAgentVersions(args: GetAgentAgentVersionsArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:bedrock/getAgentAgentVersions:getAgentAgentVersions", { + "agentId": args.agentId, + "agentVersionSummaries": args.agentVersionSummaries, + }, opts); +} + +/** + * A collection of arguments for invoking getAgentAgentVersions. + */ +export interface GetAgentAgentVersionsArgs { + /** + * Unique identifier of the agent. + */ + agentId: string; + /** + * List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + */ + agentVersionSummaries?: inputs.bedrock.GetAgentAgentVersionsAgentVersionSummary[]; +} + +/** + * A collection of values returned by getAgentAgentVersions. + */ +export interface GetAgentAgentVersionsResult { + readonly agentId: string; + /** + * List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + */ + readonly agentVersionSummaries?: outputs.bedrock.GetAgentAgentVersionsAgentVersionSummary[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; +} +/** + * Data source for managing an AWS Amazon BedrockAgent Agent Versions. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.bedrock.getAgentAgentVersions({ + * agentId: testAwsBedrockagentAgent.agentId, + * }); + * ``` + */ +export function getAgentAgentVersionsOutput(args: GetAgentAgentVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getAgentAgentVersions(a, opts)) +} + +/** + * A collection of arguments for invoking getAgentAgentVersions. + */ +export interface GetAgentAgentVersionsOutputArgs { + /** + * Unique identifier of the agent. + */ + agentId: pulumi.Input; + /** + * List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + */ + agentVersionSummaries?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/bedrock/guardrail.ts b/sdk/nodejs/bedrock/guardrail.ts new file mode 100644 index 00000000000..433378c9d9d --- /dev/null +++ b/sdk/nodejs/bedrock/guardrail.ts @@ -0,0 +1,363 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an Amazon Bedrock Guardrail. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.bedrock.Guardrail("example", { + * name: "example", + * blockedInputMessaging: "example", + * blockedOutputsMessaging: "example", + * description: "example", + * contentPolicyConfig: { + * filtersConfigs: [{ + * inputStrength: "MEDIUM", + * outputStrength: "MEDIUM", + * type: "HATE", + * }], + * }, + * sensitiveInformationPolicyConfig: { + * piiEntitiesConfigs: [{ + * action: "BLOCK", + * type: "NAME", + * }], + * regexesConfigs: [{ + * action: "BLOCK", + * description: "example regex", + * name: "regex_example", + * pattern: "^\\d{3}-\\d{2}-\\d{4}$", + * }], + * }, + * topicPolicyConfig: { + * topicsConfigs: [{ + * name: "investment_topic", + * examples: ["Where should I invest my money ?"], + * type: "DENY", + * definition: "Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .", + * }], + * }, + * wordPolicyConfig: { + * managedWordListsConfigs: [{ + * type: "PROFANITY", + * }], + * wordsConfigs: [{ + * text: "HATE", + * }], + * }, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: + * + * ```sh + * $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT + * ``` + */ +export class Guardrail extends pulumi.CustomResource { + /** + * Get an existing Guardrail 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?: GuardrailState, opts?: pulumi.CustomResourceOptions): Guardrail { + return new Guardrail(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:bedrock/guardrail:Guardrail'; + + /** + * Returns true if the given object is an instance of Guardrail. 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 Guardrail { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Guardrail.__pulumiType; + } + + /** + * Message to return when the guardrail blocks a prompt. + */ + public readonly blockedInputMessaging!: pulumi.Output; + /** + * Message to return when the guardrail blocks a model response. + */ + public readonly blockedOutputsMessaging!: pulumi.Output; + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + */ + public readonly contentPolicyConfig!: pulumi.Output; + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + */ + public readonly contextualGroundingPolicyConfig!: pulumi.Output; + /** + * Unix epoch timestamp in seconds for when the Guardrail was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Description of the guardrail or its version. + */ + public readonly description!: pulumi.Output; + /** + * ARN of the Guardrail. + */ + public /*out*/ readonly guardrailArn!: pulumi.Output; + /** + * ID of the Guardrail. + */ + public /*out*/ readonly guardrailId!: pulumi.Output; + /** + * The KMS key with which the guardrail was encrypted at rest. + */ + public readonly kmsKeyArn!: pulumi.Output; + /** + * Name of the guardrail. + * + * The following arguments are optional: + */ + public readonly name!: pulumi.Output; + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + */ + public readonly sensitiveInformationPolicyConfig!: pulumi.Output; + /** + * Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + */ + public /*out*/ readonly status!: pulumi.Output; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + */ + public readonly topicPolicyConfig!: pulumi.Output; + /** + * Version of the Guardrail. + */ + public /*out*/ readonly version!: pulumi.Output; + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + */ + public readonly wordPolicyConfig!: pulumi.Output; + + /** + * Create a Guardrail 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: GuardrailArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GuardrailArgs | GuardrailState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GuardrailState | undefined; + resourceInputs["blockedInputMessaging"] = state ? state.blockedInputMessaging : undefined; + resourceInputs["blockedOutputsMessaging"] = state ? state.blockedOutputsMessaging : undefined; + resourceInputs["contentPolicyConfig"] = state ? state.contentPolicyConfig : undefined; + resourceInputs["contextualGroundingPolicyConfig"] = state ? state.contextualGroundingPolicyConfig : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["guardrailArn"] = state ? state.guardrailArn : undefined; + resourceInputs["guardrailId"] = state ? state.guardrailId : undefined; + resourceInputs["kmsKeyArn"] = state ? state.kmsKeyArn : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["sensitiveInformationPolicyConfig"] = state ? state.sensitiveInformationPolicyConfig : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + resourceInputs["topicPolicyConfig"] = state ? state.topicPolicyConfig : undefined; + resourceInputs["version"] = state ? state.version : undefined; + resourceInputs["wordPolicyConfig"] = state ? state.wordPolicyConfig : undefined; + } else { + const args = argsOrState as GuardrailArgs | undefined; + if ((!args || args.blockedInputMessaging === undefined) && !opts.urn) { + throw new Error("Missing required property 'blockedInputMessaging'"); + } + if ((!args || args.blockedOutputsMessaging === undefined) && !opts.urn) { + throw new Error("Missing required property 'blockedOutputsMessaging'"); + } + resourceInputs["blockedInputMessaging"] = args ? args.blockedInputMessaging : undefined; + resourceInputs["blockedOutputsMessaging"] = args ? args.blockedOutputsMessaging : undefined; + resourceInputs["contentPolicyConfig"] = args ? args.contentPolicyConfig : undefined; + resourceInputs["contextualGroundingPolicyConfig"] = args ? args.contextualGroundingPolicyConfig : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["kmsKeyArn"] = args ? args.kmsKeyArn : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["sensitiveInformationPolicyConfig"] = args ? args.sensitiveInformationPolicyConfig : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["topicPolicyConfig"] = args ? args.topicPolicyConfig : undefined; + resourceInputs["wordPolicyConfig"] = args ? args.wordPolicyConfig : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["guardrailArn"] = undefined /*out*/; + resourceInputs["guardrailId"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + resourceInputs["version"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Guardrail.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Guardrail resources. + */ +export interface GuardrailState { + /** + * Message to return when the guardrail blocks a prompt. + */ + blockedInputMessaging?: pulumi.Input; + /** + * Message to return when the guardrail blocks a model response. + */ + blockedOutputsMessaging?: pulumi.Input; + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + */ + contentPolicyConfig?: pulumi.Input; + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + */ + contextualGroundingPolicyConfig?: pulumi.Input; + /** + * Unix epoch timestamp in seconds for when the Guardrail was created. + */ + createdAt?: pulumi.Input; + /** + * Description of the guardrail or its version. + */ + description?: pulumi.Input; + /** + * ARN of the Guardrail. + */ + guardrailArn?: pulumi.Input; + /** + * ID of the Guardrail. + */ + guardrailId?: pulumi.Input; + /** + * The KMS key with which the guardrail was encrypted at rest. + */ + kmsKeyArn?: pulumi.Input; + /** + * Name of the guardrail. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + */ + sensitiveInformationPolicyConfig?: pulumi.Input; + /** + * Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + */ + status?: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + */ + topicPolicyConfig?: pulumi.Input; + /** + * Version of the Guardrail. + */ + version?: pulumi.Input; + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + */ + wordPolicyConfig?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Guardrail resource. + */ +export interface GuardrailArgs { + /** + * Message to return when the guardrail blocks a prompt. + */ + blockedInputMessaging: pulumi.Input; + /** + * Message to return when the guardrail blocks a model response. + */ + blockedOutputsMessaging: pulumi.Input; + /** + * Content policy config for a guardrail. See Content Policy Config for more information. + */ + contentPolicyConfig?: pulumi.Input; + /** + * Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + */ + contextualGroundingPolicyConfig?: pulumi.Input; + /** + * Description of the guardrail or its version. + */ + description?: pulumi.Input; + /** + * The KMS key with which the guardrail was encrypted at rest. + */ + kmsKeyArn?: pulumi.Input; + /** + * Name of the guardrail. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + */ + sensitiveInformationPolicyConfig?: pulumi.Input; + /** + * Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; + /** + * Topic policy config for a guardrail. See Topic Policy Config for more information. + */ + topicPolicyConfig?: pulumi.Input; + /** + * Word policy config for a guardrail. See Word Policy Config for more information. + */ + wordPolicyConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/index.ts b/sdk/nodejs/bedrock/index.ts index 1983ddea704..39cedfbabf6 100644 --- a/sdk/nodejs/bedrock/index.ts +++ b/sdk/nodejs/bedrock/index.ts @@ -40,6 +40,11 @@ export type CustomModel = import("./customModel").CustomModel; export const CustomModel: typeof import("./customModel").CustomModel = null as any; utilities.lazyLoad(exports, ["CustomModel"], () => require("./customModel")); +export { GetAgentAgentVersionsArgs, GetAgentAgentVersionsResult, GetAgentAgentVersionsOutputArgs } from "./getAgentAgentVersions"; +export const getAgentAgentVersions: typeof import("./getAgentAgentVersions").getAgentAgentVersions = null as any; +export const getAgentAgentVersionsOutput: typeof import("./getAgentAgentVersions").getAgentAgentVersionsOutput = null as any; +utilities.lazyLoad(exports, ["getAgentAgentVersions","getAgentAgentVersionsOutput"], () => require("./getAgentAgentVersions")); + export { GetCustomModelArgs, GetCustomModelResult, GetCustomModelOutputArgs } from "./getCustomModel"; export const getCustomModel: typeof import("./getCustomModel").getCustomModel = null as any; export const getCustomModelOutput: typeof import("./getCustomModel").getCustomModelOutput = null as any; @@ -50,6 +55,11 @@ export const getCustomModels: typeof import("./getCustomModels").getCustomModels export const getCustomModelsOutput: typeof import("./getCustomModels").getCustomModelsOutput = null as any; utilities.lazyLoad(exports, ["getCustomModels","getCustomModelsOutput"], () => require("./getCustomModels")); +export { GuardrailArgs, GuardrailState } from "./guardrail"; +export type Guardrail = import("./guardrail").Guardrail; +export const Guardrail: typeof import("./guardrail").Guardrail = null as any; +utilities.lazyLoad(exports, ["Guardrail"], () => require("./guardrail")); + export { ProvisionedModelThroughputArgs, ProvisionedModelThroughputState } from "./provisionedModelThroughput"; export type ProvisionedModelThroughput = import("./provisionedModelThroughput").ProvisionedModelThroughput; export const ProvisionedModelThroughput: typeof import("./provisionedModelThroughput").ProvisionedModelThroughput = null as any; @@ -74,6 +84,8 @@ const _module = { return new AgentKnowledgeBase(name, undefined, { urn }) case "aws:bedrock/customModel:CustomModel": return new CustomModel(name, undefined, { urn }) + case "aws:bedrock/guardrail:Guardrail": + return new Guardrail(name, undefined, { urn }) case "aws:bedrock/provisionedModelThroughput:ProvisionedModelThroughput": return new ProvisionedModelThroughput(name, undefined, { urn }) default: @@ -88,4 +100,5 @@ pulumi.runtime.registerResourceModule("aws", "bedrock/agentAgentKnowledgeBaseAss pulumi.runtime.registerResourceModule("aws", "bedrock/agentDataSource", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/agentKnowledgeBase", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/customModel", _module) +pulumi.runtime.registerResourceModule("aws", "bedrock/guardrail", _module) pulumi.runtime.registerResourceModule("aws", "bedrock/provisionedModelThroughput", _module) diff --git a/sdk/nodejs/cloudtrail/index.ts b/sdk/nodejs/cloudtrail/index.ts index 00dad672975..a6281e6bd5d 100644 --- a/sdk/nodejs/cloudtrail/index.ts +++ b/sdk/nodejs/cloudtrail/index.ts @@ -15,6 +15,11 @@ export const getServiceAccount: typeof import("./getServiceAccount").getServiceA export const getServiceAccountOutput: typeof import("./getServiceAccount").getServiceAccountOutput = null as any; utilities.lazyLoad(exports, ["getServiceAccount","getServiceAccountOutput"], () => require("./getServiceAccount")); +export { OrganizationDelegatedAdminAccountArgs, OrganizationDelegatedAdminAccountState } from "./organizationDelegatedAdminAccount"; +export type OrganizationDelegatedAdminAccount = import("./organizationDelegatedAdminAccount").OrganizationDelegatedAdminAccount; +export const OrganizationDelegatedAdminAccount: typeof import("./organizationDelegatedAdminAccount").OrganizationDelegatedAdminAccount = null as any; +utilities.lazyLoad(exports, ["OrganizationDelegatedAdminAccount"], () => require("./organizationDelegatedAdminAccount")); + export { TrailArgs, TrailState } from "./trail"; export type Trail = import("./trail").Trail; export const Trail: typeof import("./trail").Trail = null as any; @@ -27,6 +32,8 @@ const _module = { switch (type) { case "aws:cloudtrail/eventDataStore:EventDataStore": return new EventDataStore(name, undefined, { urn }) + case "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount": + return new OrganizationDelegatedAdminAccount(name, undefined, { urn }) case "aws:cloudtrail/trail:Trail": return new Trail(name, undefined, { urn }) default: @@ -35,4 +42,5 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("aws", "cloudtrail/eventDataStore", _module) +pulumi.runtime.registerResourceModule("aws", "cloudtrail/organizationDelegatedAdminAccount", _module) pulumi.runtime.registerResourceModule("aws", "cloudtrail/trail", _module) diff --git a/sdk/nodejs/cloudtrail/organizationDelegatedAdminAccount.ts b/sdk/nodejs/cloudtrail/organizationDelegatedAdminAccount.ts new file mode 100644 index 00000000000..33ae452eb05 --- /dev/null +++ b/sdk/nodejs/cloudtrail/organizationDelegatedAdminAccount.ts @@ -0,0 +1,147 @@ +// *** 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"; + +/** + * Provides a resource to manage an AWS CloudTrail Delegated Administrator. + * + * ## Example Usage + * + * Basic usage: + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const delegated = aws.getCallerIdentity({}); + * const example = new aws.cloudtrail.OrganizationDelegatedAdminAccount("example", {accountId: delegated.then(delegated => delegated.accountId)}); + * ``` + * + * ## Import + * + * Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: + * + * ```sh + * $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 + * ``` + */ +export class OrganizationDelegatedAdminAccount extends pulumi.CustomResource { + /** + * Get an existing OrganizationDelegatedAdminAccount 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?: OrganizationDelegatedAdminAccountState, opts?: pulumi.CustomResourceOptions): OrganizationDelegatedAdminAccount { + return new OrganizationDelegatedAdminAccount(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount'; + + /** + * Returns true if the given object is an instance of OrganizationDelegatedAdminAccount. 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 OrganizationDelegatedAdminAccount { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === OrganizationDelegatedAdminAccount.__pulumiType; + } + + /** + * An organization member account ID that you want to designate as a delegated administrator. + */ + public readonly accountId!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the delegated administrator's account. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The email address that is associated with the delegated administrator's AWS account. + */ + public /*out*/ readonly email!: pulumi.Output; + /** + * The friendly name of the delegated administrator's account. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The AWS CloudTrail service principal name. + */ + public /*out*/ readonly servicePrincipal!: pulumi.Output; + + /** + * Create a OrganizationDelegatedAdminAccount 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: OrganizationDelegatedAdminAccountArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: OrganizationDelegatedAdminAccountArgs | OrganizationDelegatedAdminAccountState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as OrganizationDelegatedAdminAccountState | undefined; + resourceInputs["accountId"] = state ? state.accountId : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["email"] = state ? state.email : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["servicePrincipal"] = state ? state.servicePrincipal : undefined; + } else { + const args = argsOrState as OrganizationDelegatedAdminAccountArgs | undefined; + if ((!args || args.accountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'accountId'"); + } + resourceInputs["accountId"] = args ? args.accountId : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["email"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["servicePrincipal"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(OrganizationDelegatedAdminAccount.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering OrganizationDelegatedAdminAccount resources. + */ +export interface OrganizationDelegatedAdminAccountState { + /** + * An organization member account ID that you want to designate as a delegated administrator. + */ + accountId?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the delegated administrator's account. + */ + arn?: pulumi.Input; + /** + * The email address that is associated with the delegated administrator's AWS account. + */ + email?: pulumi.Input; + /** + * The friendly name of the delegated administrator's account. + */ + name?: pulumi.Input; + /** + * The AWS CloudTrail service principal name. + */ + servicePrincipal?: pulumi.Input; +} + +/** + * The set of arguments for constructing a OrganizationDelegatedAdminAccount resource. + */ +export interface OrganizationDelegatedAdminAccountArgs { + /** + * An organization member account ID that you want to designate as a delegated administrator. + */ + accountId: pulumi.Input; +} diff --git a/sdk/nodejs/datazone/environmentProfile.ts b/sdk/nodejs/datazone/environmentProfile.ts new file mode 100644 index 00000000000..3eb0cba1267 --- /dev/null +++ b/sdk/nodejs/datazone/environmentProfile.ts @@ -0,0 +1,333 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS DataZone Environment Profile. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const domainExecutionRole = new aws.iam.Role("domain_execution_role", { + * name: "example-name", + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [ + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "datazone.amazonaws.com", + * }, + * }, + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "cloudformation.amazonaws.com", + * }, + * }, + * ], + * }), + * inlinePolicies: [{ + * name: "example-name", + * policy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: [ + * "datazone:*", + * "ram:*", + * "sso:*", + * "kms:*", + * ], + * Effect: "Allow", + * Resource: "*", + * }], + * }), + * }], + * }); + * const testDomain = new aws.datazone.Domain("test", { + * name: "example-name", + * domainExecutionRole: domainExecutionRole.arn, + * }); + * const testSecurityGroup = new aws.ec2.SecurityGroup("test", {name: "example-name"}); + * const testProject = new aws.datazone.Project("test", { + * domainIdentifier: testDomain.id, + * glossaryTerms: ["2N8w6XJCwZf"], + * name: "example-name", + * description: "desc", + * skipDeletionCheck: true, + * }); + * const test = aws.getCallerIdentity({}); + * const testGetRegion = aws.getRegion({}); + * const testGetEnvironmentBlueprint = aws.datazone.getEnvironmentBlueprintOutput({ + * domainId: testDomain.id, + * name: "DefaultDataLake", + * managed: true, + * }); + * const testEnvironmentBlueprintConfiguration = new aws.datazone.EnvironmentBlueprintConfiguration("test", { + * domainId: testDomain.id, + * environmentBlueprintId: testGetEnvironmentBlueprint.apply(testGetEnvironmentBlueprint => testGetEnvironmentBlueprint.id), + * provisioningRoleArn: domainExecutionRole.arn, + * enabledRegions: [testGetRegion.then(testGetRegion => testGetRegion.name)], + * }); + * const testEnvironmentProfile = new aws.datazone.EnvironmentProfile("test", { + * awsAccountId: test.then(test => test.accountId), + * awsAccountRegion: testGetRegion.then(testGetRegion => testGetRegion.name), + * description: "description", + * environmentBlueprintIdentifier: testGetEnvironmentBlueprint.apply(testGetEnvironmentBlueprint => testGetEnvironmentBlueprint.id), + * name: "example-name", + * projectIdentifier: testProject.id, + * domainIdentifier: testDomain.id, + * userParameters: [{ + * name: "consumerGlueDbName", + * value: "value", + * }], + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: + * + * ```sh + * $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 + * ``` + */ +export class EnvironmentProfile extends pulumi.CustomResource { + /** + * Get an existing EnvironmentProfile 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?: EnvironmentProfileState, opts?: pulumi.CustomResourceOptions): EnvironmentProfile { + return new EnvironmentProfile(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:datazone/environmentProfile:EnvironmentProfile'; + + /** + * Returns true if the given object is an instance of EnvironmentProfile. 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 EnvironmentProfile { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EnvironmentProfile.__pulumiType; + } + + /** + * Id of the AWS account being used. + */ + public readonly awsAccountId!: pulumi.Output; + /** + * Desired region for environment profile. + */ + public readonly awsAccountRegion!: pulumi.Output; + /** + * Creation time of environment profile. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Creator of environment profile. + */ + public /*out*/ readonly createdBy!: pulumi.Output; + /** + * Description of environment profile. + */ + public readonly description!: pulumi.Output; + /** + * Domain Identifier for environment profile. + */ + public readonly domainIdentifier!: pulumi.Output; + /** + * ID of the blueprint which the environment will be created with. + */ + public readonly environmentBlueprintIdentifier!: pulumi.Output; + /** + * Name of the environment profile. + */ + public readonly name!: pulumi.Output; + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + */ + public readonly projectIdentifier!: pulumi.Output; + /** + * Time of last update to environment profile. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + /** + * Array of user parameters of the environment profile with the following attributes: + */ + public readonly userParameters!: pulumi.Output; + + /** + * Create a EnvironmentProfile 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: EnvironmentProfileArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EnvironmentProfileArgs | EnvironmentProfileState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EnvironmentProfileState | undefined; + resourceInputs["awsAccountId"] = state ? state.awsAccountId : undefined; + resourceInputs["awsAccountRegion"] = state ? state.awsAccountRegion : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["createdBy"] = state ? state.createdBy : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["domainIdentifier"] = state ? state.domainIdentifier : undefined; + resourceInputs["environmentBlueprintIdentifier"] = state ? state.environmentBlueprintIdentifier : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["projectIdentifier"] = state ? state.projectIdentifier : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + resourceInputs["userParameters"] = state ? state.userParameters : undefined; + } else { + const args = argsOrState as EnvironmentProfileArgs | undefined; + if ((!args || args.awsAccountRegion === undefined) && !opts.urn) { + throw new Error("Missing required property 'awsAccountRegion'"); + } + if ((!args || args.domainIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'domainIdentifier'"); + } + if ((!args || args.environmentBlueprintIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'environmentBlueprintIdentifier'"); + } + if ((!args || args.projectIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectIdentifier'"); + } + resourceInputs["awsAccountId"] = args ? args.awsAccountId : undefined; + resourceInputs["awsAccountRegion"] = args ? args.awsAccountRegion : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["domainIdentifier"] = args ? args.domainIdentifier : undefined; + resourceInputs["environmentBlueprintIdentifier"] = args ? args.environmentBlueprintIdentifier : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["projectIdentifier"] = args ? args.projectIdentifier : undefined; + resourceInputs["userParameters"] = args ? args.userParameters : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["createdBy"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(EnvironmentProfile.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering EnvironmentProfile resources. + */ +export interface EnvironmentProfileState { + /** + * Id of the AWS account being used. + */ + awsAccountId?: pulumi.Input; + /** + * Desired region for environment profile. + */ + awsAccountRegion?: pulumi.Input; + /** + * Creation time of environment profile. + */ + createdAt?: pulumi.Input; + /** + * Creator of environment profile. + */ + createdBy?: pulumi.Input; + /** + * Description of environment profile. + */ + description?: pulumi.Input; + /** + * Domain Identifier for environment profile. + */ + domainIdentifier?: pulumi.Input; + /** + * ID of the blueprint which the environment will be created with. + */ + environmentBlueprintIdentifier?: pulumi.Input; + /** + * Name of the environment profile. + */ + name?: pulumi.Input; + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + */ + projectIdentifier?: pulumi.Input; + /** + * Time of last update to environment profile. + */ + updatedAt?: pulumi.Input; + /** + * Array of user parameters of the environment profile with the following attributes: + */ + userParameters?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a EnvironmentProfile resource. + */ +export interface EnvironmentProfileArgs { + /** + * Id of the AWS account being used. + */ + awsAccountId?: pulumi.Input; + /** + * Desired region for environment profile. + */ + awsAccountRegion: pulumi.Input; + /** + * Description of environment profile. + */ + description?: pulumi.Input; + /** + * Domain Identifier for environment profile. + */ + domainIdentifier: pulumi.Input; + /** + * ID of the blueprint which the environment will be created with. + */ + environmentBlueprintIdentifier: pulumi.Input; + /** + * Name of the environment profile. + */ + name?: pulumi.Input; + /** + * Project identifier for environment profile. + * + * The following arguments are optional: + */ + projectIdentifier: pulumi.Input; + /** + * Array of user parameters of the environment profile with the following attributes: + */ + userParameters?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/datazone/formType.ts b/sdk/nodejs/datazone/formType.ts new file mode 100644 index 00000000000..08656b5e317 --- /dev/null +++ b/sdk/nodejs/datazone/formType.ts @@ -0,0 +1,308 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS DataZone Form Type. + * + * ## Example Usage + * + * ### Basic Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const domainExecutionRole = new aws.iam.Role("domain_execution_role", { + * name: "example name", + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [ + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "datazone.amazonaws.com", + * }, + * }, + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "cloudformation.amazonaws.com", + * }, + * }, + * ], + * }), + * inlinePolicies: [{ + * name: "example name", + * policy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: [ + * "datazone:*", + * "ram:*", + * "sso:*", + * "kms:*", + * ], + * Effect: "Allow", + * Resource: "*", + * }], + * }), + * }], + * }); + * const test = new aws.datazone.Domain("test", { + * name: "example name", + * domainExecutionRole: domainExecutionRole.arn, + * }); + * const testSecurityGroup = new aws.ec2.SecurityGroup("test", {name: "example name"}); + * const testProject = new aws.datazone.Project("test", { + * domainIdentifier: test.id, + * glossaryTerms: ["2N8w6XJCwZf"], + * name: "example name", + * description: "desc", + * skipDeletionCheck: true, + * }); + * const testFormType = new aws.datazone.FormType("test", { + * description: "desc", + * name: "SageMakerModelFormType", + * domainIdentifier: test.id, + * owningProjectIdentifier: testProject.id, + * status: "DISABLED", + * model: { + * smithy: `\x09structure SageMakerModelFormType { + * \x09\x09\x09@required + * \x09\x09\x09@amazon.datazone#searchable + * \x09\x09\x09modelName: String + * + * \x09\x09\x09@required + * \x09\x09\x09modelArn: String + * + * \x09\x09\x09@required + * \x09\x09\x09creationTime: String + * \x09\x09\x09} + * `, + * }, + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: + * + * ```sh + * $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision + * ``` + */ +export class FormType extends pulumi.CustomResource { + /** + * Get an existing FormType 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?: FormTypeState, opts?: pulumi.CustomResourceOptions): FormType { + return new FormType(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:datazone/formType:FormType'; + + /** + * Returns true if the given object is an instance of FormType. 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 FormType { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === FormType.__pulumiType; + } + + /** + * Creation time of the Form Type. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Creator of the Form Type. + */ + public /*out*/ readonly createdBy!: pulumi.Output; + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + */ + public readonly description!: pulumi.Output; + /** + * Identifier of the domain. + */ + public readonly domainIdentifier!: pulumi.Output; + public /*out*/ readonly imports!: pulumi.Output; + /** + * Object of the model of the form type that contains the following attributes. + */ + public readonly model!: pulumi.Output; + /** + * Name of the form type. Must be the name of the structure in smithy document. + */ + public readonly name!: pulumi.Output; + /** + * Origin domain id of the Form Type. + */ + public /*out*/ readonly originDomainId!: pulumi.Output; + /** + * Origin project id of the Form Type. + */ + public /*out*/ readonly originProjectId!: pulumi.Output; + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + */ + public readonly owningProjectIdentifier!: pulumi.Output; + /** + * Revision of the Form Type. + */ + public /*out*/ readonly revision!: pulumi.Output; + public readonly status!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a FormType 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: FormTypeArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: FormTypeArgs | FormTypeState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as FormTypeState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["createdBy"] = state ? state.createdBy : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["domainIdentifier"] = state ? state.domainIdentifier : undefined; + resourceInputs["imports"] = state ? state.imports : undefined; + resourceInputs["model"] = state ? state.model : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["originDomainId"] = state ? state.originDomainId : undefined; + resourceInputs["originProjectId"] = state ? state.originProjectId : undefined; + resourceInputs["owningProjectIdentifier"] = state ? state.owningProjectIdentifier : undefined; + resourceInputs["revision"] = state ? state.revision : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as FormTypeArgs | undefined; + if ((!args || args.domainIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'domainIdentifier'"); + } + if ((!args || args.owningProjectIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'owningProjectIdentifier'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["domainIdentifier"] = args ? args.domainIdentifier : undefined; + resourceInputs["model"] = args ? args.model : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["owningProjectIdentifier"] = args ? args.owningProjectIdentifier : undefined; + resourceInputs["status"] = args ? args.status : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["createdBy"] = undefined /*out*/; + resourceInputs["imports"] = undefined /*out*/; + resourceInputs["originDomainId"] = undefined /*out*/; + resourceInputs["originProjectId"] = undefined /*out*/; + resourceInputs["revision"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(FormType.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering FormType resources. + */ +export interface FormTypeState { + /** + * Creation time of the Form Type. + */ + createdAt?: pulumi.Input; + /** + * Creator of the Form Type. + */ + createdBy?: pulumi.Input; + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + */ + description?: pulumi.Input; + /** + * Identifier of the domain. + */ + domainIdentifier?: pulumi.Input; + imports?: pulumi.Input[]>; + /** + * Object of the model of the form type that contains the following attributes. + */ + model?: pulumi.Input; + /** + * Name of the form type. Must be the name of the structure in smithy document. + */ + name?: pulumi.Input; + /** + * Origin domain id of the Form Type. + */ + originDomainId?: pulumi.Input; + /** + * Origin project id of the Form Type. + */ + originProjectId?: pulumi.Input; + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + */ + owningProjectIdentifier?: pulumi.Input; + /** + * Revision of the Form Type. + */ + revision?: pulumi.Input; + status?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a FormType resource. + */ +export interface FormTypeArgs { + /** + * Description of form type. Must have a length of between 1 and 2048 characters. + */ + description?: pulumi.Input; + /** + * Identifier of the domain. + */ + domainIdentifier: pulumi.Input; + /** + * Object of the model of the form type that contains the following attributes. + */ + model?: pulumi.Input; + /** + * Name of the form type. Must be the name of the structure in smithy document. + */ + name?: pulumi.Input; + /** + * Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + */ + owningProjectIdentifier: pulumi.Input; + status?: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/datazone/glossaryTerm.ts b/sdk/nodejs/datazone/glossaryTerm.ts new file mode 100644 index 00000000000..e2de3b325cd --- /dev/null +++ b/sdk/nodejs/datazone/glossaryTerm.ts @@ -0,0 +1,289 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource for managing an AWS DataZone Glossary Term. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.iam.Role("example", { + * name: "example", + * assumeRolePolicy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [ + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "datazone.amazonaws.com", + * }, + * }, + * { + * Action: [ + * "sts:AssumeRole", + * "sts:TagSession", + * ], + * Effect: "Allow", + * Principal: { + * Service: "cloudformation.amazonaws.com", + * }, + * }, + * ], + * }), + * inlinePolicies: [{ + * name: "example", + * policy: JSON.stringify({ + * Version: "2012-10-17", + * Statement: [{ + * Action: [ + * "datazone:*", + * "ram:*", + * "sso:*", + * "kms:*", + * ], + * Effect: "Allow", + * Resource: "*", + * }], + * }), + * }], + * }); + * const exampleDomain = new aws.datazone.Domain("example", { + * name: "example_name", + * domainExecutionRole: example.arn, + * }); + * const exampleSecurityGroup = new aws.ec2.SecurityGroup("example", {name: "example_name"}); + * const exampleProject = new aws.datazone.Project("example", { + * domainIdentifier: exampleDomain.id, + * glossaryTerms: ["2N8w6XJCwZf"], + * name: "example", + * skipDeletionCheck: true, + * }); + * const exampleGlossary = new aws.datazone.Glossary("example", { + * description: "description", + * name: "example", + * owningProjectIdentifier: exampleProject.id, + * status: "ENABLED", + * domainIdentifier: exampleProject.domainIdentifier, + * }); + * const exampleGlossaryTerm = new aws.datazone.GlossaryTerm("example", { + * domainIdentifier: exampleDomain.id, + * glossaryIdentifier: exampleGlossary.id, + * name: "example", + * status: "ENABLED", + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: + * + * ```sh + * $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id + * ``` + */ +export class GlossaryTerm extends pulumi.CustomResource { + /** + * Get an existing GlossaryTerm 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?: GlossaryTermState, opts?: pulumi.CustomResourceOptions): GlossaryTerm { + return new GlossaryTerm(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:datazone/glossaryTerm:GlossaryTerm'; + + /** + * Returns true if the given object is an instance of GlossaryTerm. 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 GlossaryTerm { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GlossaryTerm.__pulumiType; + } + + /** + * Time of glossary term creation. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Creator of glossary term. + */ + public /*out*/ readonly createdBy!: pulumi.Output; + /** + * Identifier of domain. + */ + public readonly domainIdentifier!: pulumi.Output; + /** + * Identifier of glossary. + */ + public readonly glossaryIdentifier!: pulumi.Output; + /** + * Long description of entry. + */ + public readonly longDescription!: pulumi.Output; + /** + * Name of glossary term. + * + * The following arguments are optional: + */ + public readonly name!: pulumi.Output; + /** + * Short description of entry. + */ + public readonly shortDescription!: pulumi.Output; + /** + * If glossary term is ENABLED or DISABLED. + */ + public readonly status!: pulumi.Output; + /** + * Object classifying the term relations through the following attributes: + */ + public readonly termRelations!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a GlossaryTerm 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: GlossaryTermArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GlossaryTermArgs | GlossaryTermState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GlossaryTermState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["createdBy"] = state ? state.createdBy : undefined; + resourceInputs["domainIdentifier"] = state ? state.domainIdentifier : undefined; + resourceInputs["glossaryIdentifier"] = state ? state.glossaryIdentifier : undefined; + resourceInputs["longDescription"] = state ? state.longDescription : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["shortDescription"] = state ? state.shortDescription : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["termRelations"] = state ? state.termRelations : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as GlossaryTermArgs | undefined; + if ((!args || args.glossaryIdentifier === undefined) && !opts.urn) { + throw new Error("Missing required property 'glossaryIdentifier'"); + } + resourceInputs["domainIdentifier"] = args ? args.domainIdentifier : undefined; + resourceInputs["glossaryIdentifier"] = args ? args.glossaryIdentifier : undefined; + resourceInputs["longDescription"] = args ? args.longDescription : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["shortDescription"] = args ? args.shortDescription : undefined; + resourceInputs["status"] = args ? args.status : undefined; + resourceInputs["termRelations"] = args ? args.termRelations : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["createdBy"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(GlossaryTerm.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GlossaryTerm resources. + */ +export interface GlossaryTermState { + /** + * Time of glossary term creation. + */ + createdAt?: pulumi.Input; + /** + * Creator of glossary term. + */ + createdBy?: pulumi.Input; + /** + * Identifier of domain. + */ + domainIdentifier?: pulumi.Input; + /** + * Identifier of glossary. + */ + glossaryIdentifier?: pulumi.Input; + /** + * Long description of entry. + */ + longDescription?: pulumi.Input; + /** + * Name of glossary term. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Short description of entry. + */ + shortDescription?: pulumi.Input; + /** + * If glossary term is ENABLED or DISABLED. + */ + status?: pulumi.Input; + /** + * Object classifying the term relations through the following attributes: + */ + termRelations?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GlossaryTerm resource. + */ +export interface GlossaryTermArgs { + /** + * Identifier of domain. + */ + domainIdentifier?: pulumi.Input; + /** + * Identifier of glossary. + */ + glossaryIdentifier: pulumi.Input; + /** + * Long description of entry. + */ + longDescription?: pulumi.Input; + /** + * Name of glossary term. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * Short description of entry. + */ + shortDescription?: pulumi.Input; + /** + * If glossary term is ENABLED or DISABLED. + */ + status?: pulumi.Input; + /** + * Object classifying the term relations through the following attributes: + */ + termRelations?: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/datazone/index.ts b/sdk/nodejs/datazone/index.ts index 491f477a519..d5134d5d8d5 100644 --- a/sdk/nodejs/datazone/index.ts +++ b/sdk/nodejs/datazone/index.ts @@ -15,6 +15,16 @@ export type EnvironmentBlueprintConfiguration = import("./environmentBlueprintCo export const EnvironmentBlueprintConfiguration: typeof import("./environmentBlueprintConfiguration").EnvironmentBlueprintConfiguration = null as any; utilities.lazyLoad(exports, ["EnvironmentBlueprintConfiguration"], () => require("./environmentBlueprintConfiguration")); +export { EnvironmentProfileArgs, EnvironmentProfileState } from "./environmentProfile"; +export type EnvironmentProfile = import("./environmentProfile").EnvironmentProfile; +export const EnvironmentProfile: typeof import("./environmentProfile").EnvironmentProfile = null as any; +utilities.lazyLoad(exports, ["EnvironmentProfile"], () => require("./environmentProfile")); + +export { FormTypeArgs, FormTypeState } from "./formType"; +export type FormType = import("./formType").FormType; +export const FormType: typeof import("./formType").FormType = null as any; +utilities.lazyLoad(exports, ["FormType"], () => require("./formType")); + export { GetEnvironmentBlueprintArgs, GetEnvironmentBlueprintResult, GetEnvironmentBlueprintOutputArgs } from "./getEnvironmentBlueprint"; export const getEnvironmentBlueprint: typeof import("./getEnvironmentBlueprint").getEnvironmentBlueprint = null as any; export const getEnvironmentBlueprintOutput: typeof import("./getEnvironmentBlueprint").getEnvironmentBlueprintOutput = null as any; @@ -25,6 +35,11 @@ export type Glossary = import("./glossary").Glossary; export const Glossary: typeof import("./glossary").Glossary = null as any; utilities.lazyLoad(exports, ["Glossary"], () => require("./glossary")); +export { GlossaryTermArgs, GlossaryTermState } from "./glossaryTerm"; +export type GlossaryTerm = import("./glossaryTerm").GlossaryTerm; +export const GlossaryTerm: typeof import("./glossaryTerm").GlossaryTerm = null as any; +utilities.lazyLoad(exports, ["GlossaryTerm"], () => require("./glossaryTerm")); + export { ProjectArgs, ProjectState } from "./project"; export type Project = import("./project").Project; export const Project: typeof import("./project").Project = null as any; @@ -39,8 +54,14 @@ const _module = { return new Domain(name, undefined, { urn }) case "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": return new EnvironmentBlueprintConfiguration(name, undefined, { urn }) + case "aws:datazone/environmentProfile:EnvironmentProfile": + return new EnvironmentProfile(name, undefined, { urn }) + case "aws:datazone/formType:FormType": + return new FormType(name, undefined, { urn }) case "aws:datazone/glossary:Glossary": return new Glossary(name, undefined, { urn }) + case "aws:datazone/glossaryTerm:GlossaryTerm": + return new GlossaryTerm(name, undefined, { urn }) case "aws:datazone/project:Project": return new Project(name, undefined, { urn }) default: @@ -50,5 +71,8 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "datazone/domain", _module) pulumi.runtime.registerResourceModule("aws", "datazone/environmentBlueprintConfiguration", _module) +pulumi.runtime.registerResourceModule("aws", "datazone/environmentProfile", _module) +pulumi.runtime.registerResourceModule("aws", "datazone/formType", _module) pulumi.runtime.registerResourceModule("aws", "datazone/glossary", _module) +pulumi.runtime.registerResourceModule("aws", "datazone/glossaryTerm", _module) pulumi.runtime.registerResourceModule("aws", "datazone/project", _module) diff --git a/sdk/nodejs/lb/listener.ts b/sdk/nodejs/lb/listener.ts index f0340c799a8..e007c5c4c4d 100644 --- a/sdk/nodejs/lb/listener.ts +++ b/sdk/nodejs/lb/listener.ts @@ -45,6 +45,7 @@ import * as utilities from "../utilities"; * loadBalancerArn: frontEndAwsLb.arn, * port: 443, * protocol: "TLS", + * sslPolicy: "ELBSecurityPolicy-2016-08", * certificateArn: "arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", * alpnPolicy: "HTTP2Preferred", * defaultActions: [{ @@ -286,7 +287,7 @@ export class Listener extends pulumi.CustomResource { */ public readonly protocol!: pulumi.Output; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ public readonly sslPolicy!: pulumi.Output; /** @@ -392,7 +393,7 @@ export interface ListenerState { */ protocol?: pulumi.Input; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ sslPolicy?: pulumi.Input; /** @@ -444,7 +445,7 @@ export interface ListenerArgs { */ protocol?: pulumi.Input; /** - * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + * Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. */ sslPolicy?: pulumi.Input; /** diff --git a/sdk/nodejs/msk/replicator.ts b/sdk/nodejs/msk/replicator.ts index 990c4ff3ee2..0facf7f99de 100644 --- a/sdk/nodejs/msk/replicator.ts +++ b/sdk/nodejs/msk/replicator.ts @@ -48,6 +48,9 @@ import * as utilities from "../utilities"; * targetCompressionType: "NONE", * topicReplications: [{ * topicsToReplicates: [".*"], + * startingPosition: { + * type: "LATEST", + * }, * }], * consumerGroupReplications: [{ * consumerGroupsToReplicates: [".*"], diff --git a/sdk/nodejs/networkfirewall/loggingConfiguration.ts b/sdk/nodejs/networkfirewall/loggingConfiguration.ts index 951e6bf52c6..3f1be0bd04b 100644 --- a/sdk/nodejs/networkfirewall/loggingConfiguration.ts +++ b/sdk/nodejs/networkfirewall/loggingConfiguration.ts @@ -67,7 +67,7 @@ import * as utilities from "../utilities"; * deliveryStream: exampleAwsKinesisFirehoseDeliveryStream.name, * }, * logDestinationType: "KinesisDataFirehose", - * logType: "ALERT", + * logType: "TLS", * }], * }, * }); diff --git a/sdk/nodejs/pinpoint/emailChannel.ts b/sdk/nodejs/pinpoint/emailChannel.ts index 04927fba0fa..380db6f6003 100644 --- a/sdk/nodejs/pinpoint/emailChannel.ts +++ b/sdk/nodejs/pinpoint/emailChannel.ts @@ -109,7 +109,7 @@ export class EmailChannel extends pulumi.CustomResource { */ public /*out*/ readonly messagesPerSecond!: pulumi.Output; /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. */ public readonly roleArn!: pulumi.Output; @@ -186,7 +186,7 @@ export interface EmailChannelState { */ messagesPerSecond?: pulumi.Input; /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. */ roleArn?: pulumi.Input; } @@ -216,7 +216,7 @@ export interface EmailChannelArgs { */ identity: pulumi.Input; /** - * The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + * *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. */ roleArn?: pulumi.Input; } diff --git a/sdk/nodejs/pinpoint/emailTemplate.ts b/sdk/nodejs/pinpoint/emailTemplate.ts new file mode 100644 index 00000000000..ecedcb71260 --- /dev/null +++ b/sdk/nodejs/pinpoint/emailTemplate.ts @@ -0,0 +1,156 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Provides a Pinpoint Email Template resource + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.pinpoint.EmailTemplate("test", { + * templateName: "testing", + * emailTemplates: [{ + * subject: "testing", + * textPart: "we are testing template text part", + * headers: [{ + * name: "testingname", + * value: "testingvalue", + * }], + * }], + * }); + * ``` + * + * ## Import + * + * Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: + * + * ```sh + * $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name + * ``` + */ +export class EmailTemplate extends pulumi.CustomResource { + /** + * Get an existing EmailTemplate 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?: EmailTemplateState, opts?: pulumi.CustomResourceOptions): EmailTemplate { + return new EmailTemplate(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:pinpoint/emailTemplate:EmailTemplate'; + + /** + * Returns true if the given object is an instance of EmailTemplate. 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 EmailTemplate { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EmailTemplate.__pulumiType; + } + + /** + * Amazon Resource Name (ARN) of the message template. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + */ + public readonly emailTemplates!: pulumi.Output; + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + */ + public readonly templateName!: pulumi.Output; + + /** + * Create a EmailTemplate 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: EmailTemplateArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EmailTemplateArgs | EmailTemplateState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EmailTemplateState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["emailTemplates"] = state ? state.emailTemplates : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["templateName"] = state ? state.templateName : undefined; + } else { + const args = argsOrState as EmailTemplateArgs | undefined; + if ((!args || args.templateName === undefined) && !opts.urn) { + throw new Error("Missing required property 'templateName'"); + } + resourceInputs["emailTemplates"] = args ? args.emailTemplates : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["templateName"] = args ? args.templateName : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(EmailTemplate.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering EmailTemplate resources. + */ +export interface EmailTemplateState { + /** + * Amazon Resource Name (ARN) of the message template. + */ + arn?: pulumi.Input; + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + */ + emailTemplates?: pulumi.Input[]>; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + */ + templateName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a EmailTemplate resource. + */ +export interface EmailTemplateArgs { + /** + * Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + */ + emailTemplates?: pulumi.Input[]>; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + */ + templateName: pulumi.Input; +} diff --git a/sdk/nodejs/pinpoint/index.ts b/sdk/nodejs/pinpoint/index.ts index 3930f846aa0..3b3088d628f 100644 --- a/sdk/nodejs/pinpoint/index.ts +++ b/sdk/nodejs/pinpoint/index.ts @@ -45,6 +45,11 @@ export type EmailChannel = import("./emailChannel").EmailChannel; export const EmailChannel: typeof import("./emailChannel").EmailChannel = null as any; utilities.lazyLoad(exports, ["EmailChannel"], () => require("./emailChannel")); +export { EmailTemplateArgs, EmailTemplateState } from "./emailTemplate"; +export type EmailTemplate = import("./emailTemplate").EmailTemplate; +export const EmailTemplate: typeof import("./emailTemplate").EmailTemplate = null as any; +utilities.lazyLoad(exports, ["EmailTemplate"], () => require("./emailTemplate")); + export { EventStreamArgs, EventStreamState } from "./eventStream"; export type EventStream = import("./eventStream").EventStream; export const EventStream: typeof import("./eventStream").EventStream = null as any; @@ -81,6 +86,8 @@ const _module = { return new BaiduChannel(name, undefined, { urn }) case "aws:pinpoint/emailChannel:EmailChannel": return new EmailChannel(name, undefined, { urn }) + case "aws:pinpoint/emailTemplate:EmailTemplate": + return new EmailTemplate(name, undefined, { urn }) case "aws:pinpoint/eventStream:EventStream": return new EventStream(name, undefined, { urn }) case "aws:pinpoint/gcmChannel:GcmChannel": @@ -100,6 +107,7 @@ pulumi.runtime.registerResourceModule("aws", "pinpoint/apnsVoipSandboxChannel", pulumi.runtime.registerResourceModule("aws", "pinpoint/app", _module) pulumi.runtime.registerResourceModule("aws", "pinpoint/baiduChannel", _module) pulumi.runtime.registerResourceModule("aws", "pinpoint/emailChannel", _module) +pulumi.runtime.registerResourceModule("aws", "pinpoint/emailTemplate", _module) pulumi.runtime.registerResourceModule("aws", "pinpoint/eventStream", _module) pulumi.runtime.registerResourceModule("aws", "pinpoint/gcmChannel", _module) pulumi.runtime.registerResourceModule("aws", "pinpoint/smsChannel", _module) diff --git a/sdk/nodejs/pipes/pipe.ts b/sdk/nodejs/pipes/pipe.ts index fea2446b75f..03a192e4353 100644 --- a/sdk/nodejs/pipes/pipe.ts +++ b/sdk/nodejs/pipes/pipe.ts @@ -159,6 +159,32 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### SQS Source and Target Configuration Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.pipes.Pipe("example", { + * name: "example-pipe", + * roleArn: exampleAwsIamRole.arn, + * source: source.arn, + * target: target.arn, + * sourceParameters: { + * sqsQueueParameters: { + * batchSize: 1, + * maximumBatchingWindowInSeconds: 2, + * }, + * }, + * targetParameters: { + * sqsQueueParameters: { + * messageDeduplicationId: "example-dedupe", + * messageGroupId: "example-group", + * }, + * }, + * }); + * ``` + * * ## Import * * Using `pulumi import`, import pipes using the `name`. For example: diff --git a/sdk/nodejs/rds/clusterInstance.ts b/sdk/nodejs/rds/clusterInstance.ts index b4c39df9f07..89c2e815903 100644 --- a/sdk/nodejs/rds/clusterInstance.ts +++ b/sdk/nodejs/rds/clusterInstance.ts @@ -129,7 +129,7 @@ export class ClusterInstance extends pulumi.CustomResource { */ public readonly dbParameterGroupName!: pulumi.Output; /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. */ public readonly dbSubnetGroupName!: pulumi.Output; /** @@ -371,7 +371,7 @@ export interface ClusterInstanceState { */ dbParameterGroupName?: pulumi.Input; /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. */ dbSubnetGroupName?: pulumi.Input; /** @@ -512,7 +512,7 @@ export interface ClusterInstanceArgs { */ dbParameterGroupName?: pulumi.Input; /** - * DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. + * Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `dbSubnetGroupName` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `dbSubnetGroupName` and `publiclyAccessible` parameters affect DB instance behaviour. **NOTE:** This must match the `dbSubnetGroupName` of the attached `aws.rds.Cluster`. */ dbSubnetGroupName?: pulumi.Input; /** diff --git a/sdk/nodejs/sagemaker/app.ts b/sdk/nodejs/sagemaker/app.ts index 6d8e3789511..46fd0501b95 100644 --- a/sdk/nodejs/sagemaker/app.ts +++ b/sdk/nodejs/sagemaker/app.ts @@ -67,7 +67,7 @@ export class App extends pulumi.CustomResource { */ public readonly appName!: pulumi.Output; /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. */ public readonly appType!: pulumi.Output; /** @@ -158,7 +158,7 @@ export interface AppState { */ appName?: pulumi.Input; /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. */ appType?: pulumi.Input; /** @@ -202,7 +202,7 @@ export interface AppArgs { */ appName: pulumi.Input; /** - * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + * The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. */ appType: pulumi.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 392ccc632f7..fbbc7f6a098 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -256,8 +256,10 @@ "bedrock/agentDataSource.ts", "bedrock/agentKnowledgeBase.ts", "bedrock/customModel.ts", + "bedrock/getAgentAgentVersions.ts", "bedrock/getCustomModel.ts", "bedrock/getCustomModels.ts", + "bedrock/guardrail.ts", "bedrock/index.ts", "bedrock/provisionedModelThroughput.ts", "bedrockfoundation/getModel.ts", @@ -355,6 +357,7 @@ "cloudtrail/eventDataStore.ts", "cloudtrail/getServiceAccount.ts", "cloudtrail/index.ts", + "cloudtrail/organizationDelegatedAdminAccount.ts", "cloudtrail/trail.ts", "cloudwatch/cloudwatchMixins.ts", "cloudwatch/compositeAlarm.ts", @@ -537,8 +540,11 @@ "datasync/task.ts", "datazone/domain.ts", "datazone/environmentBlueprintConfiguration.ts", + "datazone/environmentProfile.ts", + "datazone/formType.ts", "datazone/getEnvironmentBlueprint.ts", "datazone/glossary.ts", + "datazone/glossaryTerm.ts", "datazone/index.ts", "datazone/project.ts", "dax/cluster.ts", @@ -1596,6 +1602,7 @@ "pinpoint/app.ts", "pinpoint/baiduChannel.ts", "pinpoint/emailChannel.ts", + "pinpoint/emailTemplate.ts", "pinpoint/eventStream.ts", "pinpoint/gcmChannel.ts", "pinpoint/index.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 170e326d6b8..18f6e72378b 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -10054,6 +10054,17 @@ export namespace bedrock { update?: pulumi.Input; } + export interface AgentAgentKnowledgeBaseAssociationTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } + export interface AgentAgentPromptOverrideConfiguration { /** * ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `promptConfigurations` block must contain a `parserMode` value that is set to `OVERRIDDEN`. @@ -10459,6 +10470,233 @@ export namespace bedrock { subnetIds: pulumi.Input[]>; } + export interface GetAgentAgentVersionsAgentVersionSummary { + /** + * Name of agent to which the version belongs. + */ + agentName?: string; + /** + * Status of the agent to which the version belongs. + */ + agentStatus?: string; + /** + * Version of the agent. + */ + agentVersion?: string; + /** + * Time at which the version was created. + */ + createdAt?: string; + /** + * Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + */ + description?: string; + guardrailConfigurations?: inputs.bedrock.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration[]; + /** + * Time at which the version was last updated. + */ + updatedAt?: string; + } + + export interface GetAgentAgentVersionsAgentVersionSummaryArgs { + /** + * Name of agent to which the version belongs. + */ + agentName?: pulumi.Input; + /** + * Status of the agent to which the version belongs. + */ + agentStatus?: pulumi.Input; + /** + * Version of the agent. + */ + agentVersion?: pulumi.Input; + /** + * Time at which the version was created. + */ + createdAt?: pulumi.Input; + /** + * Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + */ + description?: pulumi.Input; + guardrailConfigurations?: pulumi.Input[]>; + /** + * Time at which the version was last updated. + */ + updatedAt?: pulumi.Input; + } + + export interface GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration { + /** + * Unique identifier of the guardrail. + */ + guardrailIdentifier?: string; + /** + * Version of the guardrail. + */ + guardrailVersion?: string; + } + + export interface GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs { + /** + * Unique identifier of the guardrail. + */ + guardrailIdentifier?: pulumi.Input; + /** + * Version of the guardrail. + */ + guardrailVersion?: pulumi.Input; + } + + export interface GuardrailContentPolicyConfig { + /** + * List of content filter configs in content policy. See Filters Config for more information. + */ + filtersConfigs?: pulumi.Input[]>; + } + + export interface GuardrailContentPolicyConfigFiltersConfig { + /** + * Strength for filters. + */ + inputStrength: pulumi.Input; + /** + * Strength for filters. + */ + outputStrength: pulumi.Input; + /** + * Type of contextual grounding filter. + */ + type: pulumi.Input; + } + + export interface GuardrailContextualGroundingPolicyConfig { + /** + * List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + */ + filtersConfigs?: pulumi.Input[]>; + } + + export interface GuardrailContextualGroundingPolicyConfigFiltersConfig { + /** + * The threshold for this filter. + */ + threshold: pulumi.Input; + /** + * Type of contextual grounding filter. + */ + type: pulumi.Input; + } + + export interface GuardrailSensitiveInformationPolicyConfig { + /** + * List of entities. See PII Entities Config for more information. + */ + piiEntitiesConfigs?: pulumi.Input[]>; + /** + * List of regex. See Regexes Config for more information. + */ + regexesConfigs?: pulumi.Input[]>; + } + + export interface GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + /** + * Options for sensitive information action. + */ + action: pulumi.Input; + /** + * The currently supported PII entities. + */ + type: pulumi.Input; + } + + export interface GuardrailSensitiveInformationPolicyConfigRegexesConfig { + /** + * Options for sensitive information action. + */ + action: pulumi.Input; + /** + * The regex description. + */ + description?: pulumi.Input; + /** + * The regex name. + */ + name: pulumi.Input; + /** + * The regex pattern. + */ + pattern: pulumi.Input; + } + + export interface GuardrailTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: pulumi.Input; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: pulumi.Input; + } + + export interface GuardrailTopicPolicyConfig { + /** + * List of topic configs in topic policy. See Topics Config for more information. + */ + topicsConfigs?: pulumi.Input[]>; + } + + export interface GuardrailTopicPolicyConfigTopicsConfig { + /** + * Definition of topic in topic policy. + */ + definition: pulumi.Input; + /** + * List of text examples. + */ + examples?: pulumi.Input[]>; + /** + * Name of topic in topic policy. + */ + name: pulumi.Input; + /** + * Type of topic in a policy. + */ + type: pulumi.Input; + } + + export interface GuardrailWordPolicyConfig { + /** + * A config for the list of managed words. See Managed Word Lists Config for more information. + */ + managedWordListsConfigs?: pulumi.Input[]>; + /** + * List of custom word configs. See Words Config for more information. + */ + wordsConfigs?: pulumi.Input[]>; + } + + export interface GuardrailWordPolicyConfigManagedWordListsConfig { + /** + * Options for managed words. + */ + type: pulumi.Input; + } + + export interface GuardrailWordPolicyConfigWordsConfig { + /** + * The custom word text. + */ + text: pulumi.Input; + } + export interface ProvisionedModelThroughputTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). @@ -14612,7 +14850,7 @@ export namespace codepipeline { */ category: pulumi.Input; /** - * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. */ configuration?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -18543,6 +18781,59 @@ export namespace datazone { delete?: pulumi.Input; } + export interface EnvironmentProfileUserParameter { + /** + * Name of the environment profile parameter. + */ + name?: pulumi.Input; + /** + * Value of the environment profile parameter. + */ + value?: pulumi.Input; + } + + export interface FormTypeImport { + /** + * Name of the form type. Must be the name of the structure in smithy document. + */ + name: pulumi.Input; + /** + * Revision of the Form Type. + */ + revision: pulumi.Input; + } + + export interface FormTypeModel { + /** + * Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + */ + smithy: pulumi.Input; + } + + export interface FormTypeTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + } + + export interface GlossaryTermTermRelations { + /** + * String array that calssifies the term relations. + */ + classifies?: pulumi.Input[]>; + isAs?: pulumi.Input[]>; + } + + export interface GlossaryTermTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: pulumi.Input; + } + export interface ProjectFailureReason { code: pulumi.Input; message: pulumi.Input; @@ -51309,16 +51600,16 @@ export namespace lex { export interface V2modelsSlotTypeSlotTypeValues { /** - * List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. + * Value of the slot type entry. See `sampleValue` argument reference below. */ - slotTypeValues: pulumi.Input[]>; + sampleValues?: pulumi.Input[]>; /** * Additional values related to the slot type entry. See `sampleValue` argument reference below. */ synonyms?: pulumi.Input[]>; } - export interface V2modelsSlotTypeSlotTypeValuesSlotTypeValue { + export interface V2modelsSlotTypeSlotTypeValuesSampleValue { /** * Value that can be used for a slot type. */ @@ -56379,7 +56670,7 @@ export namespace networkfirewall { export interface LoggingConfigurationLoggingConfiguration { /** - * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. */ logDestinationConfigs: pulumi.Input[]>; } @@ -56397,7 +56688,7 @@ export namespace networkfirewall { */ logDestinationType: pulumi.Input; /** - * The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. */ logType: pulumi.Input; } @@ -59322,6 +59613,42 @@ export namespace pinpoint { */ start?: pulumi.Input; } + + export interface EmailTemplateEmailTemplate { + /** + * JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + */ + defaultSubstitutions?: pulumi.Input; + description?: pulumi.Input; + headers?: pulumi.Input[]>; + /** + * The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + */ + htmlPart?: pulumi.Input; + /** + * The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + */ + recommenderId?: pulumi.Input; + /** + * Subject line, or title, to use in email messages that are based on the message template. + */ + subject?: pulumi.Input; + /** + * Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + */ + textPart?: pulumi.Input; + } + + export interface EmailTemplateEmailTemplateHeader { + /** + * Name of the message header. The header name can contain up to 126 characters. + */ + name?: pulumi.Input; + /** + * Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + */ + value?: pulumi.Input; + } } export namespace pipes { @@ -70964,7 +71291,7 @@ export namespace securitylake { */ regions: pulumi.Input[]>; /** - * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. */ sourceName: pulumi.Input; /** diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 860bfd5c9cc..c7739128f08 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -11242,6 +11242,17 @@ export namespace bedrock { update?: string; } + export interface AgentAgentKnowledgeBaseAssociationTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + export interface AgentAgentPromptOverrideConfiguration { /** * ARN of the Lambda function to use when parsing the raw foundation model output in parts of the agent sequence. If you specify this field, at least one of the `promptConfigurations` block must contain a `parserMode` value that is set to `OVERRIDDEN`. @@ -11647,6 +11658,46 @@ export namespace bedrock { subnetIds: string[]; } + export interface GetAgentAgentVersionsAgentVersionSummary { + /** + * Name of agent to which the version belongs. + */ + agentName: string; + /** + * Status of the agent to which the version belongs. + */ + agentStatus: string; + /** + * Version of the agent. + */ + agentVersion: string; + /** + * Time at which the version was created. + */ + createdAt: string; + /** + * Description of the version of the agent. + * * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + */ + description: string; + guardrailConfigurations?: outputs.bedrock.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration[]; + /** + * Time at which the version was last updated. + */ + updatedAt: string; + } + + export interface GetAgentAgentVersionsAgentVersionSummaryGuardrailConfiguration { + /** + * Unique identifier of the guardrail. + */ + guardrailIdentifier: string; + /** + * Version of the guardrail. + */ + guardrailVersion: string; + } + export interface GetCustomModelOutputDataConfig { /** * The S3 URI where the validation data is stored.. @@ -11704,6 +11755,153 @@ export namespace bedrock { modelName: string; } + export interface GuardrailContentPolicyConfig { + /** + * List of content filter configs in content policy. See Filters Config for more information. + */ + filtersConfigs?: outputs.bedrock.GuardrailContentPolicyConfigFiltersConfig[]; + } + + export interface GuardrailContentPolicyConfigFiltersConfig { + /** + * Strength for filters. + */ + inputStrength: string; + /** + * Strength for filters. + */ + outputStrength: string; + /** + * Type of contextual grounding filter. + */ + type: string; + } + + export interface GuardrailContextualGroundingPolicyConfig { + /** + * List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + */ + filtersConfigs?: outputs.bedrock.GuardrailContextualGroundingPolicyConfigFiltersConfig[]; + } + + export interface GuardrailContextualGroundingPolicyConfigFiltersConfig { + /** + * The threshold for this filter. + */ + threshold: number; + /** + * Type of contextual grounding filter. + */ + type: string; + } + + export interface GuardrailSensitiveInformationPolicyConfig { + /** + * List of entities. See PII Entities Config for more information. + */ + piiEntitiesConfigs?: outputs.bedrock.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig[]; + /** + * List of regex. See Regexes Config for more information. + */ + regexesConfigs?: outputs.bedrock.GuardrailSensitiveInformationPolicyConfigRegexesConfig[]; + } + + export interface GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig { + /** + * Options for sensitive information action. + */ + action: string; + /** + * The currently supported PII entities. + */ + type: string; + } + + export interface GuardrailSensitiveInformationPolicyConfigRegexesConfig { + /** + * Options for sensitive information action. + */ + action: string; + /** + * The regex description. + */ + description: string; + /** + * The regex name. + */ + name: string; + /** + * The regex pattern. + */ + pattern: string; + } + + export interface GuardrailTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + */ + delete?: string; + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + update?: string; + } + + export interface GuardrailTopicPolicyConfig { + /** + * List of topic configs in topic policy. See Topics Config for more information. + */ + topicsConfigs?: outputs.bedrock.GuardrailTopicPolicyConfigTopicsConfig[]; + } + + export interface GuardrailTopicPolicyConfigTopicsConfig { + /** + * Definition of topic in topic policy. + */ + definition: string; + /** + * List of text examples. + */ + examples: string[]; + /** + * Name of topic in topic policy. + */ + name: string; + /** + * Type of topic in a policy. + */ + type: string; + } + + export interface GuardrailWordPolicyConfig { + /** + * A config for the list of managed words. See Managed Word Lists Config for more information. + */ + managedWordListsConfigs?: outputs.bedrock.GuardrailWordPolicyConfigManagedWordListsConfig[]; + /** + * List of custom word configs. See Words Config for more information. + */ + wordsConfigs?: outputs.bedrock.GuardrailWordPolicyConfigWordsConfig[]; + } + + export interface GuardrailWordPolicyConfigManagedWordListsConfig { + /** + * Options for managed words. + */ + type: string; + } + + export interface GuardrailWordPolicyConfigWordsConfig { + /** + * The custom word text. + */ + text: string; + } + export interface ProvisionedModelThroughputTimeouts { /** * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). @@ -16356,7 +16554,7 @@ export namespace codepipeline { */ category: string; /** - * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + * A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. */ configuration?: {[key: string]: string}; /** @@ -22908,6 +23106,59 @@ export namespace datazone { delete?: string; } + export interface EnvironmentProfileUserParameter { + /** + * Name of the environment profile parameter. + */ + name?: string; + /** + * Value of the environment profile parameter. + */ + value?: string; + } + + export interface FormTypeImport { + /** + * Name of the form type. Must be the name of the structure in smithy document. + */ + name: string; + /** + * Revision of the Form Type. + */ + revision: string; + } + + export interface FormTypeModel { + /** + * Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + * + * The following arguments are optional: + */ + smithy: string; + } + + export interface FormTypeTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + } + + export interface GlossaryTermTermRelations { + /** + * String array that calssifies the term relations. + */ + classifies?: string[]; + isAs?: string[]; + } + + export interface GlossaryTermTimeouts { + /** + * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + */ + create?: string; + } + export interface ProjectFailureReason { code: string; message: string; @@ -58355,16 +58606,16 @@ export namespace lex { export interface V2modelsSlotTypeSlotTypeValues { /** - * List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slotTypeValues` argument reference below. + * Value of the slot type entry. See `sampleValue` argument reference below. */ - slotTypeValues: outputs.lex.V2modelsSlotTypeSlotTypeValuesSlotTypeValue[]; + sampleValues?: outputs.lex.V2modelsSlotTypeSlotTypeValuesSampleValue[]; /** * Additional values related to the slot type entry. See `sampleValue` argument reference below. */ synonyms?: outputs.lex.V2modelsSlotTypeSlotTypeValuesSynonym[]; } - export interface V2modelsSlotTypeSlotTypeValuesSlotTypeValue { + export interface V2modelsSlotTypeSlotTypeValuesSampleValue { /** * Value that can be used for a slot type. */ @@ -63973,7 +64224,7 @@ export namespace networkfirewall { export interface LoggingConfigurationLoggingConfiguration { /** - * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + * Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. */ logDestinationConfigs: outputs.networkfirewall.LoggingConfigurationLoggingConfigurationLogDestinationConfig[]; } @@ -63991,7 +64242,7 @@ export namespace networkfirewall { */ logDestinationType: string; /** - * The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + * The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. */ logType: string; } @@ -67153,6 +67404,42 @@ export namespace pinpoint { start?: string; } + export interface EmailTemplateEmailTemplate { + /** + * JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + */ + defaultSubstitutions?: string; + description?: string; + headers?: outputs.pinpoint.EmailTemplateEmailTemplateHeader[]; + /** + * The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + */ + htmlPart?: string; + /** + * The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + */ + recommenderId?: string; + /** + * Subject line, or title, to use in email messages that are based on the message template. + */ + subject?: string; + /** + * Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + */ + textPart?: string; + } + + export interface EmailTemplateEmailTemplateHeader { + /** + * Name of the message header. The header name can contain up to 126 characters. + */ + name?: string; + /** + * Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + */ + value?: string; + } + } export namespace pipes { @@ -79144,7 +79431,7 @@ export namespace securitylake { */ regions: string[]; /** - * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + * The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. */ sourceName: string; /** diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 30320eb9f6d..dc74e52a6e9 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -1945,6 +1945,14 @@ "aws:bedrock/customModel:CustomModel": "CustomModel" } }, + { + "pkg": "aws", + "mod": "bedrock/guardrail", + "fqn": "pulumi_aws.bedrock", + "classes": { + "aws:bedrock/guardrail:Guardrail": "Guardrail" + } + }, { "pkg": "aws", "mod": "bedrock/provisionedModelThroughput", @@ -2433,6 +2441,14 @@ "aws:cloudtrail/eventDataStore:EventDataStore": "EventDataStore" } }, + { + "pkg": "aws", + "mod": "cloudtrail/organizationDelegatedAdminAccount", + "fqn": "pulumi_aws.cloudtrail", + "classes": { + "aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount": "OrganizationDelegatedAdminAccount" + } + }, { "pkg": "aws", "mod": "cloudtrail/trail", @@ -3329,6 +3345,22 @@ "aws:datazone/environmentBlueprintConfiguration:EnvironmentBlueprintConfiguration": "EnvironmentBlueprintConfiguration" } }, + { + "pkg": "aws", + "mod": "datazone/environmentProfile", + "fqn": "pulumi_aws.datazone", + "classes": { + "aws:datazone/environmentProfile:EnvironmentProfile": "EnvironmentProfile" + } + }, + { + "pkg": "aws", + "mod": "datazone/formType", + "fqn": "pulumi_aws.datazone", + "classes": { + "aws:datazone/formType:FormType": "FormType" + } + }, { "pkg": "aws", "mod": "datazone/glossary", @@ -3337,6 +3369,14 @@ "aws:datazone/glossary:Glossary": "Glossary" } }, + { + "pkg": "aws", + "mod": "datazone/glossaryTerm", + "fqn": "pulumi_aws.datazone", + "classes": { + "aws:datazone/glossaryTerm:GlossaryTerm": "GlossaryTerm" + } + }, { "pkg": "aws", "mod": "datazone/project", @@ -8473,6 +8513,14 @@ "aws:pinpoint/emailChannel:EmailChannel": "EmailChannel" } }, + { + "pkg": "aws", + "mod": "pinpoint/emailTemplate", + "fqn": "pulumi_aws.pinpoint", + "classes": { + "aws:pinpoint/emailTemplate:EmailTemplate": "EmailTemplate" + } + }, { "pkg": "aws", "mod": "pinpoint/eventStream", diff --git a/sdk/python/pulumi_aws/alb/listener.py b/sdk/python/pulumi_aws/alb/listener.py index d87e507d57c..e76146817d6 100644 --- a/sdk/python/pulumi_aws/alb/listener.py +++ b/sdk/python/pulumi_aws/alb/listener.py @@ -41,7 +41,7 @@ def __init__(__self__, *, :param pulumi.Input['ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -153,7 +153,7 @@ def protocol(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> Optional[pulumi.Input[str]]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") @@ -202,7 +202,7 @@ def __init__(__self__, *, :param pulumi.Input['ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -336,7 +336,7 @@ def protocol(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> Optional[pulumi.Input[str]]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") @@ -424,6 +424,7 @@ def __init__(__self__, load_balancer_arn=front_end_aws_lb["arn"], port=443, protocol="TLS", + ssl_policy="ELBSecurityPolicy-2016-08", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpn_policy="HTTP2Preferred", default_actions=[{ @@ -604,7 +605,7 @@ def __init__(__self__, :param pulumi.Input[Union['ListenerMutualAuthenticationArgs', 'ListenerMutualAuthenticationArgsDict']] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -652,6 +653,7 @@ def __init__(__self__, load_balancer_arn=front_end_aws_lb["arn"], port=443, protocol="TLS", + ssl_policy="ELBSecurityPolicy-2016-08", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpn_policy="HTTP2Preferred", default_actions=[{ @@ -909,7 +911,7 @@ def get(resource_name: str, :param pulumi.Input[Union['ListenerMutualAuthenticationArgs', 'ListenerMutualAuthenticationArgsDict']] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -1002,7 +1004,7 @@ def protocol(self) -> pulumi.Output[str]: @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> pulumi.Output[str]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") diff --git a/sdk/python/pulumi_aws/bedrock/__init__.py b/sdk/python/pulumi_aws/bedrock/__init__.py index 2d86ca8661c..fe6f570716f 100644 --- a/sdk/python/pulumi_aws/bedrock/__init__.py +++ b/sdk/python/pulumi_aws/bedrock/__init__.py @@ -12,8 +12,10 @@ from .agent_data_source import * from .agent_knowledge_base import * from .custom_model import * +from .get_agent_agent_versions import * from .get_custom_model import * from .get_custom_models import * +from .guardrail import * from .provisioned_model_throughput import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/bedrock/_inputs.py b/sdk/python/pulumi_aws/bedrock/_inputs.py index f2156f2d12f..980cbe25951 100644 --- a/sdk/python/pulumi_aws/bedrock/_inputs.py +++ b/sdk/python/pulumi_aws/bedrock/_inputs.py @@ -33,6 +33,8 @@ 'AgentAgentAliasRoutingConfigurationArgsDict', 'AgentAgentAliasTimeoutsArgs', 'AgentAgentAliasTimeoutsArgsDict', + 'AgentAgentKnowledgeBaseAssociationTimeoutsArgs', + 'AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict', 'AgentAgentPromptOverrideConfigurationArgs', 'AgentAgentPromptOverrideConfigurationArgsDict', 'AgentAgentPromptOverrideConfigurationPromptConfigurationArgs', @@ -95,8 +97,38 @@ 'CustomModelValidationMetricArgsDict', 'CustomModelVpcConfigArgs', 'CustomModelVpcConfigArgsDict', + 'GuardrailContentPolicyConfigArgs', + 'GuardrailContentPolicyConfigArgsDict', + 'GuardrailContentPolicyConfigFiltersConfigArgs', + 'GuardrailContentPolicyConfigFiltersConfigArgsDict', + 'GuardrailContextualGroundingPolicyConfigArgs', + 'GuardrailContextualGroundingPolicyConfigArgsDict', + 'GuardrailContextualGroundingPolicyConfigFiltersConfigArgs', + 'GuardrailContextualGroundingPolicyConfigFiltersConfigArgsDict', + 'GuardrailSensitiveInformationPolicyConfigArgs', + 'GuardrailSensitiveInformationPolicyConfigArgsDict', + 'GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs', + 'GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgsDict', + 'GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs', + 'GuardrailSensitiveInformationPolicyConfigRegexesConfigArgsDict', + 'GuardrailTimeoutsArgs', + 'GuardrailTimeoutsArgsDict', + 'GuardrailTopicPolicyConfigArgs', + 'GuardrailTopicPolicyConfigArgsDict', + 'GuardrailTopicPolicyConfigTopicsConfigArgs', + 'GuardrailTopicPolicyConfigTopicsConfigArgsDict', + 'GuardrailWordPolicyConfigArgs', + 'GuardrailWordPolicyConfigArgsDict', + 'GuardrailWordPolicyConfigManagedWordListsConfigArgs', + 'GuardrailWordPolicyConfigManagedWordListsConfigArgsDict', + 'GuardrailWordPolicyConfigWordsConfigArgs', + 'GuardrailWordPolicyConfigWordsConfigArgsDict', 'ProvisionedModelThroughputTimeoutsArgs', 'ProvisionedModelThroughputTimeoutsArgsDict', + 'GetAgentAgentVersionsAgentVersionSummaryArgs', + 'GetAgentAgentVersionsAgentVersionSummaryArgsDict', + 'GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs', + 'GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgsDict', ] MYPY = False @@ -631,6 +663,58 @@ def update(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "update", value) +if not MYPY: + class AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AgentAgentKnowledgeBaseAssociationTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + if not MYPY: class AgentAgentPromptOverrideConfigurationArgsDict(TypedDict): override_lambda: pulumi.Input[str] @@ -2521,34 +2605,907 @@ def subnet_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): if not MYPY: - class ProvisionedModelThroughputTimeoutsArgsDict(TypedDict): - create: NotRequired[pulumi.Input[str]] + class GuardrailContentPolicyConfigArgsDict(TypedDict): + filters_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailContentPolicyConfigFiltersConfigArgsDict']]]] """ - A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + List of content filter configs in content policy. See Filters Config for more information. """ elif False: - ProvisionedModelThroughputTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + GuardrailContentPolicyConfigArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ProvisionedModelThroughputTimeoutsArgs: +class GuardrailContentPolicyConfigArgs: def __init__(__self__, *, - create: Optional[pulumi.Input[str]] = None): + filters_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContentPolicyConfigFiltersConfigArgs']]]] = None): """ - :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[Sequence[pulumi.Input['GuardrailContentPolicyConfigFiltersConfigArgs']]] filters_configs: List of content filter configs in content policy. See Filters Config for more information. """ - if create is not None: - pulumi.set(__self__, "create", create) + if filters_configs is not None: + pulumi.set(__self__, "filters_configs", filters_configs) + + @property + @pulumi.getter(name="filtersConfigs") + def filters_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContentPolicyConfigFiltersConfigArgs']]]]: + """ + List of content filter configs in content policy. See Filters Config for more information. + """ + return pulumi.get(self, "filters_configs") + + @filters_configs.setter + def filters_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContentPolicyConfigFiltersConfigArgs']]]]): + pulumi.set(self, "filters_configs", value) + + +if not MYPY: + class GuardrailContentPolicyConfigFiltersConfigArgsDict(TypedDict): + input_strength: pulumi.Input[str] + """ + Strength for filters. + """ + output_strength: pulumi.Input[str] + """ + Strength for filters. + """ + type: pulumi.Input[str] + """ + Type of contextual grounding filter. + """ +elif False: + GuardrailContentPolicyConfigFiltersConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailContentPolicyConfigFiltersConfigArgs: + def __init__(__self__, *, + input_strength: pulumi.Input[str], + output_strength: pulumi.Input[str], + type: pulumi.Input[str]): + """ + :param pulumi.Input[str] input_strength: Strength for filters. + :param pulumi.Input[str] output_strength: Strength for filters. + :param pulumi.Input[str] type: Type of contextual grounding filter. + """ + pulumi.set(__self__, "input_strength", input_strength) + pulumi.set(__self__, "output_strength", output_strength) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="inputStrength") + def input_strength(self) -> pulumi.Input[str]: + """ + Strength for filters. + """ + return pulumi.get(self, "input_strength") + + @input_strength.setter + def input_strength(self, value: pulumi.Input[str]): + pulumi.set(self, "input_strength", value) + + @property + @pulumi.getter(name="outputStrength") + def output_strength(self) -> pulumi.Input[str]: + """ + Strength for filters. + """ + return pulumi.get(self, "output_strength") + + @output_strength.setter + def output_strength(self, value: pulumi.Input[str]): + pulumi.set(self, "output_strength", value) @property @pulumi.getter - def create(self) -> Optional[pulumi.Input[str]]: + def type(self) -> pulumi.Input[str]: """ - A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Type of contextual grounding filter. """ - return pulumi.get(self, "create") + return pulumi.get(self, "type") - @create.setter - def create(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "create", value) + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + +if not MYPY: + class GuardrailContextualGroundingPolicyConfigArgsDict(TypedDict): + filters_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailContextualGroundingPolicyConfigFiltersConfigArgsDict']]]] + """ + List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + """ +elif False: + GuardrailContextualGroundingPolicyConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailContextualGroundingPolicyConfigArgs: + def __init__(__self__, *, + filters_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContextualGroundingPolicyConfigFiltersConfigArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['GuardrailContextualGroundingPolicyConfigFiltersConfigArgs']]] filters_configs: List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + """ + if filters_configs is not None: + pulumi.set(__self__, "filters_configs", filters_configs) + + @property + @pulumi.getter(name="filtersConfigs") + def filters_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContextualGroundingPolicyConfigFiltersConfigArgs']]]]: + """ + List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + """ + return pulumi.get(self, "filters_configs") + + @filters_configs.setter + def filters_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailContextualGroundingPolicyConfigFiltersConfigArgs']]]]): + pulumi.set(self, "filters_configs", value) + + +if not MYPY: + class GuardrailContextualGroundingPolicyConfigFiltersConfigArgsDict(TypedDict): + threshold: pulumi.Input[float] + """ + The threshold for this filter. + """ + type: pulumi.Input[str] + """ + Type of contextual grounding filter. + """ +elif False: + GuardrailContextualGroundingPolicyConfigFiltersConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailContextualGroundingPolicyConfigFiltersConfigArgs: + def __init__(__self__, *, + threshold: pulumi.Input[float], + type: pulumi.Input[str]): + """ + :param pulumi.Input[float] threshold: The threshold for this filter. + :param pulumi.Input[str] type: Type of contextual grounding filter. + """ + pulumi.set(__self__, "threshold", threshold) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def threshold(self) -> pulumi.Input[float]: + """ + The threshold for this filter. + """ + return pulumi.get(self, "threshold") + + @threshold.setter + def threshold(self, value: pulumi.Input[float]): + pulumi.set(self, "threshold", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Type of contextual grounding filter. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + +if not MYPY: + class GuardrailSensitiveInformationPolicyConfigArgsDict(TypedDict): + pii_entities_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgsDict']]]] + """ + List of entities. See PII Entities Config for more information. + """ + regexes_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgsDict']]]] + """ + List of regex. See Regexes Config for more information. + """ +elif False: + GuardrailSensitiveInformationPolicyConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailSensitiveInformationPolicyConfigArgs: + def __init__(__self__, *, + pii_entities_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs']]]] = None, + regexes_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs']]] pii_entities_configs: List of entities. See PII Entities Config for more information. + :param pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs']]] regexes_configs: List of regex. See Regexes Config for more information. + """ + if pii_entities_configs is not None: + pulumi.set(__self__, "pii_entities_configs", pii_entities_configs) + if regexes_configs is not None: + pulumi.set(__self__, "regexes_configs", regexes_configs) + + @property + @pulumi.getter(name="piiEntitiesConfigs") + def pii_entities_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs']]]]: + """ + List of entities. See PII Entities Config for more information. + """ + return pulumi.get(self, "pii_entities_configs") + + @pii_entities_configs.setter + def pii_entities_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs']]]]): + pulumi.set(self, "pii_entities_configs", value) + + @property + @pulumi.getter(name="regexesConfigs") + def regexes_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs']]]]: + """ + List of regex. See Regexes Config for more information. + """ + return pulumi.get(self, "regexes_configs") + + @regexes_configs.setter + def regexes_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs']]]]): + pulumi.set(self, "regexes_configs", value) + + +if not MYPY: + class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgsDict(TypedDict): + action: pulumi.Input[str] + """ + Options for sensitive information action. + """ + type: pulumi.Input[str] + """ + The currently supported PII entities. + """ +elif False: + GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs: + def __init__(__self__, *, + action: pulumi.Input[str], + type: pulumi.Input[str]): + """ + :param pulumi.Input[str] action: Options for sensitive information action. + :param pulumi.Input[str] type: The currently supported PII entities. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def action(self) -> pulumi.Input[str]: + """ + Options for sensitive information action. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: pulumi.Input[str]): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The currently supported PII entities. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + +if not MYPY: + class GuardrailSensitiveInformationPolicyConfigRegexesConfigArgsDict(TypedDict): + action: pulumi.Input[str] + """ + Options for sensitive information action. + """ + name: pulumi.Input[str] + """ + The regex name. + """ + pattern: pulumi.Input[str] + """ + The regex pattern. + """ + description: NotRequired[pulumi.Input[str]] + """ + The regex description. + """ +elif False: + GuardrailSensitiveInformationPolicyConfigRegexesConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs: + def __init__(__self__, *, + action: pulumi.Input[str], + name: pulumi.Input[str], + pattern: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] action: Options for sensitive information action. + :param pulumi.Input[str] name: The regex name. + :param pulumi.Input[str] pattern: The regex pattern. + :param pulumi.Input[str] description: The regex description. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "pattern", pattern) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def action(self) -> pulumi.Input[str]: + """ + Options for sensitive information action. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: pulumi.Input[str]): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The regex name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def pattern(self) -> pulumi.Input[str]: + """ + The regex pattern. + """ + return pulumi.get(self, "pattern") + + @pattern.setter + def pattern(self, value: pulumi.Input[str]): + pulumi.set(self, "pattern", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The regex description. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + +if not MYPY: + class GuardrailTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + delete: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + update: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + GuardrailTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: Optional[pulumi.Input[str]] = None, + update: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + @property + @pulumi.getter + def delete(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @delete.setter + def delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "delete", value) + + @property + @pulumi.getter + def update(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @update.setter + def update(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update", value) + + +if not MYPY: + class GuardrailTopicPolicyConfigArgsDict(TypedDict): + topics_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailTopicPolicyConfigTopicsConfigArgsDict']]]] + """ + List of topic configs in topic policy. See Topics Config for more information. + """ +elif False: + GuardrailTopicPolicyConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailTopicPolicyConfigArgs: + def __init__(__self__, *, + topics_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailTopicPolicyConfigTopicsConfigArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['GuardrailTopicPolicyConfigTopicsConfigArgs']]] topics_configs: List of topic configs in topic policy. See Topics Config for more information. + """ + if topics_configs is not None: + pulumi.set(__self__, "topics_configs", topics_configs) + + @property + @pulumi.getter(name="topicsConfigs") + def topics_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailTopicPolicyConfigTopicsConfigArgs']]]]: + """ + List of topic configs in topic policy. See Topics Config for more information. + """ + return pulumi.get(self, "topics_configs") + + @topics_configs.setter + def topics_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailTopicPolicyConfigTopicsConfigArgs']]]]): + pulumi.set(self, "topics_configs", value) + + +if not MYPY: + class GuardrailTopicPolicyConfigTopicsConfigArgsDict(TypedDict): + definition: pulumi.Input[str] + """ + Definition of topic in topic policy. + """ + name: pulumi.Input[str] + """ + Name of topic in topic policy. + """ + type: pulumi.Input[str] + """ + Type of topic in a policy. + """ + examples: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + List of text examples. + """ +elif False: + GuardrailTopicPolicyConfigTopicsConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailTopicPolicyConfigTopicsConfigArgs: + def __init__(__self__, *, + definition: pulumi.Input[str], + name: pulumi.Input[str], + type: pulumi.Input[str], + examples: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[str] definition: Definition of topic in topic policy. + :param pulumi.Input[str] name: Name of topic in topic policy. + :param pulumi.Input[str] type: Type of topic in a policy. + :param pulumi.Input[Sequence[pulumi.Input[str]]] examples: List of text examples. + """ + pulumi.set(__self__, "definition", definition) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "type", type) + if examples is not None: + pulumi.set(__self__, "examples", examples) + + @property + @pulumi.getter + def definition(self) -> pulumi.Input[str]: + """ + Definition of topic in topic policy. + """ + return pulumi.get(self, "definition") + + @definition.setter + def definition(self, value: pulumi.Input[str]): + pulumi.set(self, "definition", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name of topic in topic policy. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Type of topic in a policy. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def examples(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of text examples. + """ + return pulumi.get(self, "examples") + + @examples.setter + def examples(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "examples", value) + + +if not MYPY: + class GuardrailWordPolicyConfigArgsDict(TypedDict): + managed_word_lists_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgsDict']]]] + """ + A config for the list of managed words. See Managed Word Lists Config for more information. + """ + words_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigWordsConfigArgsDict']]]] + """ + List of custom word configs. See Words Config for more information. + """ +elif False: + GuardrailWordPolicyConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailWordPolicyConfigArgs: + def __init__(__self__, *, + managed_word_lists_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgs']]]] = None, + words_configs: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigWordsConfigArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgs']]] managed_word_lists_configs: A config for the list of managed words. See Managed Word Lists Config for more information. + :param pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigWordsConfigArgs']]] words_configs: List of custom word configs. See Words Config for more information. + """ + if managed_word_lists_configs is not None: + pulumi.set(__self__, "managed_word_lists_configs", managed_word_lists_configs) + if words_configs is not None: + pulumi.set(__self__, "words_configs", words_configs) + + @property + @pulumi.getter(name="managedWordListsConfigs") + def managed_word_lists_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgs']]]]: + """ + A config for the list of managed words. See Managed Word Lists Config for more information. + """ + return pulumi.get(self, "managed_word_lists_configs") + + @managed_word_lists_configs.setter + def managed_word_lists_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigManagedWordListsConfigArgs']]]]): + pulumi.set(self, "managed_word_lists_configs", value) + + @property + @pulumi.getter(name="wordsConfigs") + def words_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigWordsConfigArgs']]]]: + """ + List of custom word configs. See Words Config for more information. + """ + return pulumi.get(self, "words_configs") + + @words_configs.setter + def words_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['GuardrailWordPolicyConfigWordsConfigArgs']]]]): + pulumi.set(self, "words_configs", value) + + +if not MYPY: + class GuardrailWordPolicyConfigManagedWordListsConfigArgsDict(TypedDict): + type: pulumi.Input[str] + """ + Options for managed words. + """ +elif False: + GuardrailWordPolicyConfigManagedWordListsConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailWordPolicyConfigManagedWordListsConfigArgs: + def __init__(__self__, *, + type: pulumi.Input[str]): + """ + :param pulumi.Input[str] type: Options for managed words. + """ + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Options for managed words. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + +if not MYPY: + class GuardrailWordPolicyConfigWordsConfigArgsDict(TypedDict): + text: pulumi.Input[str] + """ + The custom word text. + """ +elif False: + GuardrailWordPolicyConfigWordsConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GuardrailWordPolicyConfigWordsConfigArgs: + def __init__(__self__, *, + text: pulumi.Input[str]): + """ + :param pulumi.Input[str] text: The custom word text. + """ + pulumi.set(__self__, "text", text) + + @property + @pulumi.getter + def text(self) -> pulumi.Input[str]: + """ + The custom word text. + """ + return pulumi.get(self, "text") + + @text.setter + def text(self, value: pulumi.Input[str]): + pulumi.set(self, "text", value) + + +if not MYPY: + class ProvisionedModelThroughputTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + ProvisionedModelThroughputTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ProvisionedModelThroughputTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + +if not MYPY: + class GetAgentAgentVersionsAgentVersionSummaryArgsDict(TypedDict): + agent_name: str + """ + Name of agent to which the version belongs. + """ + agent_status: str + """ + Status of the agent to which the version belongs. + """ + agent_version: str + """ + Version of the agent. + """ + created_at: str + """ + Time at which the version was created. + """ + description: str + """ + Description of the version of the agent. + * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + """ + updated_at: str + """ + Time at which the version was last updated. + """ + guardrail_configurations: NotRequired[Sequence['GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgsDict']] +elif False: + GetAgentAgentVersionsAgentVersionSummaryArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetAgentAgentVersionsAgentVersionSummaryArgs: + def __init__(__self__, *, + agent_name: str, + agent_status: str, + agent_version: str, + created_at: str, + description: str, + updated_at: str, + guardrail_configurations: Optional[Sequence['GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs']] = None): + """ + :param str agent_name: Name of agent to which the version belongs. + :param str agent_status: Status of the agent to which the version belongs. + :param str agent_version: Version of the agent. + :param str created_at: Time at which the version was created. + :param str description: Description of the version of the agent. + * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + :param str updated_at: Time at which the version was last updated. + """ + pulumi.set(__self__, "agent_name", agent_name) + pulumi.set(__self__, "agent_status", agent_status) + pulumi.set(__self__, "agent_version", agent_version) + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "updated_at", updated_at) + if guardrail_configurations is not None: + pulumi.set(__self__, "guardrail_configurations", guardrail_configurations) + + @property + @pulumi.getter(name="agentName") + def agent_name(self) -> str: + """ + Name of agent to which the version belongs. + """ + return pulumi.get(self, "agent_name") + + @agent_name.setter + def agent_name(self, value: str): + pulumi.set(self, "agent_name", value) + + @property + @pulumi.getter(name="agentStatus") + def agent_status(self) -> str: + """ + Status of the agent to which the version belongs. + """ + return pulumi.get(self, "agent_status") + + @agent_status.setter + def agent_status(self, value: str): + pulumi.set(self, "agent_status", value) + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> str: + """ + Version of the agent. + """ + return pulumi.get(self, "agent_version") + + @agent_version.setter + def agent_version(self, value: str): + pulumi.set(self, "agent_version", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + """ + Time at which the version was created. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: str): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def description(self) -> str: + """ + Description of the version of the agent. + * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: str): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + """ + Time at which the version was last updated. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: str): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter(name="guardrailConfigurations") + def guardrail_configurations(self) -> Optional[Sequence['GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs']]: + return pulumi.get(self, "guardrail_configurations") + + @guardrail_configurations.setter + def guardrail_configurations(self, value: Optional[Sequence['GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs']]): + pulumi.set(self, "guardrail_configurations", value) + + +if not MYPY: + class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgsDict(TypedDict): + guardrail_identifier: str + """ + Unique identifier of the guardrail. + """ + guardrail_version: str + """ + Version of the guardrail. + """ +elif False: + GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationArgs: + def __init__(__self__, *, + guardrail_identifier: str, + guardrail_version: str): + """ + :param str guardrail_identifier: Unique identifier of the guardrail. + :param str guardrail_version: Version of the guardrail. + """ + pulumi.set(__self__, "guardrail_identifier", guardrail_identifier) + pulumi.set(__self__, "guardrail_version", guardrail_version) + + @property + @pulumi.getter(name="guardrailIdentifier") + def guardrail_identifier(self) -> str: + """ + Unique identifier of the guardrail. + """ + return pulumi.get(self, "guardrail_identifier") + + @guardrail_identifier.setter + def guardrail_identifier(self, value: str): + pulumi.set(self, "guardrail_identifier", value) + + @property + @pulumi.getter(name="guardrailVersion") + def guardrail_version(self) -> str: + """ + Version of the guardrail. + """ + return pulumi.get(self, "guardrail_version") + + @guardrail_version.setter + def guardrail_version(self, value: str): + pulumi.set(self, "guardrail_version", value) diff --git a/sdk/python/pulumi_aws/bedrock/agent_agent_knowledge_base_association.py b/sdk/python/pulumi_aws/bedrock/agent_agent_knowledge_base_association.py index 76310e187bb..f333f4b9d62 100644 --- a/sdk/python/pulumi_aws/bedrock/agent_agent_knowledge_base_association.py +++ b/sdk/python/pulumi_aws/bedrock/agent_agent_knowledge_base_association.py @@ -13,6 +13,8 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs +from ._inputs import * __all__ = ['AgentAgentKnowledgeBaseAssociationArgs', 'AgentAgentKnowledgeBaseAssociation'] @@ -23,7 +25,8 @@ def __init__(__self__, *, description: pulumi.Input[str], knowledge_base_id: pulumi.Input[str], knowledge_base_state: pulumi.Input[str], - agent_version: Optional[pulumi.Input[str]] = None): + agent_version: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']] = None): """ The set of arguments for constructing a AgentAgentKnowledgeBaseAssociation resource. :param pulumi.Input[str] agent_id: Unique identifier of the agent with which you want to associate the knowledge base. @@ -40,6 +43,8 @@ def __init__(__self__, *, pulumi.set(__self__, "knowledge_base_state", knowledge_base_state) if agent_version is not None: pulumi.set(__self__, "agent_version", agent_version) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) @property @pulumi.getter(name="agentId") @@ -103,6 +108,15 @@ def agent_version(self) -> Optional[pulumi.Input[str]]: def agent_version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "agent_version", value) + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + @pulumi.input_type class _AgentAgentKnowledgeBaseAssociationState: @@ -111,7 +125,8 @@ def __init__(__self__, *, agent_version: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, knowledge_base_id: Optional[pulumi.Input[str]] = None, - knowledge_base_state: Optional[pulumi.Input[str]] = None): + knowledge_base_state: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']] = None): """ Input properties used for looking up and filtering AgentAgentKnowledgeBaseAssociation resources. :param pulumi.Input[str] agent_id: Unique identifier of the agent with which you want to associate the knowledge base. @@ -132,6 +147,8 @@ def __init__(__self__, *, pulumi.set(__self__, "knowledge_base_id", knowledge_base_id) if knowledge_base_state is not None: pulumi.set(__self__, "knowledge_base_state", knowledge_base_state) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) @property @pulumi.getter(name="agentId") @@ -195,6 +212,15 @@ def knowledge_base_state(self) -> Optional[pulumi.Input[str]]: def knowledge_base_state(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "knowledge_base_state", value) + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['AgentAgentKnowledgeBaseAssociationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + class AgentAgentKnowledgeBaseAssociation(pulumi.CustomResource): @overload @@ -206,6 +232,7 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, knowledge_base_id: Optional[pulumi.Input[str]] = None, knowledge_base_state: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentKnowledgeBaseAssociationTimeoutsArgs', 'AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict']]] = None, __props__=None): """ Resource for managing an AWS Agents for Amazon Bedrock Agent Knowledge Base Association. @@ -295,6 +322,7 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, knowledge_base_id: Optional[pulumi.Input[str]] = None, knowledge_base_state: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentKnowledgeBaseAssociationTimeoutsArgs', 'AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -317,6 +345,7 @@ def _internal_init(__self__, if knowledge_base_state is None and not opts.urn: raise TypeError("Missing required property 'knowledge_base_state'") __props__.__dict__["knowledge_base_state"] = knowledge_base_state + __props__.__dict__["timeouts"] = timeouts super(AgentAgentKnowledgeBaseAssociation, __self__).__init__( 'aws:bedrock/agentAgentKnowledgeBaseAssociation:AgentAgentKnowledgeBaseAssociation', resource_name, @@ -331,7 +360,8 @@ def get(resource_name: str, agent_version: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, knowledge_base_id: Optional[pulumi.Input[str]] = None, - knowledge_base_state: Optional[pulumi.Input[str]] = None) -> 'AgentAgentKnowledgeBaseAssociation': + knowledge_base_state: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['AgentAgentKnowledgeBaseAssociationTimeoutsArgs', 'AgentAgentKnowledgeBaseAssociationTimeoutsArgsDict']]] = None) -> 'AgentAgentKnowledgeBaseAssociation': """ Get an existing AgentAgentKnowledgeBaseAssociation resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -356,6 +386,7 @@ def get(resource_name: str, __props__.__dict__["description"] = description __props__.__dict__["knowledge_base_id"] = knowledge_base_id __props__.__dict__["knowledge_base_state"] = knowledge_base_state + __props__.__dict__["timeouts"] = timeouts return AgentAgentKnowledgeBaseAssociation(resource_name, opts=opts, __props__=__props__) @property @@ -400,3 +431,8 @@ def knowledge_base_state(self) -> pulumi.Output[str]: """ return pulumi.get(self, "knowledge_base_state") + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.AgentAgentKnowledgeBaseAssociationTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/bedrock/get_agent_agent_versions.py b/sdk/python/pulumi_aws/bedrock/get_agent_agent_versions.py new file mode 100644 index 00000000000..108d87f63dd --- /dev/null +++ b/sdk/python/pulumi_aws/bedrock/get_agent_agent_versions.py @@ -0,0 +1,130 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetAgentAgentVersionsResult', + 'AwaitableGetAgentAgentVersionsResult', + 'get_agent_agent_versions', + 'get_agent_agent_versions_output', +] + +@pulumi.output_type +class GetAgentAgentVersionsResult: + """ + A collection of values returned by getAgentAgentVersions. + """ + def __init__(__self__, agent_id=None, agent_version_summaries=None, id=None): + if agent_id and not isinstance(agent_id, str): + raise TypeError("Expected argument 'agent_id' to be a str") + pulumi.set(__self__, "agent_id", agent_id) + if agent_version_summaries and not isinstance(agent_version_summaries, list): + raise TypeError("Expected argument 'agent_version_summaries' to be a list") + pulumi.set(__self__, "agent_version_summaries", agent_version_summaries) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + + @property + @pulumi.getter(name="agentId") + def agent_id(self) -> str: + return pulumi.get(self, "agent_id") + + @property + @pulumi.getter(name="agentVersionSummaries") + def agent_version_summaries(self) -> Optional[Sequence['outputs.GetAgentAgentVersionsAgentVersionSummaryResult']]: + """ + List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + """ + return pulumi.get(self, "agent_version_summaries") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + +class AwaitableGetAgentAgentVersionsResult(GetAgentAgentVersionsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAgentAgentVersionsResult( + agent_id=self.agent_id, + agent_version_summaries=self.agent_version_summaries, + id=self.id) + + +def get_agent_agent_versions(agent_id: Optional[str] = None, + agent_version_summaries: Optional[Sequence[Union['GetAgentAgentVersionsAgentVersionSummaryArgs', 'GetAgentAgentVersionsAgentVersionSummaryArgsDict']]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAgentAgentVersionsResult: + """ + Data source for managing an AWS Amazon BedrockAgent Agent Versions. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.bedrock.get_agent_agent_versions(agent_id=test_aws_bedrockagent_agent["agentId"]) + ``` + + + :param str agent_id: Unique identifier of the agent. + :param Sequence[Union['GetAgentAgentVersionsAgentVersionSummaryArgs', 'GetAgentAgentVersionsAgentVersionSummaryArgsDict']] agent_version_summaries: List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + """ + __args__ = dict() + __args__['agentId'] = agent_id + __args__['agentVersionSummaries'] = agent_version_summaries + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:bedrock/getAgentAgentVersions:getAgentAgentVersions', __args__, opts=opts, typ=GetAgentAgentVersionsResult).value + + return AwaitableGetAgentAgentVersionsResult( + agent_id=pulumi.get(__ret__, 'agent_id'), + agent_version_summaries=pulumi.get(__ret__, 'agent_version_summaries'), + id=pulumi.get(__ret__, 'id')) + + +@_utilities.lift_output_func(get_agent_agent_versions) +def get_agent_agent_versions_output(agent_id: Optional[pulumi.Input[str]] = None, + agent_version_summaries: Optional[pulumi.Input[Optional[Sequence[Union['GetAgentAgentVersionsAgentVersionSummaryArgs', 'GetAgentAgentVersionsAgentVersionSummaryArgsDict']]]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAgentAgentVersionsResult]: + """ + Data source for managing an AWS Amazon BedrockAgent Agent Versions. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.bedrock.get_agent_agent_versions(agent_id=test_aws_bedrockagent_agent["agentId"]) + ``` + + + :param str agent_id: Unique identifier of the agent. + :param Sequence[Union['GetAgentAgentVersionsAgentVersionSummaryArgs', 'GetAgentAgentVersionsAgentVersionSummaryArgsDict']] agent_version_summaries: List of objects, each of which contains information about a version of the agent. See Agent Version Summaries + """ + ... diff --git a/sdk/python/pulumi_aws/bedrock/guardrail.py b/sdk/python/pulumi_aws/bedrock/guardrail.py new file mode 100644 index 00000000000..0ded3e1208f --- /dev/null +++ b/sdk/python/pulumi_aws/bedrock/guardrail.py @@ -0,0 +1,953 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['GuardrailArgs', 'Guardrail'] + +@pulumi.input_type +class GuardrailArgs: + def __init__(__self__, *, + blocked_input_messaging: pulumi.Input[str], + blocked_outputs_messaging: pulumi.Input[str], + content_policy_config: Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']] = None, + contextual_grounding_policy_config: Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sensitive_information_policy_config: Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['GuardrailTimeoutsArgs']] = None, + topic_policy_config: Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']] = None, + word_policy_config: Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']] = None): + """ + The set of arguments for constructing a Guardrail resource. + :param pulumi.Input[str] blocked_input_messaging: Message to return when the guardrail blocks a prompt. + :param pulumi.Input[str] blocked_outputs_messaging: Message to return when the guardrail blocks a model response. + :param pulumi.Input['GuardrailContentPolicyConfigArgs'] content_policy_config: Content policy config for a guardrail. See Content Policy Config for more information. + :param pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs'] contextual_grounding_policy_config: Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + :param pulumi.Input[str] description: Description of the guardrail or its version. + :param pulumi.Input[str] kms_key_arn: The KMS key with which the guardrail was encrypted at rest. + :param pulumi.Input[str] name: Name of the guardrail. + + The following arguments are optional: + :param pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs'] sensitive_information_policy_config: Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input['GuardrailTopicPolicyConfigArgs'] topic_policy_config: Topic policy config for a guardrail. See Topic Policy Config for more information. + :param pulumi.Input['GuardrailWordPolicyConfigArgs'] word_policy_config: Word policy config for a guardrail. See Word Policy Config for more information. + """ + pulumi.set(__self__, "blocked_input_messaging", blocked_input_messaging) + pulumi.set(__self__, "blocked_outputs_messaging", blocked_outputs_messaging) + if content_policy_config is not None: + pulumi.set(__self__, "content_policy_config", content_policy_config) + if contextual_grounding_policy_config is not None: + pulumi.set(__self__, "contextual_grounding_policy_config", contextual_grounding_policy_config) + if description is not None: + pulumi.set(__self__, "description", description) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if name is not None: + pulumi.set(__self__, "name", name) + if sensitive_information_policy_config is not None: + pulumi.set(__self__, "sensitive_information_policy_config", sensitive_information_policy_config) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if topic_policy_config is not None: + pulumi.set(__self__, "topic_policy_config", topic_policy_config) + if word_policy_config is not None: + pulumi.set(__self__, "word_policy_config", word_policy_config) + + @property + @pulumi.getter(name="blockedInputMessaging") + def blocked_input_messaging(self) -> pulumi.Input[str]: + """ + Message to return when the guardrail blocks a prompt. + """ + return pulumi.get(self, "blocked_input_messaging") + + @blocked_input_messaging.setter + def blocked_input_messaging(self, value: pulumi.Input[str]): + pulumi.set(self, "blocked_input_messaging", value) + + @property + @pulumi.getter(name="blockedOutputsMessaging") + def blocked_outputs_messaging(self) -> pulumi.Input[str]: + """ + Message to return when the guardrail blocks a model response. + """ + return pulumi.get(self, "blocked_outputs_messaging") + + @blocked_outputs_messaging.setter + def blocked_outputs_messaging(self, value: pulumi.Input[str]): + pulumi.set(self, "blocked_outputs_messaging", value) + + @property + @pulumi.getter(name="contentPolicyConfig") + def content_policy_config(self) -> Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']]: + """ + Content policy config for a guardrail. See Content Policy Config for more information. + """ + return pulumi.get(self, "content_policy_config") + + @content_policy_config.setter + def content_policy_config(self, value: Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']]): + pulumi.set(self, "content_policy_config", value) + + @property + @pulumi.getter(name="contextualGroundingPolicyConfig") + def contextual_grounding_policy_config(self) -> Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']]: + """ + Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + """ + return pulumi.get(self, "contextual_grounding_policy_config") + + @contextual_grounding_policy_config.setter + def contextual_grounding_policy_config(self, value: Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']]): + pulumi.set(self, "contextual_grounding_policy_config", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the guardrail or its version. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The KMS key with which the guardrail was encrypted at rest. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the guardrail. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="sensitiveInformationPolicyConfig") + def sensitive_information_policy_config(self) -> Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']]: + """ + Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + """ + return pulumi.get(self, "sensitive_information_policy_config") + + @sensitive_information_policy_config.setter + def sensitive_information_policy_config(self, value: Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']]): + pulumi.set(self, "sensitive_information_policy_config", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GuardrailTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GuardrailTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="topicPolicyConfig") + def topic_policy_config(self) -> Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']]: + """ + Topic policy config for a guardrail. See Topic Policy Config for more information. + """ + return pulumi.get(self, "topic_policy_config") + + @topic_policy_config.setter + def topic_policy_config(self, value: Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']]): + pulumi.set(self, "topic_policy_config", value) + + @property + @pulumi.getter(name="wordPolicyConfig") + def word_policy_config(self) -> Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']]: + """ + Word policy config for a guardrail. See Word Policy Config for more information. + """ + return pulumi.get(self, "word_policy_config") + + @word_policy_config.setter + def word_policy_config(self, value: Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']]): + pulumi.set(self, "word_policy_config", value) + + +@pulumi.input_type +class _GuardrailState: + def __init__(__self__, *, + blocked_input_messaging: Optional[pulumi.Input[str]] = None, + blocked_outputs_messaging: Optional[pulumi.Input[str]] = None, + content_policy_config: Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']] = None, + contextual_grounding_policy_config: Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + guardrail_arn: Optional[pulumi.Input[str]] = None, + guardrail_id: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sensitive_information_policy_config: Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['GuardrailTimeoutsArgs']] = None, + topic_policy_config: Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']] = None, + version: Optional[pulumi.Input[str]] = None, + word_policy_config: Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']] = None): + """ + Input properties used for looking up and filtering Guardrail resources. + :param pulumi.Input[str] blocked_input_messaging: Message to return when the guardrail blocks a prompt. + :param pulumi.Input[str] blocked_outputs_messaging: Message to return when the guardrail blocks a model response. + :param pulumi.Input['GuardrailContentPolicyConfigArgs'] content_policy_config: Content policy config for a guardrail. See Content Policy Config for more information. + :param pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs'] contextual_grounding_policy_config: Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + :param pulumi.Input[str] created_at: Unix epoch timestamp in seconds for when the Guardrail was created. + :param pulumi.Input[str] description: Description of the guardrail or its version. + :param pulumi.Input[str] guardrail_arn: ARN of the Guardrail. + :param pulumi.Input[str] guardrail_id: ID of the Guardrail. + :param pulumi.Input[str] kms_key_arn: The KMS key with which the guardrail was encrypted at rest. + :param pulumi.Input[str] name: Name of the guardrail. + + The following arguments are optional: + :param pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs'] sensitive_information_policy_config: Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + :param pulumi.Input[str] status: Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input['GuardrailTopicPolicyConfigArgs'] topic_policy_config: Topic policy config for a guardrail. See Topic Policy Config for more information. + :param pulumi.Input[str] version: Version of the Guardrail. + :param pulumi.Input['GuardrailWordPolicyConfigArgs'] word_policy_config: Word policy config for a guardrail. See Word Policy Config for more information. + """ + if blocked_input_messaging is not None: + pulumi.set(__self__, "blocked_input_messaging", blocked_input_messaging) + if blocked_outputs_messaging is not None: + pulumi.set(__self__, "blocked_outputs_messaging", blocked_outputs_messaging) + if content_policy_config is not None: + pulumi.set(__self__, "content_policy_config", content_policy_config) + if contextual_grounding_policy_config is not None: + pulumi.set(__self__, "contextual_grounding_policy_config", contextual_grounding_policy_config) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if description is not None: + pulumi.set(__self__, "description", description) + if guardrail_arn is not None: + pulumi.set(__self__, "guardrail_arn", guardrail_arn) + if guardrail_id is not None: + pulumi.set(__self__, "guardrail_id", guardrail_id) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if name is not None: + pulumi.set(__self__, "name", name) + if sensitive_information_policy_config is not None: + pulumi.set(__self__, "sensitive_information_policy_config", sensitive_information_policy_config) + if status is not None: + pulumi.set(__self__, "status", status) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + if topic_policy_config is not None: + pulumi.set(__self__, "topic_policy_config", topic_policy_config) + if version is not None: + pulumi.set(__self__, "version", version) + if word_policy_config is not None: + pulumi.set(__self__, "word_policy_config", word_policy_config) + + @property + @pulumi.getter(name="blockedInputMessaging") + def blocked_input_messaging(self) -> Optional[pulumi.Input[str]]: + """ + Message to return when the guardrail blocks a prompt. + """ + return pulumi.get(self, "blocked_input_messaging") + + @blocked_input_messaging.setter + def blocked_input_messaging(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "blocked_input_messaging", value) + + @property + @pulumi.getter(name="blockedOutputsMessaging") + def blocked_outputs_messaging(self) -> Optional[pulumi.Input[str]]: + """ + Message to return when the guardrail blocks a model response. + """ + return pulumi.get(self, "blocked_outputs_messaging") + + @blocked_outputs_messaging.setter + def blocked_outputs_messaging(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "blocked_outputs_messaging", value) + + @property + @pulumi.getter(name="contentPolicyConfig") + def content_policy_config(self) -> Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']]: + """ + Content policy config for a guardrail. See Content Policy Config for more information. + """ + return pulumi.get(self, "content_policy_config") + + @content_policy_config.setter + def content_policy_config(self, value: Optional[pulumi.Input['GuardrailContentPolicyConfigArgs']]): + pulumi.set(self, "content_policy_config", value) + + @property + @pulumi.getter(name="contextualGroundingPolicyConfig") + def contextual_grounding_policy_config(self) -> Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']]: + """ + Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + """ + return pulumi.get(self, "contextual_grounding_policy_config") + + @contextual_grounding_policy_config.setter + def contextual_grounding_policy_config(self, value: Optional[pulumi.Input['GuardrailContextualGroundingPolicyConfigArgs']]): + pulumi.set(self, "contextual_grounding_policy_config", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Unix epoch timestamp in seconds for when the Guardrail was created. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the guardrail or its version. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="guardrailArn") + def guardrail_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Guardrail. + """ + return pulumi.get(self, "guardrail_arn") + + @guardrail_arn.setter + def guardrail_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "guardrail_arn", value) + + @property + @pulumi.getter(name="guardrailId") + def guardrail_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the Guardrail. + """ + return pulumi.get(self, "guardrail_id") + + @guardrail_id.setter + def guardrail_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "guardrail_id", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The KMS key with which the guardrail was encrypted at rest. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the guardrail. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="sensitiveInformationPolicyConfig") + def sensitive_information_policy_config(self) -> Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']]: + """ + Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + """ + return pulumi.get(self, "sensitive_information_policy_config") + + @sensitive_information_policy_config.setter + def sensitive_information_policy_config(self, value: Optional[pulumi.Input['GuardrailSensitiveInformationPolicyConfigArgs']]): + pulumi.set(self, "sensitive_information_policy_config", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GuardrailTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GuardrailTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + @property + @pulumi.getter(name="topicPolicyConfig") + def topic_policy_config(self) -> Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']]: + """ + Topic policy config for a guardrail. See Topic Policy Config for more information. + """ + return pulumi.get(self, "topic_policy_config") + + @topic_policy_config.setter + def topic_policy_config(self, value: Optional[pulumi.Input['GuardrailTopicPolicyConfigArgs']]): + pulumi.set(self, "topic_policy_config", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + Version of the Guardrail. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + @property + @pulumi.getter(name="wordPolicyConfig") + def word_policy_config(self) -> Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']]: + """ + Word policy config for a guardrail. See Word Policy Config for more information. + """ + return pulumi.get(self, "word_policy_config") + + @word_policy_config.setter + def word_policy_config(self, value: Optional[pulumi.Input['GuardrailWordPolicyConfigArgs']]): + pulumi.set(self, "word_policy_config", value) + + +class Guardrail(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + blocked_input_messaging: Optional[pulumi.Input[str]] = None, + blocked_outputs_messaging: Optional[pulumi.Input[str]] = None, + content_policy_config: Optional[pulumi.Input[Union['GuardrailContentPolicyConfigArgs', 'GuardrailContentPolicyConfigArgsDict']]] = None, + contextual_grounding_policy_config: Optional[pulumi.Input[Union['GuardrailContextualGroundingPolicyConfigArgs', 'GuardrailContextualGroundingPolicyConfigArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sensitive_information_policy_config: Optional[pulumi.Input[Union['GuardrailSensitiveInformationPolicyConfigArgs', 'GuardrailSensitiveInformationPolicyConfigArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailTimeoutsArgs', 'GuardrailTimeoutsArgsDict']]] = None, + topic_policy_config: Optional[pulumi.Input[Union['GuardrailTopicPolicyConfigArgs', 'GuardrailTopicPolicyConfigArgsDict']]] = None, + word_policy_config: Optional[pulumi.Input[Union['GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict']]] = None, + __props__=None): + """ + Resource for managing an Amazon Bedrock Guardrail. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.Guardrail("example", + name="example", + blocked_input_messaging="example", + blocked_outputs_messaging="example", + description="example", + content_policy_config={ + "filters_configs": [{ + "input_strength": "MEDIUM", + "output_strength": "MEDIUM", + "type": "HATE", + }], + }, + sensitive_information_policy_config={ + "pii_entities_configs": [{ + "action": "BLOCK", + "type": "NAME", + }], + "regexes_configs": [{ + "action": "BLOCK", + "description": "example regex", + "name": "regex_example", + "pattern": "^\\\\d{3}-\\\\d{2}-\\\\d{4}$", + }], + }, + topic_policy_config={ + "topics_configs": [{ + "name": "investment_topic", + "examples": ["Where should I invest my money ?"], + "type": "DENY", + "definition": "Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .", + }], + }, + word_policy_config={ + "managed_word_lists_configs": [{ + "type": "PROFANITY", + }], + "words_configs": [{ + "text": "HATE", + }], + }) + ``` + + ## Import + + Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: + + ```sh + $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] blocked_input_messaging: Message to return when the guardrail blocks a prompt. + :param pulumi.Input[str] blocked_outputs_messaging: Message to return when the guardrail blocks a model response. + :param pulumi.Input[Union['GuardrailContentPolicyConfigArgs', 'GuardrailContentPolicyConfigArgsDict']] content_policy_config: Content policy config for a guardrail. See Content Policy Config for more information. + :param pulumi.Input[Union['GuardrailContextualGroundingPolicyConfigArgs', 'GuardrailContextualGroundingPolicyConfigArgsDict']] contextual_grounding_policy_config: Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + :param pulumi.Input[str] description: Description of the guardrail or its version. + :param pulumi.Input[str] kms_key_arn: The KMS key with which the guardrail was encrypted at rest. + :param pulumi.Input[str] name: Name of the guardrail. + + The following arguments are optional: + :param pulumi.Input[Union['GuardrailSensitiveInformationPolicyConfigArgs', 'GuardrailSensitiveInformationPolicyConfigArgsDict']] sensitive_information_policy_config: Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Union['GuardrailTopicPolicyConfigArgs', 'GuardrailTopicPolicyConfigArgsDict']] topic_policy_config: Topic policy config for a guardrail. See Topic Policy Config for more information. + :param pulumi.Input[Union['GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict']] word_policy_config: Word policy config for a guardrail. See Word Policy Config for more information. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GuardrailArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an Amazon Bedrock Guardrail. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.bedrock.Guardrail("example", + name="example", + blocked_input_messaging="example", + blocked_outputs_messaging="example", + description="example", + content_policy_config={ + "filters_configs": [{ + "input_strength": "MEDIUM", + "output_strength": "MEDIUM", + "type": "HATE", + }], + }, + sensitive_information_policy_config={ + "pii_entities_configs": [{ + "action": "BLOCK", + "type": "NAME", + }], + "regexes_configs": [{ + "action": "BLOCK", + "description": "example regex", + "name": "regex_example", + "pattern": "^\\\\d{3}-\\\\d{2}-\\\\d{4}$", + }], + }, + topic_policy_config={ + "topics_configs": [{ + "name": "investment_topic", + "examples": ["Where should I invest my money ?"], + "type": "DENY", + "definition": "Investment advice refers to inquiries, guidance, or recommendations regarding the management or allocation of funds or assets with the goal of generating returns .", + }], + }, + word_policy_config={ + "managed_word_lists_configs": [{ + "type": "PROFANITY", + }], + "words_configs": [{ + "text": "HATE", + }], + }) + ``` + + ## Import + + Using `pulumi import`, import Amazon Bedrock Guardrail using using a comma-delimited string of `guardrail_id` and `version`. For example: + + ```sh + $ pulumi import aws:bedrock/guardrail:Guardrail example guardrail-id-12345678,DRAFT + ``` + + :param str resource_name: The name of the resource. + :param GuardrailArgs 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(GuardrailArgs, 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, + blocked_input_messaging: Optional[pulumi.Input[str]] = None, + blocked_outputs_messaging: Optional[pulumi.Input[str]] = None, + content_policy_config: Optional[pulumi.Input[Union['GuardrailContentPolicyConfigArgs', 'GuardrailContentPolicyConfigArgsDict']]] = None, + contextual_grounding_policy_config: Optional[pulumi.Input[Union['GuardrailContextualGroundingPolicyConfigArgs', 'GuardrailContextualGroundingPolicyConfigArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sensitive_information_policy_config: Optional[pulumi.Input[Union['GuardrailSensitiveInformationPolicyConfigArgs', 'GuardrailSensitiveInformationPolicyConfigArgsDict']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailTimeoutsArgs', 'GuardrailTimeoutsArgsDict']]] = None, + topic_policy_config: Optional[pulumi.Input[Union['GuardrailTopicPolicyConfigArgs', 'GuardrailTopicPolicyConfigArgsDict']]] = None, + word_policy_config: Optional[pulumi.Input[Union['GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict']]] = 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__ = GuardrailArgs.__new__(GuardrailArgs) + + if blocked_input_messaging is None and not opts.urn: + raise TypeError("Missing required property 'blocked_input_messaging'") + __props__.__dict__["blocked_input_messaging"] = blocked_input_messaging + if blocked_outputs_messaging is None and not opts.urn: + raise TypeError("Missing required property 'blocked_outputs_messaging'") + __props__.__dict__["blocked_outputs_messaging"] = blocked_outputs_messaging + __props__.__dict__["content_policy_config"] = content_policy_config + __props__.__dict__["contextual_grounding_policy_config"] = contextual_grounding_policy_config + __props__.__dict__["description"] = description + __props__.__dict__["kms_key_arn"] = kms_key_arn + __props__.__dict__["name"] = name + __props__.__dict__["sensitive_information_policy_config"] = sensitive_information_policy_config + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["topic_policy_config"] = topic_policy_config + __props__.__dict__["word_policy_config"] = word_policy_config + __props__.__dict__["created_at"] = None + __props__.__dict__["guardrail_arn"] = None + __props__.__dict__["guardrail_id"] = None + __props__.__dict__["status"] = None + __props__.__dict__["tags_all"] = None + __props__.__dict__["version"] = None + super(Guardrail, __self__).__init__( + 'aws:bedrock/guardrail:Guardrail', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + blocked_input_messaging: Optional[pulumi.Input[str]] = None, + blocked_outputs_messaging: Optional[pulumi.Input[str]] = None, + content_policy_config: Optional[pulumi.Input[Union['GuardrailContentPolicyConfigArgs', 'GuardrailContentPolicyConfigArgsDict']]] = None, + contextual_grounding_policy_config: Optional[pulumi.Input[Union['GuardrailContextualGroundingPolicyConfigArgs', 'GuardrailContextualGroundingPolicyConfigArgsDict']]] = None, + created_at: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + guardrail_arn: Optional[pulumi.Input[str]] = None, + guardrail_id: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + sensitive_information_policy_config: Optional[pulumi.Input[Union['GuardrailSensitiveInformationPolicyConfigArgs', 'GuardrailSensitiveInformationPolicyConfigArgsDict']]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[Union['GuardrailTimeoutsArgs', 'GuardrailTimeoutsArgsDict']]] = None, + topic_policy_config: Optional[pulumi.Input[Union['GuardrailTopicPolicyConfigArgs', 'GuardrailTopicPolicyConfigArgsDict']]] = None, + version: Optional[pulumi.Input[str]] = None, + word_policy_config: Optional[pulumi.Input[Union['GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict']]] = None) -> 'Guardrail': + """ + Get an existing Guardrail 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] blocked_input_messaging: Message to return when the guardrail blocks a prompt. + :param pulumi.Input[str] blocked_outputs_messaging: Message to return when the guardrail blocks a model response. + :param pulumi.Input[Union['GuardrailContentPolicyConfigArgs', 'GuardrailContentPolicyConfigArgsDict']] content_policy_config: Content policy config for a guardrail. See Content Policy Config for more information. + :param pulumi.Input[Union['GuardrailContextualGroundingPolicyConfigArgs', 'GuardrailContextualGroundingPolicyConfigArgsDict']] contextual_grounding_policy_config: Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + :param pulumi.Input[str] created_at: Unix epoch timestamp in seconds for when the Guardrail was created. + :param pulumi.Input[str] description: Description of the guardrail or its version. + :param pulumi.Input[str] guardrail_arn: ARN of the Guardrail. + :param pulumi.Input[str] guardrail_id: ID of the Guardrail. + :param pulumi.Input[str] kms_key_arn: The KMS key with which the guardrail was encrypted at rest. + :param pulumi.Input[str] name: Name of the guardrail. + + The following arguments are optional: + :param pulumi.Input[Union['GuardrailSensitiveInformationPolicyConfigArgs', 'GuardrailSensitiveInformationPolicyConfigArgsDict']] sensitive_information_policy_config: Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + :param pulumi.Input[str] status: Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + :param pulumi.Input[Union['GuardrailTopicPolicyConfigArgs', 'GuardrailTopicPolicyConfigArgsDict']] topic_policy_config: Topic policy config for a guardrail. See Topic Policy Config for more information. + :param pulumi.Input[str] version: Version of the Guardrail. + :param pulumi.Input[Union['GuardrailWordPolicyConfigArgs', 'GuardrailWordPolicyConfigArgsDict']] word_policy_config: Word policy config for a guardrail. See Word Policy Config for more information. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GuardrailState.__new__(_GuardrailState) + + __props__.__dict__["blocked_input_messaging"] = blocked_input_messaging + __props__.__dict__["blocked_outputs_messaging"] = blocked_outputs_messaging + __props__.__dict__["content_policy_config"] = content_policy_config + __props__.__dict__["contextual_grounding_policy_config"] = contextual_grounding_policy_config + __props__.__dict__["created_at"] = created_at + __props__.__dict__["description"] = description + __props__.__dict__["guardrail_arn"] = guardrail_arn + __props__.__dict__["guardrail_id"] = guardrail_id + __props__.__dict__["kms_key_arn"] = kms_key_arn + __props__.__dict__["name"] = name + __props__.__dict__["sensitive_information_policy_config"] = sensitive_information_policy_config + __props__.__dict__["status"] = status + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["topic_policy_config"] = topic_policy_config + __props__.__dict__["version"] = version + __props__.__dict__["word_policy_config"] = word_policy_config + return Guardrail(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="blockedInputMessaging") + def blocked_input_messaging(self) -> pulumi.Output[str]: + """ + Message to return when the guardrail blocks a prompt. + """ + return pulumi.get(self, "blocked_input_messaging") + + @property + @pulumi.getter(name="blockedOutputsMessaging") + def blocked_outputs_messaging(self) -> pulumi.Output[str]: + """ + Message to return when the guardrail blocks a model response. + """ + return pulumi.get(self, "blocked_outputs_messaging") + + @property + @pulumi.getter(name="contentPolicyConfig") + def content_policy_config(self) -> pulumi.Output[Optional['outputs.GuardrailContentPolicyConfig']]: + """ + Content policy config for a guardrail. See Content Policy Config for more information. + """ + return pulumi.get(self, "content_policy_config") + + @property + @pulumi.getter(name="contextualGroundingPolicyConfig") + def contextual_grounding_policy_config(self) -> pulumi.Output[Optional['outputs.GuardrailContextualGroundingPolicyConfig']]: + """ + Contextual grounding policy config for a guardrail. See Contextual Grounding Policy Config for more information. + """ + return pulumi.get(self, "contextual_grounding_policy_config") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Unix epoch timestamp in seconds for when the Guardrail was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + Description of the guardrail or its version. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="guardrailArn") + def guardrail_arn(self) -> pulumi.Output[str]: + """ + ARN of the Guardrail. + """ + return pulumi.get(self, "guardrail_arn") + + @property + @pulumi.getter(name="guardrailId") + def guardrail_id(self) -> pulumi.Output[str]: + """ + ID of the Guardrail. + """ + return pulumi.get(self, "guardrail_id") + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> pulumi.Output[Optional[str]]: + """ + The KMS key with which the guardrail was encrypted at rest. + """ + return pulumi.get(self, "kms_key_arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the guardrail. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="sensitiveInformationPolicyConfig") + def sensitive_information_policy_config(self) -> pulumi.Output[Optional['outputs.GuardrailSensitiveInformationPolicyConfig']]: + """ + Sensitive information policy config for a guardrail. See Sensitive Information Policy Config for more information. + """ + return pulumi.get(self, "sensitive_information_policy_config") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + Status of the Bedrock Guardrail. One of `READY`, `FAILED`. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.GuardrailTimeouts']]: + return pulumi.get(self, "timeouts") + + @property + @pulumi.getter(name="topicPolicyConfig") + def topic_policy_config(self) -> pulumi.Output[Optional['outputs.GuardrailTopicPolicyConfig']]: + """ + Topic policy config for a guardrail. See Topic Policy Config for more information. + """ + return pulumi.get(self, "topic_policy_config") + + @property + @pulumi.getter + def version(self) -> pulumi.Output[str]: + """ + Version of the Guardrail. + """ + return pulumi.get(self, "version") + + @property + @pulumi.getter(name="wordPolicyConfig") + def word_policy_config(self) -> pulumi.Output[Optional['outputs.GuardrailWordPolicyConfig']]: + """ + Word policy config for a guardrail. See Word Policy Config for more information. + """ + return pulumi.get(self, "word_policy_config") + diff --git a/sdk/python/pulumi_aws/bedrock/outputs.py b/sdk/python/pulumi_aws/bedrock/outputs.py index 571aa32a2a9..c7b4abb376f 100644 --- a/sdk/python/pulumi_aws/bedrock/outputs.py +++ b/sdk/python/pulumi_aws/bedrock/outputs.py @@ -25,6 +25,7 @@ 'AgentAgentActionGroupFunctionSchemaMemberFunctionsFunctionParameter', 'AgentAgentAliasRoutingConfiguration', 'AgentAgentAliasTimeouts', + 'AgentAgentKnowledgeBaseAssociationTimeouts', 'AgentAgentPromptOverrideConfiguration', 'AgentAgentPromptOverrideConfigurationPromptConfiguration', 'AgentAgentPromptOverrideConfigurationPromptConfigurationInferenceConfiguration', @@ -56,7 +57,22 @@ 'CustomModelValidationDataConfigValidator', 'CustomModelValidationMetric', 'CustomModelVpcConfig', + 'GuardrailContentPolicyConfig', + 'GuardrailContentPolicyConfigFiltersConfig', + 'GuardrailContextualGroundingPolicyConfig', + 'GuardrailContextualGroundingPolicyConfigFiltersConfig', + 'GuardrailSensitiveInformationPolicyConfig', + 'GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig', + 'GuardrailSensitiveInformationPolicyConfigRegexesConfig', + 'GuardrailTimeouts', + 'GuardrailTopicPolicyConfig', + 'GuardrailTopicPolicyConfigTopicsConfig', + 'GuardrailWordPolicyConfig', + 'GuardrailWordPolicyConfigManagedWordListsConfig', + 'GuardrailWordPolicyConfigWordsConfig', 'ProvisionedModelThroughputTimeouts', + 'GetAgentAgentVersionsAgentVersionSummaryResult', + 'GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult', 'GetCustomModelOutputDataConfigResult', 'GetCustomModelTrainingDataConfigResult', 'GetCustomModelTrainingMetricResult', @@ -473,6 +489,37 @@ def update(self) -> Optional[str]: return pulumi.get(self, "update") +@pulumi.output_type +class AgentAgentKnowledgeBaseAssociationTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + @pulumi.output_type class AgentAgentPromptOverrideConfiguration(dict): @staticmethod @@ -2095,6 +2142,514 @@ def subnet_ids(self) -> Sequence[str]: return pulumi.get(self, "subnet_ids") +@pulumi.output_type +class GuardrailContentPolicyConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "filtersConfigs": + suggest = "filters_configs" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailContentPolicyConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailContentPolicyConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailContentPolicyConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + filters_configs: Optional[Sequence['outputs.GuardrailContentPolicyConfigFiltersConfig']] = None): + """ + :param Sequence['GuardrailContentPolicyConfigFiltersConfigArgs'] filters_configs: List of content filter configs in content policy. See Filters Config for more information. + """ + if filters_configs is not None: + pulumi.set(__self__, "filters_configs", filters_configs) + + @property + @pulumi.getter(name="filtersConfigs") + def filters_configs(self) -> Optional[Sequence['outputs.GuardrailContentPolicyConfigFiltersConfig']]: + """ + List of content filter configs in content policy. See Filters Config for more information. + """ + return pulumi.get(self, "filters_configs") + + +@pulumi.output_type +class GuardrailContentPolicyConfigFiltersConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "inputStrength": + suggest = "input_strength" + elif key == "outputStrength": + suggest = "output_strength" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailContentPolicyConfigFiltersConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailContentPolicyConfigFiltersConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailContentPolicyConfigFiltersConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + input_strength: str, + output_strength: str, + type: str): + """ + :param str input_strength: Strength for filters. + :param str output_strength: Strength for filters. + :param str type: Type of contextual grounding filter. + """ + pulumi.set(__self__, "input_strength", input_strength) + pulumi.set(__self__, "output_strength", output_strength) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="inputStrength") + def input_strength(self) -> str: + """ + Strength for filters. + """ + return pulumi.get(self, "input_strength") + + @property + @pulumi.getter(name="outputStrength") + def output_strength(self) -> str: + """ + Strength for filters. + """ + return pulumi.get(self, "output_strength") + + @property + @pulumi.getter + def type(self) -> str: + """ + Type of contextual grounding filter. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GuardrailContextualGroundingPolicyConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "filtersConfigs": + suggest = "filters_configs" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailContextualGroundingPolicyConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailContextualGroundingPolicyConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailContextualGroundingPolicyConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + filters_configs: Optional[Sequence['outputs.GuardrailContextualGroundingPolicyConfigFiltersConfig']] = None): + """ + :param Sequence['GuardrailContextualGroundingPolicyConfigFiltersConfigArgs'] filters_configs: List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + """ + if filters_configs is not None: + pulumi.set(__self__, "filters_configs", filters_configs) + + @property + @pulumi.getter(name="filtersConfigs") + def filters_configs(self) -> Optional[Sequence['outputs.GuardrailContextualGroundingPolicyConfigFiltersConfig']]: + """ + List of contextual grounding filter configs. See Contextual Grounding Filters Config for more information. + """ + return pulumi.get(self, "filters_configs") + + +@pulumi.output_type +class GuardrailContextualGroundingPolicyConfigFiltersConfig(dict): + def __init__(__self__, *, + threshold: float, + type: str): + """ + :param float threshold: The threshold for this filter. + :param str type: Type of contextual grounding filter. + """ + pulumi.set(__self__, "threshold", threshold) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def threshold(self) -> float: + """ + The threshold for this filter. + """ + return pulumi.get(self, "threshold") + + @property + @pulumi.getter + def type(self) -> str: + """ + Type of contextual grounding filter. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GuardrailSensitiveInformationPolicyConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "piiEntitiesConfigs": + suggest = "pii_entities_configs" + elif key == "regexesConfigs": + suggest = "regexes_configs" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailSensitiveInformationPolicyConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailSensitiveInformationPolicyConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailSensitiveInformationPolicyConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + pii_entities_configs: Optional[Sequence['outputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig']] = None, + regexes_configs: Optional[Sequence['outputs.GuardrailSensitiveInformationPolicyConfigRegexesConfig']] = None): + """ + :param Sequence['GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfigArgs'] pii_entities_configs: List of entities. See PII Entities Config for more information. + :param Sequence['GuardrailSensitiveInformationPolicyConfigRegexesConfigArgs'] regexes_configs: List of regex. See Regexes Config for more information. + """ + if pii_entities_configs is not None: + pulumi.set(__self__, "pii_entities_configs", pii_entities_configs) + if regexes_configs is not None: + pulumi.set(__self__, "regexes_configs", regexes_configs) + + @property + @pulumi.getter(name="piiEntitiesConfigs") + def pii_entities_configs(self) -> Optional[Sequence['outputs.GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig']]: + """ + List of entities. See PII Entities Config for more information. + """ + return pulumi.get(self, "pii_entities_configs") + + @property + @pulumi.getter(name="regexesConfigs") + def regexes_configs(self) -> Optional[Sequence['outputs.GuardrailSensitiveInformationPolicyConfigRegexesConfig']]: + """ + List of regex. See Regexes Config for more information. + """ + return pulumi.get(self, "regexes_configs") + + +@pulumi.output_type +class GuardrailSensitiveInformationPolicyConfigPiiEntitiesConfig(dict): + def __init__(__self__, *, + action: str, + type: str): + """ + :param str action: Options for sensitive information action. + :param str type: The currently supported PII entities. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def action(self) -> str: + """ + Options for sensitive information action. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter + def type(self) -> str: + """ + The currently supported PII entities. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GuardrailSensitiveInformationPolicyConfigRegexesConfig(dict): + def __init__(__self__, *, + action: str, + name: str, + pattern: str, + description: Optional[str] = None): + """ + :param str action: Options for sensitive information action. + :param str name: The regex name. + :param str pattern: The regex pattern. + :param str description: The regex description. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "pattern", pattern) + if description is not None: + pulumi.set(__self__, "description", description) + + @property + @pulumi.getter + def action(self) -> str: + """ + Options for sensitive information action. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter + def name(self) -> str: + """ + The regex name. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def pattern(self) -> str: + """ + The regex pattern. + """ + return pulumi.get(self, "pattern") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The regex description. + """ + return pulumi.get(self, "description") + + +@pulumi.output_type +class GuardrailTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: Optional[str] = None, + update: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + if update is not None: + pulumi.set(__self__, "update", update) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @property + @pulumi.getter + def delete(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + """ + return pulumi.get(self, "delete") + + @property + @pulumi.getter + def update(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "update") + + +@pulumi.output_type +class GuardrailTopicPolicyConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "topicsConfigs": + suggest = "topics_configs" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailTopicPolicyConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailTopicPolicyConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailTopicPolicyConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + topics_configs: Optional[Sequence['outputs.GuardrailTopicPolicyConfigTopicsConfig']] = None): + """ + :param Sequence['GuardrailTopicPolicyConfigTopicsConfigArgs'] topics_configs: List of topic configs in topic policy. See Topics Config for more information. + """ + if topics_configs is not None: + pulumi.set(__self__, "topics_configs", topics_configs) + + @property + @pulumi.getter(name="topicsConfigs") + def topics_configs(self) -> Optional[Sequence['outputs.GuardrailTopicPolicyConfigTopicsConfig']]: + """ + List of topic configs in topic policy. See Topics Config for more information. + """ + return pulumi.get(self, "topics_configs") + + +@pulumi.output_type +class GuardrailTopicPolicyConfigTopicsConfig(dict): + def __init__(__self__, *, + definition: str, + name: str, + type: str, + examples: Optional[Sequence[str]] = None): + """ + :param str definition: Definition of topic in topic policy. + :param str name: Name of topic in topic policy. + :param str type: Type of topic in a policy. + :param Sequence[str] examples: List of text examples. + """ + pulumi.set(__self__, "definition", definition) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "type", type) + if examples is not None: + pulumi.set(__self__, "examples", examples) + + @property + @pulumi.getter + def definition(self) -> str: + """ + Definition of topic in topic policy. + """ + return pulumi.get(self, "definition") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of topic in topic policy. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def type(self) -> str: + """ + Type of topic in a policy. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter + def examples(self) -> Optional[Sequence[str]]: + """ + List of text examples. + """ + return pulumi.get(self, "examples") + + +@pulumi.output_type +class GuardrailWordPolicyConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "managedWordListsConfigs": + suggest = "managed_word_lists_configs" + elif key == "wordsConfigs": + suggest = "words_configs" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GuardrailWordPolicyConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GuardrailWordPolicyConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GuardrailWordPolicyConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + managed_word_lists_configs: Optional[Sequence['outputs.GuardrailWordPolicyConfigManagedWordListsConfig']] = None, + words_configs: Optional[Sequence['outputs.GuardrailWordPolicyConfigWordsConfig']] = None): + """ + :param Sequence['GuardrailWordPolicyConfigManagedWordListsConfigArgs'] managed_word_lists_configs: A config for the list of managed words. See Managed Word Lists Config for more information. + :param Sequence['GuardrailWordPolicyConfigWordsConfigArgs'] words_configs: List of custom word configs. See Words Config for more information. + """ + if managed_word_lists_configs is not None: + pulumi.set(__self__, "managed_word_lists_configs", managed_word_lists_configs) + if words_configs is not None: + pulumi.set(__self__, "words_configs", words_configs) + + @property + @pulumi.getter(name="managedWordListsConfigs") + def managed_word_lists_configs(self) -> Optional[Sequence['outputs.GuardrailWordPolicyConfigManagedWordListsConfig']]: + """ + A config for the list of managed words. See Managed Word Lists Config for more information. + """ + return pulumi.get(self, "managed_word_lists_configs") + + @property + @pulumi.getter(name="wordsConfigs") + def words_configs(self) -> Optional[Sequence['outputs.GuardrailWordPolicyConfigWordsConfig']]: + """ + List of custom word configs. See Words Config for more information. + """ + return pulumi.get(self, "words_configs") + + +@pulumi.output_type +class GuardrailWordPolicyConfigManagedWordListsConfig(dict): + def __init__(__self__, *, + type: str): + """ + :param str type: Options for managed words. + """ + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> str: + """ + Options for managed words. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class GuardrailWordPolicyConfigWordsConfig(dict): + def __init__(__self__, *, + text: str): + """ + :param str text: The custom word text. + """ + pulumi.set(__self__, "text", text) + + @property + @pulumi.getter + def text(self) -> str: + """ + The custom word text. + """ + return pulumi.get(self, "text") + + @pulumi.output_type class ProvisionedModelThroughputTimeouts(dict): def __init__(__self__, *, @@ -2114,6 +2669,118 @@ def create(self) -> Optional[str]: return pulumi.get(self, "create") +@pulumi.output_type +class GetAgentAgentVersionsAgentVersionSummaryResult(dict): + def __init__(__self__, *, + agent_name: str, + agent_status: str, + agent_version: str, + created_at: str, + description: str, + updated_at: str, + guardrail_configurations: Optional[Sequence['outputs.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult']] = None): + """ + :param str agent_name: Name of agent to which the version belongs. + :param str agent_status: Status of the agent to which the version belongs. + :param str agent_version: Version of the agent. + :param str created_at: Time at which the version was created. + :param str description: Description of the version of the agent. + * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + :param str updated_at: Time at which the version was last updated. + """ + pulumi.set(__self__, "agent_name", agent_name) + pulumi.set(__self__, "agent_status", agent_status) + pulumi.set(__self__, "agent_version", agent_version) + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "updated_at", updated_at) + if guardrail_configurations is not None: + pulumi.set(__self__, "guardrail_configurations", guardrail_configurations) + + @property + @pulumi.getter(name="agentName") + def agent_name(self) -> str: + """ + Name of agent to which the version belongs. + """ + return pulumi.get(self, "agent_name") + + @property + @pulumi.getter(name="agentStatus") + def agent_status(self) -> str: + """ + Status of the agent to which the version belongs. + """ + return pulumi.get(self, "agent_status") + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> str: + """ + Version of the agent. + """ + return pulumi.get(self, "agent_version") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + """ + Time at which the version was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> str: + """ + Description of the version of the agent. + * `GuardrailConfiguration` - Details aout the guardrail associated with the agent. See Guardrail Configuration + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + """ + Time at which the version was last updated. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="guardrailConfigurations") + def guardrail_configurations(self) -> Optional[Sequence['outputs.GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult']]: + return pulumi.get(self, "guardrail_configurations") + + +@pulumi.output_type +class GetAgentAgentVersionsAgentVersionSummaryGuardrailConfigurationResult(dict): + def __init__(__self__, *, + guardrail_identifier: str, + guardrail_version: str): + """ + :param str guardrail_identifier: Unique identifier of the guardrail. + :param str guardrail_version: Version of the guardrail. + """ + pulumi.set(__self__, "guardrail_identifier", guardrail_identifier) + pulumi.set(__self__, "guardrail_version", guardrail_version) + + @property + @pulumi.getter(name="guardrailIdentifier") + def guardrail_identifier(self) -> str: + """ + Unique identifier of the guardrail. + """ + return pulumi.get(self, "guardrail_identifier") + + @property + @pulumi.getter(name="guardrailVersion") + def guardrail_version(self) -> str: + """ + Version of the guardrail. + """ + return pulumi.get(self, "guardrail_version") + + @pulumi.output_type class GetCustomModelOutputDataConfigResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/cloudtrail/__init__.py b/sdk/python/pulumi_aws/cloudtrail/__init__.py index 5701d65bc4c..8ea892959e5 100644 --- a/sdk/python/pulumi_aws/cloudtrail/__init__.py +++ b/sdk/python/pulumi_aws/cloudtrail/__init__.py @@ -7,6 +7,7 @@ # Export this package's modules as members: from .event_data_store import * from .get_service_account import * +from .organization_delegated_admin_account import * from .trail import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/cloudtrail/organization_delegated_admin_account.py b/sdk/python/pulumi_aws/cloudtrail/organization_delegated_admin_account.py new file mode 100644 index 00000000000..e76cff5bdcb --- /dev/null +++ b/sdk/python/pulumi_aws/cloudtrail/organization_delegated_admin_account.py @@ -0,0 +1,303 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['OrganizationDelegatedAdminAccountArgs', 'OrganizationDelegatedAdminAccount'] + +@pulumi.input_type +class OrganizationDelegatedAdminAccountArgs: + def __init__(__self__, *, + account_id: pulumi.Input[str]): + """ + The set of arguments for constructing a OrganizationDelegatedAdminAccount resource. + :param pulumi.Input[str] account_id: An organization member account ID that you want to designate as a delegated administrator. + """ + pulumi.set(__self__, "account_id", account_id) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> pulumi.Input[str]: + """ + An organization member account ID that you want to designate as a delegated administrator. + """ + return pulumi.get(self, "account_id") + + @account_id.setter + def account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "account_id", value) + + +@pulumi.input_type +class _OrganizationDelegatedAdminAccountState: + def __init__(__self__, *, + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_principal: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering OrganizationDelegatedAdminAccount resources. + :param pulumi.Input[str] account_id: An organization member account ID that you want to designate as a delegated administrator. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the delegated administrator's account. + :param pulumi.Input[str] email: The email address that is associated with the delegated administrator's AWS account. + :param pulumi.Input[str] name: The friendly name of the delegated administrator's account. + :param pulumi.Input[str] service_principal: The AWS CloudTrail service principal name. + """ + if account_id is not None: + pulumi.set(__self__, "account_id", account_id) + if arn is not None: + pulumi.set(__self__, "arn", arn) + if email is not None: + pulumi.set(__self__, "email", email) + if name is not None: + pulumi.set(__self__, "name", name) + if service_principal is not None: + pulumi.set(__self__, "service_principal", service_principal) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> Optional[pulumi.Input[str]]: + """ + An organization member account ID that you want to designate as a delegated administrator. + """ + return pulumi.get(self, "account_id") + + @account_id.setter + def account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "account_id", value) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the delegated administrator's account. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter + def email(self) -> Optional[pulumi.Input[str]]: + """ + The email address that is associated with the delegated administrator's AWS account. + """ + return pulumi.get(self, "email") + + @email.setter + def email(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "email", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The friendly name of the delegated administrator's account. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="servicePrincipal") + def service_principal(self) -> Optional[pulumi.Input[str]]: + """ + The AWS CloudTrail service principal name. + """ + return pulumi.get(self, "service_principal") + + @service_principal.setter + def service_principal(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_principal", value) + + +class OrganizationDelegatedAdminAccount(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a resource to manage an AWS CloudTrail Delegated Administrator. + + ## Example Usage + + Basic usage: + + ```python + import pulumi + import pulumi_aws as aws + + delegated = aws.get_caller_identity() + example = aws.cloudtrail.OrganizationDelegatedAdminAccount("example", account_id=delegated.account_id) + ``` + + ## Import + + Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: + + ```sh + $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] account_id: An organization member account ID that you want to designate as a delegated administrator. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: OrganizationDelegatedAdminAccountArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a resource to manage an AWS CloudTrail Delegated Administrator. + + ## Example Usage + + Basic usage: + + ```python + import pulumi + import pulumi_aws as aws + + delegated = aws.get_caller_identity() + example = aws.cloudtrail.OrganizationDelegatedAdminAccount("example", account_id=delegated.account_id) + ``` + + ## Import + + Using `pulumi import`, import delegated administrators using the delegate account `id`. For example: + + ```sh + $ pulumi import aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount example 12345678901 + ``` + + :param str resource_name: The name of the resource. + :param OrganizationDelegatedAdminAccountArgs 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(OrganizationDelegatedAdminAccountArgs, 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, + account_id: 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__ = OrganizationDelegatedAdminAccountArgs.__new__(OrganizationDelegatedAdminAccountArgs) + + if account_id is None and not opts.urn: + raise TypeError("Missing required property 'account_id'") + __props__.__dict__["account_id"] = account_id + __props__.__dict__["arn"] = None + __props__.__dict__["email"] = None + __props__.__dict__["name"] = None + __props__.__dict__["service_principal"] = None + super(OrganizationDelegatedAdminAccount, __self__).__init__( + 'aws:cloudtrail/organizationDelegatedAdminAccount:OrganizationDelegatedAdminAccount', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + account_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + email: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + service_principal: Optional[pulumi.Input[str]] = None) -> 'OrganizationDelegatedAdminAccount': + """ + Get an existing OrganizationDelegatedAdminAccount 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] account_id: An organization member account ID that you want to designate as a delegated administrator. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the delegated administrator's account. + :param pulumi.Input[str] email: The email address that is associated with the delegated administrator's AWS account. + :param pulumi.Input[str] name: The friendly name of the delegated administrator's account. + :param pulumi.Input[str] service_principal: The AWS CloudTrail service principal name. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _OrganizationDelegatedAdminAccountState.__new__(_OrganizationDelegatedAdminAccountState) + + __props__.__dict__["account_id"] = account_id + __props__.__dict__["arn"] = arn + __props__.__dict__["email"] = email + __props__.__dict__["name"] = name + __props__.__dict__["service_principal"] = service_principal + return OrganizationDelegatedAdminAccount(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> pulumi.Output[str]: + """ + An organization member account ID that you want to designate as a delegated administrator. + """ + return pulumi.get(self, "account_id") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the delegated administrator's account. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def email(self) -> pulumi.Output[str]: + """ + The email address that is associated with the delegated administrator's AWS account. + """ + return pulumi.get(self, "email") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The friendly name of the delegated administrator's account. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="servicePrincipal") + def service_principal(self) -> pulumi.Output[str]: + """ + The AWS CloudTrail service principal name. + """ + return pulumi.get(self, "service_principal") + diff --git a/sdk/python/pulumi_aws/codepipeline/_inputs.py b/sdk/python/pulumi_aws/codepipeline/_inputs.py index cd36f3b3d91..9edd4d2fb4b 100644 --- a/sdk/python/pulumi_aws/codepipeline/_inputs.py +++ b/sdk/python/pulumi_aws/codepipeline/_inputs.py @@ -613,7 +613,7 @@ class PipelineStageActionArgsDict(TypedDict): """ configuration: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ - A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. """ input_artifacts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ @@ -665,7 +665,7 @@ def __init__(__self__, *, :param pulumi.Input[str] owner: The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. :param pulumi.Input[str] provider: The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param pulumi.Input[str] version: A string that identifies the action type. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. :param pulumi.Input[Sequence[pulumi.Input[str]]] input_artifacts: A list of artifact names to be worked on. :param pulumi.Input[str] namespace: The namespace all output variables will be accessed from. :param pulumi.Input[Sequence[pulumi.Input[str]]] output_artifacts: A list of artifact names to output. Output artifact names must be unique within a pipeline. @@ -759,7 +759,7 @@ def version(self, value: pulumi.Input[str]): @pulumi.getter def configuration(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. """ return pulumi.get(self, "configuration") diff --git a/sdk/python/pulumi_aws/codepipeline/outputs.py b/sdk/python/pulumi_aws/codepipeline/outputs.py index 648a5ee592c..a1d7d5d742a 100644 --- a/sdk/python/pulumi_aws/codepipeline/outputs.py +++ b/sdk/python/pulumi_aws/codepipeline/outputs.py @@ -474,7 +474,7 @@ def __init__(__self__, *, :param str owner: The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. :param str provider: The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param str version: A string that identifies the action type. - :param Mapping[str, str] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + :param Mapping[str, str] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. :param Sequence[str] input_artifacts: A list of artifact names to be worked on. :param str namespace: The namespace all output variables will be accessed from. :param Sequence[str] output_artifacts: A list of artifact names to output. Output artifact names must be unique within a pipeline. @@ -548,7 +548,7 @@ def version(self) -> str: @pulumi.getter def configuration(self) -> Optional[Mapping[str, str]]: """ - A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. + A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Note: The `DetectChanges` parameter (optional, default value is true) in the `configuration` section causes CodePipeline to automatically start your pipeline upon new commits. Please refer to AWS Documentation for more details: https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html#action-reference-CodestarConnectionSource-config. """ return pulumi.get(self, "configuration") diff --git a/sdk/python/pulumi_aws/datazone/__init__.py b/sdk/python/pulumi_aws/datazone/__init__.py index 9b19de0f82c..0f61dfd2148 100644 --- a/sdk/python/pulumi_aws/datazone/__init__.py +++ b/sdk/python/pulumi_aws/datazone/__init__.py @@ -7,8 +7,11 @@ # Export this package's modules as members: from .domain import * from .environment_blueprint_configuration import * +from .environment_profile import * +from .form_type import * from .get_environment_blueprint import * from .glossary import * +from .glossary_term import * from .project import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/datazone/_inputs.py b/sdk/python/pulumi_aws/datazone/_inputs.py index e87b68cfa35..f3e68704397 100644 --- a/sdk/python/pulumi_aws/datazone/_inputs.py +++ b/sdk/python/pulumi_aws/datazone/_inputs.py @@ -19,6 +19,18 @@ 'DomainSingleSignOnArgsDict', 'DomainTimeoutsArgs', 'DomainTimeoutsArgsDict', + 'EnvironmentProfileUserParameterArgs', + 'EnvironmentProfileUserParameterArgsDict', + 'FormTypeImportArgs', + 'FormTypeImportArgsDict', + 'FormTypeModelArgs', + 'FormTypeModelArgsDict', + 'FormTypeTimeoutsArgs', + 'FormTypeTimeoutsArgsDict', + 'GlossaryTermTermRelationsArgs', + 'GlossaryTermTermRelationsArgsDict', + 'GlossaryTermTimeoutsArgs', + 'GlossaryTermTimeoutsArgsDict', 'ProjectFailureReasonArgs', 'ProjectFailureReasonArgsDict', 'ProjectTimeoutsArgs', @@ -115,6 +127,254 @@ def delete(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "delete", value) +if not MYPY: + class EnvironmentProfileUserParameterArgsDict(TypedDict): + name: NotRequired[pulumi.Input[str]] + """ + Name of the environment profile parameter. + """ + value: NotRequired[pulumi.Input[str]] + """ + Value of the environment profile parameter. + """ +elif False: + EnvironmentProfileUserParameterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class EnvironmentProfileUserParameterArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: Name of the environment profile parameter. + :param pulumi.Input[str] value: Value of the environment profile parameter. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the environment profile parameter. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + Value of the environment profile parameter. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class FormTypeImportArgsDict(TypedDict): + name: pulumi.Input[str] + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + revision: pulumi.Input[str] + """ + Revision of the Form Type. + """ +elif False: + FormTypeImportArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FormTypeImportArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + revision: pulumi.Input[str]): + """ + :param pulumi.Input[str] name: Name of the form type. Must be the name of the structure in smithy document. + :param pulumi.Input[str] revision: Revision of the Form Type. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "revision", revision) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def revision(self) -> pulumi.Input[str]: + """ + Revision of the Form Type. + """ + return pulumi.get(self, "revision") + + @revision.setter + def revision(self, value: pulumi.Input[str]): + pulumi.set(self, "revision", value) + + +if not MYPY: + class FormTypeModelArgsDict(TypedDict): + smithy: pulumi.Input[str] + """ + Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + + The following arguments are optional: + """ +elif False: + FormTypeModelArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FormTypeModelArgs: + def __init__(__self__, *, + smithy: pulumi.Input[str]): + """ + :param pulumi.Input[str] smithy: Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + + The following arguments are optional: + """ + pulumi.set(__self__, "smithy", smithy) + + @property + @pulumi.getter + def smithy(self) -> pulumi.Input[str]: + """ + Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + + The following arguments are optional: + """ + return pulumi.get(self, "smithy") + + @smithy.setter + def smithy(self, value: pulumi.Input[str]): + pulumi.set(self, "smithy", value) + + +if not MYPY: + class FormTypeTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + FormTypeTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class FormTypeTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + +if not MYPY: + class GlossaryTermTermRelationsArgsDict(TypedDict): + classifies: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + String array that calssifies the term relations. + """ + is_as: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] +elif False: + GlossaryTermTermRelationsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GlossaryTermTermRelationsArgs: + def __init__(__self__, *, + classifies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + is_as: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] classifies: String array that calssifies the term relations. + """ + if classifies is not None: + pulumi.set(__self__, "classifies", classifies) + if is_as is not None: + pulumi.set(__self__, "is_as", is_as) + + @property + @pulumi.getter + def classifies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + String array that calssifies the term relations. + """ + return pulumi.get(self, "classifies") + + @classifies.setter + def classifies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "classifies", value) + + @property + @pulumi.getter(name="isAs") + def is_as(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "is_as") + + @is_as.setter + def is_as(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "is_as", value) + + +if not MYPY: + class GlossaryTermTimeoutsArgsDict(TypedDict): + create: NotRequired[pulumi.Input[str]] + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ +elif False: + GlossaryTermTimeoutsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GlossaryTermTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[pulumi.Input[str]]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @create.setter + def create(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create", value) + + if not MYPY: class ProjectFailureReasonArgsDict(TypedDict): code: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws/datazone/environment_profile.py b/sdk/python/pulumi_aws/datazone/environment_profile.py new file mode 100644 index 00000000000..75350e910e5 --- /dev/null +++ b/sdk/python/pulumi_aws/datazone/environment_profile.py @@ -0,0 +1,771 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['EnvironmentProfileArgs', 'EnvironmentProfile'] + +@pulumi.input_type +class EnvironmentProfileArgs: + def __init__(__self__, *, + aws_account_region: pulumi.Input[str], + domain_identifier: pulumi.Input[str], + environment_blueprint_identifier: pulumi.Input[str], + project_identifier: pulumi.Input[str], + aws_account_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + user_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]] = None): + """ + The set of arguments for constructing a EnvironmentProfile resource. + :param pulumi.Input[str] aws_account_region: Desired region for environment profile. + :param pulumi.Input[str] domain_identifier: Domain Identifier for environment profile. + :param pulumi.Input[str] environment_blueprint_identifier: ID of the blueprint which the environment will be created with. + :param pulumi.Input[str] project_identifier: Project identifier for environment profile. + + The following arguments are optional: + :param pulumi.Input[str] aws_account_id: Id of the AWS account being used. + :param pulumi.Input[str] description: Description of environment profile. + :param pulumi.Input[str] name: Name of the environment profile. + :param pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]] user_parameters: Array of user parameters of the environment profile with the following attributes: + """ + pulumi.set(__self__, "aws_account_region", aws_account_region) + pulumi.set(__self__, "domain_identifier", domain_identifier) + pulumi.set(__self__, "environment_blueprint_identifier", environment_blueprint_identifier) + pulumi.set(__self__, "project_identifier", project_identifier) + if aws_account_id is not None: + pulumi.set(__self__, "aws_account_id", aws_account_id) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if user_parameters is not None: + pulumi.set(__self__, "user_parameters", user_parameters) + + @property + @pulumi.getter(name="awsAccountRegion") + def aws_account_region(self) -> pulumi.Input[str]: + """ + Desired region for environment profile. + """ + return pulumi.get(self, "aws_account_region") + + @aws_account_region.setter + def aws_account_region(self, value: pulumi.Input[str]): + pulumi.set(self, "aws_account_region", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Input[str]: + """ + Domain Identifier for environment profile. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="environmentBlueprintIdentifier") + def environment_blueprint_identifier(self) -> pulumi.Input[str]: + """ + ID of the blueprint which the environment will be created with. + """ + return pulumi.get(self, "environment_blueprint_identifier") + + @environment_blueprint_identifier.setter + def environment_blueprint_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "environment_blueprint_identifier", value) + + @property + @pulumi.getter(name="projectIdentifier") + def project_identifier(self) -> pulumi.Input[str]: + """ + Project identifier for environment profile. + + The following arguments are optional: + """ + return pulumi.get(self, "project_identifier") + + @project_identifier.setter + def project_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "project_identifier", value) + + @property + @pulumi.getter(name="awsAccountId") + def aws_account_id(self) -> Optional[pulumi.Input[str]]: + """ + Id of the AWS account being used. + """ + return pulumi.get(self, "aws_account_id") + + @aws_account_id.setter + def aws_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aws_account_id", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of environment profile. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the environment profile. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="userParameters") + def user_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]]: + """ + Array of user parameters of the environment profile with the following attributes: + """ + return pulumi.get(self, "user_parameters") + + @user_parameters.setter + def user_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]]): + pulumi.set(self, "user_parameters", value) + + +@pulumi.input_type +class _EnvironmentProfileState: + def __init__(__self__, *, + aws_account_id: Optional[pulumi.Input[str]] = None, + aws_account_region: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + environment_blueprint_identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_identifier: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + user_parameters: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]] = None): + """ + Input properties used for looking up and filtering EnvironmentProfile resources. + :param pulumi.Input[str] aws_account_id: Id of the AWS account being used. + :param pulumi.Input[str] aws_account_region: Desired region for environment profile. + :param pulumi.Input[str] created_at: Creation time of environment profile. + :param pulumi.Input[str] created_by: Creator of environment profile. + :param pulumi.Input[str] description: Description of environment profile. + :param pulumi.Input[str] domain_identifier: Domain Identifier for environment profile. + :param pulumi.Input[str] environment_blueprint_identifier: ID of the blueprint which the environment will be created with. + :param pulumi.Input[str] name: Name of the environment profile. + :param pulumi.Input[str] project_identifier: Project identifier for environment profile. + + The following arguments are optional: + :param pulumi.Input[str] updated_at: Time of last update to environment profile. + :param pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]] user_parameters: Array of user parameters of the environment profile with the following attributes: + """ + if aws_account_id is not None: + pulumi.set(__self__, "aws_account_id", aws_account_id) + if aws_account_region is not None: + pulumi.set(__self__, "aws_account_region", aws_account_region) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if created_by is not None: + pulumi.set(__self__, "created_by", created_by) + if description is not None: + pulumi.set(__self__, "description", description) + if domain_identifier is not None: + pulumi.set(__self__, "domain_identifier", domain_identifier) + if environment_blueprint_identifier is not None: + pulumi.set(__self__, "environment_blueprint_identifier", environment_blueprint_identifier) + if name is not None: + pulumi.set(__self__, "name", name) + if project_identifier is not None: + pulumi.set(__self__, "project_identifier", project_identifier) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if user_parameters is not None: + pulumi.set(__self__, "user_parameters", user_parameters) + + @property + @pulumi.getter(name="awsAccountId") + def aws_account_id(self) -> Optional[pulumi.Input[str]]: + """ + Id of the AWS account being used. + """ + return pulumi.get(self, "aws_account_id") + + @aws_account_id.setter + def aws_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aws_account_id", value) + + @property + @pulumi.getter(name="awsAccountRegion") + def aws_account_region(self) -> Optional[pulumi.Input[str]]: + """ + Desired region for environment profile. + """ + return pulumi.get(self, "aws_account_region") + + @aws_account_region.setter + def aws_account_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "aws_account_region", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Creation time of environment profile. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> Optional[pulumi.Input[str]]: + """ + Creator of environment profile. + """ + return pulumi.get(self, "created_by") + + @created_by.setter + def created_by(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_by", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of environment profile. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Domain Identifier for environment profile. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="environmentBlueprintIdentifier") + def environment_blueprint_identifier(self) -> Optional[pulumi.Input[str]]: + """ + ID of the blueprint which the environment will be created with. + """ + return pulumi.get(self, "environment_blueprint_identifier") + + @environment_blueprint_identifier.setter + def environment_blueprint_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "environment_blueprint_identifier", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the environment profile. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="projectIdentifier") + def project_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Project identifier for environment profile. + + The following arguments are optional: + """ + return pulumi.get(self, "project_identifier") + + @project_identifier.setter + def project_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_identifier", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + Time of last update to environment profile. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter(name="userParameters") + def user_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]]: + """ + Array of user parameters of the environment profile with the following attributes: + """ + return pulumi.get(self, "user_parameters") + + @user_parameters.setter + def user_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EnvironmentProfileUserParameterArgs']]]]): + pulumi.set(self, "user_parameters", value) + + +class EnvironmentProfile(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + aws_account_region: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + environment_blueprint_identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_identifier: Optional[pulumi.Input[str]] = None, + user_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EnvironmentProfileUserParameterArgs', 'EnvironmentProfileUserParameterArgsDict']]]]] = None, + __props__=None): + """ + Resource for managing an AWS DataZone Environment Profile. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + domain_execution_role = aws.iam.Role("domain_execution_role", + name="example-name", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example-name", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + test_domain = aws.datazone.Domain("test", + name="example-name", + domain_execution_role=domain_execution_role.arn) + test_security_group = aws.ec2.SecurityGroup("test", name="example-name") + test_project = aws.datazone.Project("test", + domain_identifier=test_domain.id, + glossary_terms=["2N8w6XJCwZf"], + name="example-name", + description="desc", + skip_deletion_check=True) + test = aws.get_caller_identity() + test_get_region = aws.get_region() + test_get_environment_blueprint = aws.datazone.get_environment_blueprint_output(domain_id=test_domain.id, + name="DefaultDataLake", + managed=True) + test_environment_blueprint_configuration = aws.datazone.EnvironmentBlueprintConfiguration("test", + domain_id=test_domain.id, + environment_blueprint_id=test_get_environment_blueprint.id, + provisioning_role_arn=domain_execution_role.arn, + enabled_regions=[test_get_region.name]) + test_environment_profile = aws.datazone.EnvironmentProfile("test", + aws_account_id=test.account_id, + aws_account_region=test_get_region.name, + description="description", + environment_blueprint_identifier=test_get_environment_blueprint.id, + name="example-name", + project_identifier=test_project.id, + domain_identifier=test_domain.id, + user_parameters=[{ + "name": "consumerGlueDbName", + "value": "value", + }]) + ``` + + ## Import + + Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: + + ```sh + $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] aws_account_id: Id of the AWS account being used. + :param pulumi.Input[str] aws_account_region: Desired region for environment profile. + :param pulumi.Input[str] description: Description of environment profile. + :param pulumi.Input[str] domain_identifier: Domain Identifier for environment profile. + :param pulumi.Input[str] environment_blueprint_identifier: ID of the blueprint which the environment will be created with. + :param pulumi.Input[str] name: Name of the environment profile. + :param pulumi.Input[str] project_identifier: Project identifier for environment profile. + + The following arguments are optional: + :param pulumi.Input[Sequence[pulumi.Input[Union['EnvironmentProfileUserParameterArgs', 'EnvironmentProfileUserParameterArgsDict']]]] user_parameters: Array of user parameters of the environment profile with the following attributes: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EnvironmentProfileArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS DataZone Environment Profile. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + domain_execution_role = aws.iam.Role("domain_execution_role", + name="example-name", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example-name", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + test_domain = aws.datazone.Domain("test", + name="example-name", + domain_execution_role=domain_execution_role.arn) + test_security_group = aws.ec2.SecurityGroup("test", name="example-name") + test_project = aws.datazone.Project("test", + domain_identifier=test_domain.id, + glossary_terms=["2N8w6XJCwZf"], + name="example-name", + description="desc", + skip_deletion_check=True) + test = aws.get_caller_identity() + test_get_region = aws.get_region() + test_get_environment_blueprint = aws.datazone.get_environment_blueprint_output(domain_id=test_domain.id, + name="DefaultDataLake", + managed=True) + test_environment_blueprint_configuration = aws.datazone.EnvironmentBlueprintConfiguration("test", + domain_id=test_domain.id, + environment_blueprint_id=test_get_environment_blueprint.id, + provisioning_role_arn=domain_execution_role.arn, + enabled_regions=[test_get_region.name]) + test_environment_profile = aws.datazone.EnvironmentProfile("test", + aws_account_id=test.account_id, + aws_account_region=test_get_region.name, + description="description", + environment_blueprint_identifier=test_get_environment_blueprint.id, + name="example-name", + project_identifier=test_project.id, + domain_identifier=test_domain.id, + user_parameters=[{ + "name": "consumerGlueDbName", + "value": "value", + }]) + ``` + + ## Import + + Using `pulumi import`, import DataZone Environment Profile using a comma-delimited string combining `id` and `domain_identifier`. For example: + + ```sh + $ pulumi import aws:datazone/environmentProfile:EnvironmentProfile example environment_profile-id-12345678,domain-id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param EnvironmentProfileArgs 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(EnvironmentProfileArgs, 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, + aws_account_id: Optional[pulumi.Input[str]] = None, + aws_account_region: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + environment_blueprint_identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_identifier: Optional[pulumi.Input[str]] = None, + user_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EnvironmentProfileUserParameterArgs', 'EnvironmentProfileUserParameterArgsDict']]]]] = 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__ = EnvironmentProfileArgs.__new__(EnvironmentProfileArgs) + + __props__.__dict__["aws_account_id"] = aws_account_id + if aws_account_region is None and not opts.urn: + raise TypeError("Missing required property 'aws_account_region'") + __props__.__dict__["aws_account_region"] = aws_account_region + __props__.__dict__["description"] = description + if domain_identifier is None and not opts.urn: + raise TypeError("Missing required property 'domain_identifier'") + __props__.__dict__["domain_identifier"] = domain_identifier + if environment_blueprint_identifier is None and not opts.urn: + raise TypeError("Missing required property 'environment_blueprint_identifier'") + __props__.__dict__["environment_blueprint_identifier"] = environment_blueprint_identifier + __props__.__dict__["name"] = name + if project_identifier is None and not opts.urn: + raise TypeError("Missing required property 'project_identifier'") + __props__.__dict__["project_identifier"] = project_identifier + __props__.__dict__["user_parameters"] = user_parameters + __props__.__dict__["created_at"] = None + __props__.__dict__["created_by"] = None + __props__.__dict__["updated_at"] = None + super(EnvironmentProfile, __self__).__init__( + 'aws:datazone/environmentProfile:EnvironmentProfile', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + aws_account_id: Optional[pulumi.Input[str]] = None, + aws_account_region: Optional[pulumi.Input[str]] = None, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + environment_blueprint_identifier: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_identifier: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + user_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EnvironmentProfileUserParameterArgs', 'EnvironmentProfileUserParameterArgsDict']]]]] = None) -> 'EnvironmentProfile': + """ + Get an existing EnvironmentProfile 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] aws_account_id: Id of the AWS account being used. + :param pulumi.Input[str] aws_account_region: Desired region for environment profile. + :param pulumi.Input[str] created_at: Creation time of environment profile. + :param pulumi.Input[str] created_by: Creator of environment profile. + :param pulumi.Input[str] description: Description of environment profile. + :param pulumi.Input[str] domain_identifier: Domain Identifier for environment profile. + :param pulumi.Input[str] environment_blueprint_identifier: ID of the blueprint which the environment will be created with. + :param pulumi.Input[str] name: Name of the environment profile. + :param pulumi.Input[str] project_identifier: Project identifier for environment profile. + + The following arguments are optional: + :param pulumi.Input[str] updated_at: Time of last update to environment profile. + :param pulumi.Input[Sequence[pulumi.Input[Union['EnvironmentProfileUserParameterArgs', 'EnvironmentProfileUserParameterArgsDict']]]] user_parameters: Array of user parameters of the environment profile with the following attributes: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EnvironmentProfileState.__new__(_EnvironmentProfileState) + + __props__.__dict__["aws_account_id"] = aws_account_id + __props__.__dict__["aws_account_region"] = aws_account_region + __props__.__dict__["created_at"] = created_at + __props__.__dict__["created_by"] = created_by + __props__.__dict__["description"] = description + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["environment_blueprint_identifier"] = environment_blueprint_identifier + __props__.__dict__["name"] = name + __props__.__dict__["project_identifier"] = project_identifier + __props__.__dict__["updated_at"] = updated_at + __props__.__dict__["user_parameters"] = user_parameters + return EnvironmentProfile(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="awsAccountId") + def aws_account_id(self) -> pulumi.Output[str]: + """ + Id of the AWS account being used. + """ + return pulumi.get(self, "aws_account_id") + + @property + @pulumi.getter(name="awsAccountRegion") + def aws_account_region(self) -> pulumi.Output[str]: + """ + Desired region for environment profile. + """ + return pulumi.get(self, "aws_account_region") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Creation time of environment profile. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> pulumi.Output[str]: + """ + Creator of environment profile. + """ + return pulumi.get(self, "created_by") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + Description of environment profile. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Output[str]: + """ + Domain Identifier for environment profile. + """ + return pulumi.get(self, "domain_identifier") + + @property + @pulumi.getter(name="environmentBlueprintIdentifier") + def environment_blueprint_identifier(self) -> pulumi.Output[str]: + """ + ID of the blueprint which the environment will be created with. + """ + return pulumi.get(self, "environment_blueprint_identifier") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the environment profile. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="projectIdentifier") + def project_identifier(self) -> pulumi.Output[str]: + """ + Project identifier for environment profile. + + The following arguments are optional: + """ + return pulumi.get(self, "project_identifier") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + Time of last update to environment profile. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="userParameters") + def user_parameters(self) -> pulumi.Output[Optional[Sequence['outputs.EnvironmentProfileUserParameter']]]: + """ + Array of user parameters of the environment profile with the following attributes: + """ + return pulumi.get(self, "user_parameters") + diff --git a/sdk/python/pulumi_aws/datazone/form_type.py b/sdk/python/pulumi_aws/datazone/form_type.py new file mode 100644 index 00000000000..6f9b641417f --- /dev/null +++ b/sdk/python/pulumi_aws/datazone/form_type.py @@ -0,0 +1,754 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['FormTypeArgs', 'FormType'] + +@pulumi.input_type +class FormTypeArgs: + def __init__(__self__, *, + domain_identifier: pulumi.Input[str], + owning_project_identifier: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + model: Optional[pulumi.Input['FormTypeModelArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['FormTypeTimeoutsArgs']] = None): + """ + The set of arguments for constructing a FormType resource. + :param pulumi.Input[str] domain_identifier: Identifier of the domain. + :param pulumi.Input[str] owning_project_identifier: Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + :param pulumi.Input[str] description: Description of form type. Must have a length of between 1 and 2048 characters. + :param pulumi.Input['FormTypeModelArgs'] model: Object of the model of the form type that contains the following attributes. + :param pulumi.Input[str] name: Name of the form type. Must be the name of the structure in smithy document. + """ + pulumi.set(__self__, "domain_identifier", domain_identifier) + pulumi.set(__self__, "owning_project_identifier", owning_project_identifier) + if description is not None: + pulumi.set(__self__, "description", description) + if model is not None: + pulumi.set(__self__, "model", model) + if name is not None: + pulumi.set(__self__, "name", name) + if status is not None: + pulumi.set(__self__, "status", status) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Input[str]: + """ + Identifier of the domain. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="owningProjectIdentifier") + def owning_project_identifier(self) -> pulumi.Input[str]: + """ + Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + """ + return pulumi.get(self, "owning_project_identifier") + + @owning_project_identifier.setter + def owning_project_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "owning_project_identifier", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of form type. Must have a length of between 1 and 2048 characters. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def model(self) -> Optional[pulumi.Input['FormTypeModelArgs']]: + """ + Object of the model of the form type that contains the following attributes. + """ + return pulumi.get(self, "model") + + @model.setter + def model(self, value: Optional[pulumi.Input['FormTypeModelArgs']]): + pulumi.set(self, "model", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['FormTypeTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['FormTypeTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _FormTypeState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + imports: Optional[pulumi.Input[Sequence[pulumi.Input['FormTypeImportArgs']]]] = None, + model: Optional[pulumi.Input['FormTypeModelArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + origin_domain_id: Optional[pulumi.Input[str]] = None, + origin_project_id: Optional[pulumi.Input[str]] = None, + owning_project_identifier: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input['FormTypeTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering FormType resources. + :param pulumi.Input[str] created_at: Creation time of the Form Type. + :param pulumi.Input[str] created_by: Creator of the Form Type. + :param pulumi.Input[str] description: Description of form type. Must have a length of between 1 and 2048 characters. + :param pulumi.Input[str] domain_identifier: Identifier of the domain. + :param pulumi.Input['FormTypeModelArgs'] model: Object of the model of the form type that contains the following attributes. + :param pulumi.Input[str] name: Name of the form type. Must be the name of the structure in smithy document. + :param pulumi.Input[str] origin_domain_id: Origin domain id of the Form Type. + :param pulumi.Input[str] origin_project_id: Origin project id of the Form Type. + :param pulumi.Input[str] owning_project_identifier: Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + :param pulumi.Input[str] revision: Revision of the Form Type. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if created_by is not None: + pulumi.set(__self__, "created_by", created_by) + if description is not None: + pulumi.set(__self__, "description", description) + if domain_identifier is not None: + pulumi.set(__self__, "domain_identifier", domain_identifier) + if imports is not None: + pulumi.set(__self__, "imports", imports) + if model is not None: + pulumi.set(__self__, "model", model) + if name is not None: + pulumi.set(__self__, "name", name) + if origin_domain_id is not None: + pulumi.set(__self__, "origin_domain_id", origin_domain_id) + if origin_project_id is not None: + pulumi.set(__self__, "origin_project_id", origin_project_id) + if owning_project_identifier is not None: + pulumi.set(__self__, "owning_project_identifier", owning_project_identifier) + if revision is not None: + pulumi.set(__self__, "revision", revision) + if status is not None: + pulumi.set(__self__, "status", status) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Creation time of the Form Type. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> Optional[pulumi.Input[str]]: + """ + Creator of the Form Type. + """ + return pulumi.get(self, "created_by") + + @created_by.setter + def created_by(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_by", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of form type. Must have a length of between 1 and 2048 characters. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of the domain. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter + def imports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['FormTypeImportArgs']]]]: + return pulumi.get(self, "imports") + + @imports.setter + def imports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FormTypeImportArgs']]]]): + pulumi.set(self, "imports", value) + + @property + @pulumi.getter + def model(self) -> Optional[pulumi.Input['FormTypeModelArgs']]: + """ + Object of the model of the form type that contains the following attributes. + """ + return pulumi.get(self, "model") + + @model.setter + def model(self, value: Optional[pulumi.Input['FormTypeModelArgs']]): + pulumi.set(self, "model", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="originDomainId") + def origin_domain_id(self) -> Optional[pulumi.Input[str]]: + """ + Origin domain id of the Form Type. + """ + return pulumi.get(self, "origin_domain_id") + + @origin_domain_id.setter + def origin_domain_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "origin_domain_id", value) + + @property + @pulumi.getter(name="originProjectId") + def origin_project_id(self) -> Optional[pulumi.Input[str]]: + """ + Origin project id of the Form Type. + """ + return pulumi.get(self, "origin_project_id") + + @origin_project_id.setter + def origin_project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "origin_project_id", value) + + @property + @pulumi.getter(name="owningProjectIdentifier") + def owning_project_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + """ + return pulumi.get(self, "owning_project_identifier") + + @owning_project_identifier.setter + def owning_project_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "owning_project_identifier", value) + + @property + @pulumi.getter + def revision(self) -> Optional[pulumi.Input[str]]: + """ + Revision of the Form Type. + """ + return pulumi.get(self, "revision") + + @revision.setter + def revision(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "revision", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['FormTypeTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['FormTypeTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class FormType(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + model: Optional[pulumi.Input[Union['FormTypeModelArgs', 'FormTypeModelArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + owning_project_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['FormTypeTimeoutsArgs', 'FormTypeTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS DataZone Form Type. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + domain_execution_role = aws.iam.Role("domain_execution_role", + name="example name", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example name", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + test = aws.datazone.Domain("test", + name="example name", + domain_execution_role=domain_execution_role.arn) + test_security_group = aws.ec2.SecurityGroup("test", name="example name") + test_project = aws.datazone.Project("test", + domain_identifier=test.id, + glossary_terms=["2N8w6XJCwZf"], + name="example name", + description="desc", + skip_deletion_check=True) + test_form_type = aws.datazone.FormType("test", + description="desc", + name="SageMakerModelFormType", + domain_identifier=test.id, + owning_project_identifier=test_project.id, + status="DISABLED", + model={ + "smithy": \"\"\"\\x09structure SageMakerModelFormType { + \\x09\\x09\\x09@required + \\x09\\x09\\x09@amazon.datazone#searchable + \\x09\\x09\\x09modelName: String + + \\x09\\x09\\x09@required + \\x09\\x09\\x09modelArn: String + + \\x09\\x09\\x09@required + \\x09\\x09\\x09creationTime: String + \\x09\\x09\\x09} + \"\"\", + }) + ``` + + ## Import + + Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: + + ```sh + $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of form type. Must have a length of between 1 and 2048 characters. + :param pulumi.Input[str] domain_identifier: Identifier of the domain. + :param pulumi.Input[Union['FormTypeModelArgs', 'FormTypeModelArgsDict']] model: Object of the model of the form type that contains the following attributes. + :param pulumi.Input[str] name: Name of the form type. Must be the name of the structure in smithy document. + :param pulumi.Input[str] owning_project_identifier: Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: FormTypeArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS DataZone Form Type. + + ## Example Usage + + ### Basic Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + domain_execution_role = aws.iam.Role("domain_execution_role", + name="example name", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example name", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + test = aws.datazone.Domain("test", + name="example name", + domain_execution_role=domain_execution_role.arn) + test_security_group = aws.ec2.SecurityGroup("test", name="example name") + test_project = aws.datazone.Project("test", + domain_identifier=test.id, + glossary_terms=["2N8w6XJCwZf"], + name="example name", + description="desc", + skip_deletion_check=True) + test_form_type = aws.datazone.FormType("test", + description="desc", + name="SageMakerModelFormType", + domain_identifier=test.id, + owning_project_identifier=test_project.id, + status="DISABLED", + model={ + "smithy": \"\"\"\\x09structure SageMakerModelFormType { + \\x09\\x09\\x09@required + \\x09\\x09\\x09@amazon.datazone#searchable + \\x09\\x09\\x09modelName: String + + \\x09\\x09\\x09@required + \\x09\\x09\\x09modelArn: String + + \\x09\\x09\\x09@required + \\x09\\x09\\x09creationTime: String + \\x09\\x09\\x09} + \"\"\", + }) + ``` + + ## Import + + Using `pulumi import`, import DataZone Form Type using a comma separated value of `domain_identifier`,`name`,`revision`. For example: + + ```sh + $ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision + ``` + + :param str resource_name: The name of the resource. + :param FormTypeArgs 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(FormTypeArgs, 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, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + model: Optional[pulumi.Input[Union['FormTypeModelArgs', 'FormTypeModelArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + owning_project_identifier: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['FormTypeTimeoutsArgs', 'FormTypeTimeoutsArgsDict']]] = 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__ = FormTypeArgs.__new__(FormTypeArgs) + + __props__.__dict__["description"] = description + if domain_identifier is None and not opts.urn: + raise TypeError("Missing required property 'domain_identifier'") + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["model"] = model + __props__.__dict__["name"] = name + if owning_project_identifier is None and not opts.urn: + raise TypeError("Missing required property 'owning_project_identifier'") + __props__.__dict__["owning_project_identifier"] = owning_project_identifier + __props__.__dict__["status"] = status + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["created_at"] = None + __props__.__dict__["created_by"] = None + __props__.__dict__["imports"] = None + __props__.__dict__["origin_domain_id"] = None + __props__.__dict__["origin_project_id"] = None + __props__.__dict__["revision"] = None + super(FormType, __self__).__init__( + 'aws:datazone/formType:FormType', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + imports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['FormTypeImportArgs', 'FormTypeImportArgsDict']]]]] = None, + model: Optional[pulumi.Input[Union['FormTypeModelArgs', 'FormTypeModelArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + origin_domain_id: Optional[pulumi.Input[str]] = None, + origin_project_id: Optional[pulumi.Input[str]] = None, + owning_project_identifier: Optional[pulumi.Input[str]] = None, + revision: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + timeouts: Optional[pulumi.Input[Union['FormTypeTimeoutsArgs', 'FormTypeTimeoutsArgsDict']]] = None) -> 'FormType': + """ + Get an existing FormType 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] created_at: Creation time of the Form Type. + :param pulumi.Input[str] created_by: Creator of the Form Type. + :param pulumi.Input[str] description: Description of form type. Must have a length of between 1 and 2048 characters. + :param pulumi.Input[str] domain_identifier: Identifier of the domain. + :param pulumi.Input[Union['FormTypeModelArgs', 'FormTypeModelArgsDict']] model: Object of the model of the form type that contains the following attributes. + :param pulumi.Input[str] name: Name of the form type. Must be the name of the structure in smithy document. + :param pulumi.Input[str] origin_domain_id: Origin domain id of the Form Type. + :param pulumi.Input[str] origin_project_id: Origin project id of the Form Type. + :param pulumi.Input[str] owning_project_identifier: Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + :param pulumi.Input[str] revision: Revision of the Form Type. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _FormTypeState.__new__(_FormTypeState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["created_by"] = created_by + __props__.__dict__["description"] = description + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["imports"] = imports + __props__.__dict__["model"] = model + __props__.__dict__["name"] = name + __props__.__dict__["origin_domain_id"] = origin_domain_id + __props__.__dict__["origin_project_id"] = origin_project_id + __props__.__dict__["owning_project_identifier"] = owning_project_identifier + __props__.__dict__["revision"] = revision + __props__.__dict__["status"] = status + __props__.__dict__["timeouts"] = timeouts + return FormType(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Creation time of the Form Type. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> pulumi.Output[str]: + """ + Creator of the Form Type. + """ + return pulumi.get(self, "created_by") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of form type. Must have a length of between 1 and 2048 characters. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Output[str]: + """ + Identifier of the domain. + """ + return pulumi.get(self, "domain_identifier") + + @property + @pulumi.getter + def imports(self) -> pulumi.Output[Sequence['outputs.FormTypeImport']]: + return pulumi.get(self, "imports") + + @property + @pulumi.getter + def model(self) -> pulumi.Output[Optional['outputs.FormTypeModel']]: + """ + Object of the model of the form type that contains the following attributes. + """ + return pulumi.get(self, "model") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="originDomainId") + def origin_domain_id(self) -> pulumi.Output[str]: + """ + Origin domain id of the Form Type. + """ + return pulumi.get(self, "origin_domain_id") + + @property + @pulumi.getter(name="originProjectId") + def origin_project_id(self) -> pulumi.Output[str]: + """ + Origin project id of the Form Type. + """ + return pulumi.get(self, "origin_project_id") + + @property + @pulumi.getter(name="owningProjectIdentifier") + def owning_project_identifier(self) -> pulumi.Output[str]: + """ + Identifier of project that owns the form type. Must follow regex of ^[a-zA-Z0-9_-]{1,36}. + """ + return pulumi.get(self, "owning_project_identifier") + + @property + @pulumi.getter + def revision(self) -> pulumi.Output[str]: + """ + Revision of the Form Type. + """ + return pulumi.get(self, "revision") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + return pulumi.get(self, "status") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.FormTypeTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/datazone/glossary_term.py b/sdk/python/pulumi_aws/datazone/glossary_term.py new file mode 100644 index 00000000000..fb08a7bc411 --- /dev/null +++ b/sdk/python/pulumi_aws/datazone/glossary_term.py @@ -0,0 +1,699 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['GlossaryTermArgs', 'GlossaryTerm'] + +@pulumi.input_type +class GlossaryTermArgs: + def __init__(__self__, *, + glossary_identifier: pulumi.Input[str], + domain_identifier: Optional[pulumi.Input[str]] = None, + long_description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + short_description: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + term_relations: Optional[pulumi.Input['GlossaryTermTermRelationsArgs']] = None, + timeouts: Optional[pulumi.Input['GlossaryTermTimeoutsArgs']] = None): + """ + The set of arguments for constructing a GlossaryTerm resource. + :param pulumi.Input[str] glossary_identifier: Identifier of glossary. + :param pulumi.Input[str] domain_identifier: Identifier of domain. + :param pulumi.Input[str] long_description: Long description of entry. + :param pulumi.Input[str] name: Name of glossary term. + + The following arguments are optional: + :param pulumi.Input[str] short_description: Short description of entry. + :param pulumi.Input[str] status: If glossary term is ENABLED or DISABLED. + :param pulumi.Input['GlossaryTermTermRelationsArgs'] term_relations: Object classifying the term relations through the following attributes: + """ + pulumi.set(__self__, "glossary_identifier", glossary_identifier) + if domain_identifier is not None: + pulumi.set(__self__, "domain_identifier", domain_identifier) + if long_description is not None: + pulumi.set(__self__, "long_description", long_description) + if name is not None: + pulumi.set(__self__, "name", name) + if short_description is not None: + pulumi.set(__self__, "short_description", short_description) + if status is not None: + pulumi.set(__self__, "status", status) + if term_relations is not None: + pulumi.set(__self__, "term_relations", term_relations) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="glossaryIdentifier") + def glossary_identifier(self) -> pulumi.Input[str]: + """ + Identifier of glossary. + """ + return pulumi.get(self, "glossary_identifier") + + @glossary_identifier.setter + def glossary_identifier(self, value: pulumi.Input[str]): + pulumi.set(self, "glossary_identifier", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of domain. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="longDescription") + def long_description(self) -> Optional[pulumi.Input[str]]: + """ + Long description of entry. + """ + return pulumi.get(self, "long_description") + + @long_description.setter + def long_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "long_description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of glossary term. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="shortDescription") + def short_description(self) -> Optional[pulumi.Input[str]]: + """ + Short description of entry. + """ + return pulumi.get(self, "short_description") + + @short_description.setter + def short_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "short_description", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + If glossary term is ENABLED or DISABLED. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="termRelations") + def term_relations(self) -> Optional[pulumi.Input['GlossaryTermTermRelationsArgs']]: + """ + Object classifying the term relations through the following attributes: + """ + return pulumi.get(self, "term_relations") + + @term_relations.setter + def term_relations(self, value: Optional[pulumi.Input['GlossaryTermTermRelationsArgs']]): + pulumi.set(self, "term_relations", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GlossaryTermTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GlossaryTermTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _GlossaryTermState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_identifier: Optional[pulumi.Input[str]] = None, + long_description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + short_description: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + term_relations: Optional[pulumi.Input['GlossaryTermTermRelationsArgs']] = None, + timeouts: Optional[pulumi.Input['GlossaryTermTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering GlossaryTerm resources. + :param pulumi.Input[str] created_at: Time of glossary term creation. + :param pulumi.Input[str] created_by: Creator of glossary term. + :param pulumi.Input[str] domain_identifier: Identifier of domain. + :param pulumi.Input[str] glossary_identifier: Identifier of glossary. + :param pulumi.Input[str] long_description: Long description of entry. + :param pulumi.Input[str] name: Name of glossary term. + + The following arguments are optional: + :param pulumi.Input[str] short_description: Short description of entry. + :param pulumi.Input[str] status: If glossary term is ENABLED or DISABLED. + :param pulumi.Input['GlossaryTermTermRelationsArgs'] term_relations: Object classifying the term relations through the following attributes: + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if created_by is not None: + pulumi.set(__self__, "created_by", created_by) + if domain_identifier is not None: + pulumi.set(__self__, "domain_identifier", domain_identifier) + if glossary_identifier is not None: + pulumi.set(__self__, "glossary_identifier", glossary_identifier) + if long_description is not None: + pulumi.set(__self__, "long_description", long_description) + if name is not None: + pulumi.set(__self__, "name", name) + if short_description is not None: + pulumi.set(__self__, "short_description", short_description) + if status is not None: + pulumi.set(__self__, "status", status) + if term_relations is not None: + pulumi.set(__self__, "term_relations", term_relations) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Time of glossary term creation. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> Optional[pulumi.Input[str]]: + """ + Creator of glossary term. + """ + return pulumi.get(self, "created_by") + + @created_by.setter + def created_by(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_by", value) + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of domain. + """ + return pulumi.get(self, "domain_identifier") + + @domain_identifier.setter + def domain_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_identifier", value) + + @property + @pulumi.getter(name="glossaryIdentifier") + def glossary_identifier(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of glossary. + """ + return pulumi.get(self, "glossary_identifier") + + @glossary_identifier.setter + def glossary_identifier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "glossary_identifier", value) + + @property + @pulumi.getter(name="longDescription") + def long_description(self) -> Optional[pulumi.Input[str]]: + """ + Long description of entry. + """ + return pulumi.get(self, "long_description") + + @long_description.setter + def long_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "long_description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of glossary term. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="shortDescription") + def short_description(self) -> Optional[pulumi.Input[str]]: + """ + Short description of entry. + """ + return pulumi.get(self, "short_description") + + @short_description.setter + def short_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "short_description", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + If glossary term is ENABLED or DISABLED. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="termRelations") + def term_relations(self) -> Optional[pulumi.Input['GlossaryTermTermRelationsArgs']]: + """ + Object classifying the term relations through the following attributes: + """ + return pulumi.get(self, "term_relations") + + @term_relations.setter + def term_relations(self, value: Optional[pulumi.Input['GlossaryTermTermRelationsArgs']]): + pulumi.set(self, "term_relations", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['GlossaryTermTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['GlossaryTermTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class GlossaryTerm(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_identifier: Optional[pulumi.Input[str]] = None, + long_description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + short_description: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + term_relations: Optional[pulumi.Input[Union['GlossaryTermTermRelationsArgs', 'GlossaryTermTermRelationsArgsDict']]] = None, + timeouts: Optional[pulumi.Input[Union['GlossaryTermTimeoutsArgs', 'GlossaryTermTimeoutsArgsDict']]] = None, + __props__=None): + """ + Resource for managing an AWS DataZone Glossary Term. + + ## Example Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.iam.Role("example", + name="example", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + example_domain = aws.datazone.Domain("example", + name="example_name", + domain_execution_role=example.arn) + example_security_group = aws.ec2.SecurityGroup("example", name="example_name") + example_project = aws.datazone.Project("example", + domain_identifier=example_domain.id, + glossary_terms=["2N8w6XJCwZf"], + name="example", + skip_deletion_check=True) + example_glossary = aws.datazone.Glossary("example", + description="description", + name="example", + owning_project_identifier=example_project.id, + status="ENABLED", + domain_identifier=example_project.domain_identifier) + example_glossary_term = aws.datazone.GlossaryTerm("example", + domain_identifier=example_domain.id, + glossary_identifier=example_glossary.id, + name="example", + status="ENABLED") + ``` + + ## Import + + Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: + + ```sh + $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] domain_identifier: Identifier of domain. + :param pulumi.Input[str] glossary_identifier: Identifier of glossary. + :param pulumi.Input[str] long_description: Long description of entry. + :param pulumi.Input[str] name: Name of glossary term. + + The following arguments are optional: + :param pulumi.Input[str] short_description: Short description of entry. + :param pulumi.Input[str] status: If glossary term is ENABLED or DISABLED. + :param pulumi.Input[Union['GlossaryTermTermRelationsArgs', 'GlossaryTermTermRelationsArgsDict']] term_relations: Object classifying the term relations through the following attributes: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GlossaryTermArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS DataZone Glossary Term. + + ## Example Usage + + ```python + import pulumi + import json + import pulumi_aws as aws + + example = aws.iam.Role("example", + name="example", + assume_role_policy=json.dumps({ + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "datazone.amazonaws.com", + }, + }, + { + "Action": [ + "sts:AssumeRole", + "sts:TagSession", + ], + "Effect": "Allow", + "Principal": { + "Service": "cloudformation.amazonaws.com", + }, + }, + ], + }), + inline_policies=[{ + "name": "example", + "policy": json.dumps({ + "version": "2012-10-17", + "statement": [{ + "action": [ + "datazone:*", + "ram:*", + "sso:*", + "kms:*", + ], + "effect": "Allow", + "resource": "*", + }], + }), + }]) + example_domain = aws.datazone.Domain("example", + name="example_name", + domain_execution_role=example.arn) + example_security_group = aws.ec2.SecurityGroup("example", name="example_name") + example_project = aws.datazone.Project("example", + domain_identifier=example_domain.id, + glossary_terms=["2N8w6XJCwZf"], + name="example", + skip_deletion_check=True) + example_glossary = aws.datazone.Glossary("example", + description="description", + name="example", + owning_project_identifier=example_project.id, + status="ENABLED", + domain_identifier=example_project.domain_identifier) + example_glossary_term = aws.datazone.GlossaryTerm("example", + domain_identifier=example_domain.id, + glossary_identifier=example_glossary.id, + name="example", + status="ENABLED") + ``` + + ## Import + + Using `pulumi import`, import DataZone Glossary Term using a comma-delimited string combining the `domain_identifier`, `id`, and the `glossary_identifier`. For example: + + ```sh + $ pulumi import aws:datazone/glossaryTerm:GlossaryTerm example domain-id,glossary-term-id,glossary-id + ``` + + :param str resource_name: The name of the resource. + :param GlossaryTermArgs 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(GlossaryTermArgs, 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, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_identifier: Optional[pulumi.Input[str]] = None, + long_description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + short_description: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + term_relations: Optional[pulumi.Input[Union['GlossaryTermTermRelationsArgs', 'GlossaryTermTermRelationsArgsDict']]] = None, + timeouts: Optional[pulumi.Input[Union['GlossaryTermTimeoutsArgs', 'GlossaryTermTimeoutsArgsDict']]] = 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__ = GlossaryTermArgs.__new__(GlossaryTermArgs) + + __props__.__dict__["domain_identifier"] = domain_identifier + if glossary_identifier is None and not opts.urn: + raise TypeError("Missing required property 'glossary_identifier'") + __props__.__dict__["glossary_identifier"] = glossary_identifier + __props__.__dict__["long_description"] = long_description + __props__.__dict__["name"] = name + __props__.__dict__["short_description"] = short_description + __props__.__dict__["status"] = status + __props__.__dict__["term_relations"] = term_relations + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["created_at"] = None + __props__.__dict__["created_by"] = None + super(GlossaryTerm, __self__).__init__( + 'aws:datazone/glossaryTerm:GlossaryTerm', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + created_by: Optional[pulumi.Input[str]] = None, + domain_identifier: Optional[pulumi.Input[str]] = None, + glossary_identifier: Optional[pulumi.Input[str]] = None, + long_description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + short_description: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + term_relations: Optional[pulumi.Input[Union['GlossaryTermTermRelationsArgs', 'GlossaryTermTermRelationsArgsDict']]] = None, + timeouts: Optional[pulumi.Input[Union['GlossaryTermTimeoutsArgs', 'GlossaryTermTimeoutsArgsDict']]] = None) -> 'GlossaryTerm': + """ + Get an existing GlossaryTerm 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] created_at: Time of glossary term creation. + :param pulumi.Input[str] created_by: Creator of glossary term. + :param pulumi.Input[str] domain_identifier: Identifier of domain. + :param pulumi.Input[str] glossary_identifier: Identifier of glossary. + :param pulumi.Input[str] long_description: Long description of entry. + :param pulumi.Input[str] name: Name of glossary term. + + The following arguments are optional: + :param pulumi.Input[str] short_description: Short description of entry. + :param pulumi.Input[str] status: If glossary term is ENABLED or DISABLED. + :param pulumi.Input[Union['GlossaryTermTermRelationsArgs', 'GlossaryTermTermRelationsArgsDict']] term_relations: Object classifying the term relations through the following attributes: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GlossaryTermState.__new__(_GlossaryTermState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["created_by"] = created_by + __props__.__dict__["domain_identifier"] = domain_identifier + __props__.__dict__["glossary_identifier"] = glossary_identifier + __props__.__dict__["long_description"] = long_description + __props__.__dict__["name"] = name + __props__.__dict__["short_description"] = short_description + __props__.__dict__["status"] = status + __props__.__dict__["term_relations"] = term_relations + __props__.__dict__["timeouts"] = timeouts + return GlossaryTerm(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Time of glossary term creation. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="createdBy") + def created_by(self) -> pulumi.Output[str]: + """ + Creator of glossary term. + """ + return pulumi.get(self, "created_by") + + @property + @pulumi.getter(name="domainIdentifier") + def domain_identifier(self) -> pulumi.Output[Optional[str]]: + """ + Identifier of domain. + """ + return pulumi.get(self, "domain_identifier") + + @property + @pulumi.getter(name="glossaryIdentifier") + def glossary_identifier(self) -> pulumi.Output[str]: + """ + Identifier of glossary. + """ + return pulumi.get(self, "glossary_identifier") + + @property + @pulumi.getter(name="longDescription") + def long_description(self) -> pulumi.Output[Optional[str]]: + """ + Long description of entry. + """ + return pulumi.get(self, "long_description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of glossary term. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="shortDescription") + def short_description(self) -> pulumi.Output[Optional[str]]: + """ + Short description of entry. + """ + return pulumi.get(self, "short_description") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[Optional[str]]: + """ + If glossary term is ENABLED or DISABLED. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="termRelations") + def term_relations(self) -> pulumi.Output[Optional['outputs.GlossaryTermTermRelations']]: + """ + Object classifying the term relations through the following attributes: + """ + return pulumi.get(self, "term_relations") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.GlossaryTermTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/datazone/outputs.py b/sdk/python/pulumi_aws/datazone/outputs.py index 8b179a8cab5..1237cd9782e 100644 --- a/sdk/python/pulumi_aws/datazone/outputs.py +++ b/sdk/python/pulumi_aws/datazone/outputs.py @@ -17,6 +17,12 @@ __all__ = [ 'DomainSingleSignOn', 'DomainTimeouts', + 'EnvironmentProfileUserParameter', + 'FormTypeImport', + 'FormTypeModel', + 'FormTypeTimeouts', + 'GlossaryTermTermRelations', + 'GlossaryTermTimeouts', 'ProjectFailureReason', 'ProjectTimeouts', ] @@ -90,6 +96,170 @@ def delete(self) -> Optional[str]: return pulumi.get(self, "delete") +@pulumi.output_type +class EnvironmentProfileUserParameter(dict): + def __init__(__self__, *, + name: Optional[str] = None, + value: Optional[str] = None): + """ + :param str name: Name of the environment profile parameter. + :param str value: Value of the environment profile parameter. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name of the environment profile parameter. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + """ + Value of the environment profile parameter. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class FormTypeImport(dict): + def __init__(__self__, *, + name: str, + revision: str): + """ + :param str name: Name of the form type. Must be the name of the structure in smithy document. + :param str revision: Revision of the Form Type. + """ + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "revision", revision) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the form type. Must be the name of the structure in smithy document. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def revision(self) -> str: + """ + Revision of the Form Type. + """ + return pulumi.get(self, "revision") + + +@pulumi.output_type +class FormTypeModel(dict): + def __init__(__self__, *, + smithy: str): + """ + :param str smithy: Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + + The following arguments are optional: + """ + pulumi.set(__self__, "smithy", smithy) + + @property + @pulumi.getter + def smithy(self) -> str: + """ + Smithy document that indicates the model of the API. Must be between the lengths 1 and 100,000 and be encoded as a smithy document. + + The following arguments are optional: + """ + return pulumi.get(self, "smithy") + + +@pulumi.output_type +class FormTypeTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + +@pulumi.output_type +class GlossaryTermTermRelations(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "isAs": + suggest = "is_as" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GlossaryTermTermRelations. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GlossaryTermTermRelations.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GlossaryTermTermRelations.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + classifies: Optional[Sequence[str]] = None, + is_as: Optional[Sequence[str]] = None): + """ + :param Sequence[str] classifies: String array that calssifies the term relations. + """ + if classifies is not None: + pulumi.set(__self__, "classifies", classifies) + if is_as is not None: + pulumi.set(__self__, "is_as", is_as) + + @property + @pulumi.getter + def classifies(self) -> Optional[Sequence[str]]: + """ + String array that calssifies the term relations. + """ + return pulumi.get(self, "classifies") + + @property + @pulumi.getter(name="isAs") + def is_as(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "is_as") + + +@pulumi.output_type +class GlossaryTermTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None): + """ + :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + if create is not None: + pulumi.set(__self__, "create", create) + + @property + @pulumi.getter + def create(self) -> Optional[str]: + """ + A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + """ + return pulumi.get(self, "create") + + @pulumi.output_type class ProjectFailureReason(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/lb/listener.py b/sdk/python/pulumi_aws/lb/listener.py index f5f14dcb5ff..4b3ef73b4a0 100644 --- a/sdk/python/pulumi_aws/lb/listener.py +++ b/sdk/python/pulumi_aws/lb/listener.py @@ -41,7 +41,7 @@ def __init__(__self__, *, :param pulumi.Input['ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -153,7 +153,7 @@ def protocol(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> Optional[pulumi.Input[str]]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") @@ -202,7 +202,7 @@ def __init__(__self__, *, :param pulumi.Input['ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -336,7 +336,7 @@ def protocol(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> Optional[pulumi.Input[str]]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") @@ -424,6 +424,7 @@ def __init__(__self__, load_balancer_arn=front_end_aws_lb["arn"], port=443, protocol="TLS", + ssl_policy="ELBSecurityPolicy-2016-08", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpn_policy="HTTP2Preferred", default_actions=[{ @@ -604,7 +605,7 @@ def __init__(__self__, :param pulumi.Input[Union['ListenerMutualAuthenticationArgs', 'ListenerMutualAuthenticationArgsDict']] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -652,6 +653,7 @@ def __init__(__self__, load_balancer_arn=front_end_aws_lb["arn"], port=443, protocol="TLS", + ssl_policy="ELBSecurityPolicy-2016-08", certificate_arn="arn:aws:iam::187416307283:server-certificate/test_cert_rab3wuqwgja25ct3n4jdj2tzu4", alpn_policy="HTTP2Preferred", default_actions=[{ @@ -909,7 +911,7 @@ def get(resource_name: str, :param pulumi.Input[Union['ListenerMutualAuthenticationArgs', 'ListenerMutualAuthenticationArgsDict']] mutual_authentication: The mutual authentication configuration information. Detailed below. :param pulumi.Input[int] port: Port on which the load balancer is listening. Not valid for Gateway Load Balancers. :param pulumi.Input[str] protocol: Protocol for connections from clients to the load balancer. For Application Load Balancers, valid values are `HTTP` and `HTTPS`, with a default of `HTTP`. For Network Load Balancers, valid values are `TCP`, `TLS`, `UDP`, and `TCP_UDP`. Not valid to use `UDP` or `TCP_UDP` if dual-stack mode is enabled. Not valid for Gateway Load Balancers. - :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + :param pulumi.Input[str] ssl_policy: Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. @@ -1002,7 +1004,7 @@ def protocol(self) -> pulumi.Output[str]: @pulumi.getter(name="sslPolicy") def ssl_policy(self) -> pulumi.Output[str]: """ - Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. + Name of the SSL Policy for the listener. Required if `protocol` is `HTTPS` or `TLS`. Default is `ELBSecurityPolicy-2016-08`. """ return pulumi.get(self, "ssl_policy") diff --git a/sdk/python/pulumi_aws/lex/_inputs.py b/sdk/python/pulumi_aws/lex/_inputs.py index ef4ae2128b0..7712f4e0aeb 100644 --- a/sdk/python/pulumi_aws/lex/_inputs.py +++ b/sdk/python/pulumi_aws/lex/_inputs.py @@ -2075,8 +2075,8 @@ 'V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSourceArgsDict', 'V2modelsSlotTypeSlotTypeValuesArgs', 'V2modelsSlotTypeSlotTypeValuesArgsDict', - 'V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs', - 'V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgsDict', + 'V2modelsSlotTypeSlotTypeValuesSampleValueArgs', + 'V2modelsSlotTypeSlotTypeValuesSampleValueArgsDict', 'V2modelsSlotTypeSlotTypeValuesSynonymArgs', 'V2modelsSlotTypeSlotTypeValuesSynonymArgsDict', 'V2modelsSlotTypeTimeoutsArgs', @@ -59529,9 +59529,9 @@ def s3_object_key(self, value: pulumi.Input[str]): if not MYPY: class V2modelsSlotTypeSlotTypeValuesArgsDict(TypedDict): - slot_type_values: pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgsDict']]] + sample_values: NotRequired[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSampleValueArgsDict']]]] """ - List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + Value of the slot type entry. See `sample_value` argument reference below. """ synonyms: NotRequired[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSynonymArgsDict']]]] """ @@ -59543,27 +59543,28 @@ class V2modelsSlotTypeSlotTypeValuesArgsDict(TypedDict): @pulumi.input_type class V2modelsSlotTypeSlotTypeValuesArgs: def __init__(__self__, *, - slot_type_values: pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs']]], + sample_values: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSampleValueArgs']]]] = None, synonyms: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSynonymArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs']]] slot_type_values: List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + :param pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSampleValueArgs']]] sample_values: Value of the slot type entry. See `sample_value` argument reference below. :param pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSynonymArgs']]] synonyms: Additional values related to the slot type entry. See `sample_value` argument reference below. """ - pulumi.set(__self__, "slot_type_values", slot_type_values) + if sample_values is not None: + pulumi.set(__self__, "sample_values", sample_values) if synonyms is not None: pulumi.set(__self__, "synonyms", synonyms) @property - @pulumi.getter(name="slotTypeValues") - def slot_type_values(self) -> pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs']]]: + @pulumi.getter(name="sampleValues") + def sample_values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSampleValueArgs']]]]: """ - List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + Value of the slot type entry. See `sample_value` argument reference below. """ - return pulumi.get(self, "slot_type_values") + return pulumi.get(self, "sample_values") - @slot_type_values.setter - def slot_type_values(self, value: pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs']]]): - pulumi.set(self, "slot_type_values", value) + @sample_values.setter + def sample_values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsSlotTypeSlotTypeValuesSampleValueArgs']]]]): + pulumi.set(self, "sample_values", value) @property @pulumi.getter @@ -59579,16 +59580,16 @@ def synonyms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['V2modelsS if not MYPY: - class V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgsDict(TypedDict): + class V2modelsSlotTypeSlotTypeValuesSampleValueArgsDict(TypedDict): value: pulumi.Input[str] """ Value that can be used for a slot type. """ elif False: - V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgsDict: TypeAlias = Mapping[str, Any] + V2modelsSlotTypeSlotTypeValuesSampleValueArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs: +class V2modelsSlotTypeSlotTypeValuesSampleValueArgs: def __init__(__self__, *, value: pulumi.Input[str]): """ diff --git a/sdk/python/pulumi_aws/lex/outputs.py b/sdk/python/pulumi_aws/lex/outputs.py index 30656d81a0e..07dbedeb014 100644 --- a/sdk/python/pulumi_aws/lex/outputs.py +++ b/sdk/python/pulumi_aws/lex/outputs.py @@ -1046,7 +1046,7 @@ 'V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSetting', 'V2modelsSlotTypeExternalSourceSettingGrammarSlotTypeSettingSource', 'V2modelsSlotTypeSlotTypeValues', - 'V2modelsSlotTypeSlotTypeValuesSlotTypeValue', + 'V2modelsSlotTypeSlotTypeValuesSampleValue', 'V2modelsSlotTypeSlotTypeValuesSynonym', 'V2modelsSlotTypeTimeouts', 'V2modelsSlotTypeValueSelectionSetting', @@ -45121,8 +45121,8 @@ class V2modelsSlotTypeSlotTypeValues(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "slotTypeValues": - suggest = "slot_type_values" + if key == "sampleValues": + suggest = "sample_values" if suggest: pulumi.log.warn(f"Key '{key}' not found in V2modelsSlotTypeSlotTypeValues. Access the value via the '{suggest}' property getter instead.") @@ -45136,23 +45136,24 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - slot_type_values: Sequence['outputs.V2modelsSlotTypeSlotTypeValuesSlotTypeValue'], + sample_values: Optional[Sequence['outputs.V2modelsSlotTypeSlotTypeValuesSampleValue']] = None, synonyms: Optional[Sequence['outputs.V2modelsSlotTypeSlotTypeValuesSynonym']] = None): """ - :param Sequence['V2modelsSlotTypeSlotTypeValuesSlotTypeValueArgs'] slot_type_values: List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + :param Sequence['V2modelsSlotTypeSlotTypeValuesSampleValueArgs'] sample_values: Value of the slot type entry. See `sample_value` argument reference below. :param Sequence['V2modelsSlotTypeSlotTypeValuesSynonymArgs'] synonyms: Additional values related to the slot type entry. See `sample_value` argument reference below. """ - pulumi.set(__self__, "slot_type_values", slot_type_values) + if sample_values is not None: + pulumi.set(__self__, "sample_values", sample_values) if synonyms is not None: pulumi.set(__self__, "synonyms", synonyms) @property - @pulumi.getter(name="slotTypeValues") - def slot_type_values(self) -> Sequence['outputs.V2modelsSlotTypeSlotTypeValuesSlotTypeValue']: + @pulumi.getter(name="sampleValues") + def sample_values(self) -> Optional[Sequence['outputs.V2modelsSlotTypeSlotTypeValuesSampleValue']]: """ - List of SlotTypeValue objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot. See `slot_type_values` argument reference below. + Value of the slot type entry. See `sample_value` argument reference below. """ - return pulumi.get(self, "slot_type_values") + return pulumi.get(self, "sample_values") @property @pulumi.getter @@ -45164,7 +45165,7 @@ def synonyms(self) -> Optional[Sequence['outputs.V2modelsSlotTypeSlotTypeValuesS @pulumi.output_type -class V2modelsSlotTypeSlotTypeValuesSlotTypeValue(dict): +class V2modelsSlotTypeSlotTypeValuesSampleValue(dict): def __init__(__self__, *, value: str): """ diff --git a/sdk/python/pulumi_aws/msk/replicator.py b/sdk/python/pulumi_aws/msk/replicator.py index 5dbad081add..da08786faf5 100644 --- a/sdk/python/pulumi_aws/msk/replicator.py +++ b/sdk/python/pulumi_aws/msk/replicator.py @@ -311,6 +311,9 @@ def __init__(__self__, "target_compression_type": "NONE", "topic_replications": [{ "topics_to_replicates": [".*"], + "starting_position": { + "type": "LATEST", + }, }], "consumer_group_replications": [{ "consumer_groups_to_replicates": [".*"], @@ -381,6 +384,9 @@ def __init__(__self__, "target_compression_type": "NONE", "topic_replications": [{ "topics_to_replicates": [".*"], + "starting_position": { + "type": "LATEST", + }, }], "consumer_group_replications": [{ "consumer_groups_to_replicates": [".*"], diff --git a/sdk/python/pulumi_aws/networkfirewall/_inputs.py b/sdk/python/pulumi_aws/networkfirewall/_inputs.py index 9aeedda3eec..68ec411fecc 100644 --- a/sdk/python/pulumi_aws/networkfirewall/_inputs.py +++ b/sdk/python/pulumi_aws/networkfirewall/_inputs.py @@ -1084,7 +1084,7 @@ def ip_address_type(self, value: Optional[pulumi.Input[str]]): class LoggingConfigurationLoggingConfigurationArgsDict(TypedDict): log_destination_configs: pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgsDict']]] """ - Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. """ elif False: LoggingConfigurationLoggingConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -1094,7 +1094,7 @@ class LoggingConfigurationLoggingConfigurationArgs: def __init__(__self__, *, log_destination_configs: pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + :param pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. """ pulumi.set(__self__, "log_destination_configs", log_destination_configs) @@ -1102,7 +1102,7 @@ def __init__(__self__, *, @pulumi.getter(name="logDestinationConfigs") def log_destination_configs(self) -> pulumi.Input[Sequence[pulumi.Input['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs']]]: """ - Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. """ return pulumi.get(self, "log_destination_configs") @@ -1126,7 +1126,7 @@ class LoggingConfigurationLoggingConfigurationLogDestinationConfigArgsDict(Typed """ log_type: pulumi.Input[str] """ - The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ elif False: LoggingConfigurationLoggingConfigurationLogDestinationConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -1143,7 +1143,7 @@ def __init__(__self__, *, * For a CloudWatch log group, specify the key `logGroup` with the name of the CloudWatch log group. * For a Kinesis Data Firehose delivery stream, specify the key `deliveryStream` with the name of the delivery stream. :param pulumi.Input[str] log_destination_type: The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. - :param pulumi.Input[str] log_type: The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + :param pulumi.Input[str] log_type: The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ pulumi.set(__self__, "log_destination", log_destination) pulumi.set(__self__, "log_destination_type", log_destination_type) @@ -1180,7 +1180,7 @@ def log_destination_type(self, value: pulumi.Input[str]): @pulumi.getter(name="logType") def log_type(self) -> pulumi.Input[str]: """ - The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ return pulumi.get(self, "log_type") diff --git a/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py b/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py index edf17b2ba63..62a29f22a28 100644 --- a/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py +++ b/sdk/python/pulumi_aws/networkfirewall/logging_configuration.py @@ -162,7 +162,7 @@ def __init__(__self__, "delivery_stream": example_aws_kinesis_firehose_delivery_stream["name"], }, "log_destination_type": "KinesisDataFirehose", - "log_type": "ALERT", + "log_type": "TLS", }], }) ``` @@ -244,7 +244,7 @@ def __init__(__self__, "delivery_stream": example_aws_kinesis_firehose_delivery_stream["name"], }, "log_destination_type": "KinesisDataFirehose", - "log_type": "ALERT", + "log_type": "TLS", }], }) ``` diff --git a/sdk/python/pulumi_aws/networkfirewall/outputs.py b/sdk/python/pulumi_aws/networkfirewall/outputs.py index afa0b908c7b..a0615b1b525 100644 --- a/sdk/python/pulumi_aws/networkfirewall/outputs.py +++ b/sdk/python/pulumi_aws/networkfirewall/outputs.py @@ -933,7 +933,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, log_destination_configs: Sequence['outputs.LoggingConfigurationLoggingConfigurationLogDestinationConfig']): """ - :param Sequence['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs'] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + :param Sequence['LoggingConfigurationLoggingConfigurationLogDestinationConfigArgs'] log_destination_configs: Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. """ pulumi.set(__self__, "log_destination_configs", log_destination_configs) @@ -941,7 +941,7 @@ def __init__(__self__, *, @pulumi.getter(name="logDestinationConfigs") def log_destination_configs(self) -> Sequence['outputs.LoggingConfigurationLoggingConfigurationLogDestinationConfig']: """ - Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only two blocks can be specified; one for `FLOW` logs and one for `ALERT` logs. + Set of configuration blocks describing the logging details for a firewall. See Log Destination Config below for details. At most, only Three blocks can be specified; one for `FLOW` logs and one for `ALERT` logs and one for `TLS` logs. """ return pulumi.get(self, "log_destination_configs") @@ -979,7 +979,7 @@ def __init__(__self__, *, * For a CloudWatch log group, specify the key `logGroup` with the name of the CloudWatch log group. * For a Kinesis Data Firehose delivery stream, specify the key `deliveryStream` with the name of the delivery stream. :param str log_destination_type: The location to send logs to. Valid values: `S3`, `CloudWatchLogs`, `KinesisDataFirehose`. - :param str log_type: The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + :param str log_type: The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ pulumi.set(__self__, "log_destination", log_destination) pulumi.set(__self__, "log_destination_type", log_destination_type) @@ -1008,7 +1008,7 @@ def log_destination_type(self) -> str: @pulumi.getter(name="logType") def log_type(self) -> str: """ - The type of log to send. Valid values: `ALERT` or `FLOW`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. + The type of log to send. Valid values: `ALERT` or `FLOW` or `TLS`. Alert logs report traffic that matches a `StatefulRule` with an action setting that sends a log message. Flow logs are standard network traffic flow logs. """ return pulumi.get(self, "log_type") diff --git a/sdk/python/pulumi_aws/pinpoint/__init__.py b/sdk/python/pulumi_aws/pinpoint/__init__.py index 2a6dd51c35f..330d02106e9 100644 --- a/sdk/python/pulumi_aws/pinpoint/__init__.py +++ b/sdk/python/pulumi_aws/pinpoint/__init__.py @@ -13,6 +13,7 @@ from .app import * from .baidu_channel import * from .email_channel import * +from .email_template import * from .event_stream import * from .gcm_channel import * from .sms_channel import * diff --git a/sdk/python/pulumi_aws/pinpoint/_inputs.py b/sdk/python/pulumi_aws/pinpoint/_inputs.py index f04c9e3d96d..7cf82902688 100644 --- a/sdk/python/pulumi_aws/pinpoint/_inputs.py +++ b/sdk/python/pulumi_aws/pinpoint/_inputs.py @@ -21,6 +21,10 @@ 'AppLimitsArgsDict', 'AppQuietTimeArgs', 'AppQuietTimeArgsDict', + 'EmailTemplateEmailTemplateArgs', + 'EmailTemplateEmailTemplateArgsDict', + 'EmailTemplateEmailTemplateHeaderArgs', + 'EmailTemplateEmailTemplateHeaderArgsDict', ] MYPY = False @@ -241,3 +245,193 @@ def start(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "start", value) +if not MYPY: + class EmailTemplateEmailTemplateArgsDict(TypedDict): + default_substitutions: NotRequired[pulumi.Input[str]] + """ + JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + """ + description: NotRequired[pulumi.Input[str]] + headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateHeaderArgsDict']]]] + html_part: NotRequired[pulumi.Input[str]] + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + recommender_id: NotRequired[pulumi.Input[str]] + """ + The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + """ + subject: NotRequired[pulumi.Input[str]] + """ + Subject line, or title, to use in email messages that are based on the message template. + """ + text_part: NotRequired[pulumi.Input[str]] + """ + Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ +elif False: + EmailTemplateEmailTemplateArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class EmailTemplateEmailTemplateArgs: + def __init__(__self__, *, + default_substitutions: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateHeaderArgs']]]] = None, + html_part: Optional[pulumi.Input[str]] = None, + recommender_id: Optional[pulumi.Input[str]] = None, + subject: Optional[pulumi.Input[str]] = None, + text_part: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] default_substitutions: JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + :param pulumi.Input[str] html_part: The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + :param pulumi.Input[str] recommender_id: The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + :param pulumi.Input[str] subject: Subject line, or title, to use in email messages that are based on the message template. + :param pulumi.Input[str] text_part: Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + if default_substitutions is not None: + pulumi.set(__self__, "default_substitutions", default_substitutions) + if description is not None: + pulumi.set(__self__, "description", description) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if html_part is not None: + pulumi.set(__self__, "html_part", html_part) + if recommender_id is not None: + pulumi.set(__self__, "recommender_id", recommender_id) + if subject is not None: + pulumi.set(__self__, "subject", subject) + if text_part is not None: + pulumi.set(__self__, "text_part", text_part) + + @property + @pulumi.getter(name="defaultSubstitutions") + def default_substitutions(self) -> Optional[pulumi.Input[str]]: + """ + JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + """ + return pulumi.get(self, "default_substitutions") + + @default_substitutions.setter + def default_substitutions(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_substitutions", 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) + + @property + @pulumi.getter + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateHeaderArgs']]]]: + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateHeaderArgs']]]]): + pulumi.set(self, "headers", value) + + @property + @pulumi.getter(name="htmlPart") + def html_part(self) -> Optional[pulumi.Input[str]]: + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + return pulumi.get(self, "html_part") + + @html_part.setter + def html_part(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "html_part", value) + + @property + @pulumi.getter(name="recommenderId") + def recommender_id(self) -> Optional[pulumi.Input[str]]: + """ + The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + """ + return pulumi.get(self, "recommender_id") + + @recommender_id.setter + def recommender_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "recommender_id", value) + + @property + @pulumi.getter + def subject(self) -> Optional[pulumi.Input[str]]: + """ + Subject line, or title, to use in email messages that are based on the message template. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "subject", value) + + @property + @pulumi.getter(name="textPart") + def text_part(self) -> Optional[pulumi.Input[str]]: + """ + Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + return pulumi.get(self, "text_part") + + @text_part.setter + def text_part(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "text_part", value) + + +if not MYPY: + class EmailTemplateEmailTemplateHeaderArgsDict(TypedDict): + name: NotRequired[pulumi.Input[str]] + """ + Name of the message header. The header name can contain up to 126 characters. + """ + value: NotRequired[pulumi.Input[str]] + """ + Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + """ +elif False: + EmailTemplateEmailTemplateHeaderArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class EmailTemplateEmailTemplateHeaderArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: Name of the message header. The header name can contain up to 126 characters. + :param pulumi.Input[str] value: Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the message header. The header name can contain up to 126 characters. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + diff --git a/sdk/python/pulumi_aws/pinpoint/email_channel.py b/sdk/python/pulumi_aws/pinpoint/email_channel.py index dd0742b40ee..b6549a82b46 100644 --- a/sdk/python/pulumi_aws/pinpoint/email_channel.py +++ b/sdk/python/pulumi_aws/pinpoint/email_channel.py @@ -32,7 +32,7 @@ def __init__(__self__, *, :param pulumi.Input[str] identity: The ARN of an identity verified with SES. :param pulumi.Input[str] configuration_set: The ARN of the Amazon SES configuration set that you want to apply to messages that you send through the channel. :param pulumi.Input[bool] enabled: Whether the channel is enabled or disabled. Defaults to `true`. - :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + :param pulumi.Input[str] role_arn: *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ pulumi.set(__self__, "application_id", application_id) pulumi.set(__self__, "from_address", from_address) @@ -108,7 +108,7 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="roleArn") def role_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ return pulumi.get(self, "role_arn") @@ -135,7 +135,7 @@ def __init__(__self__, *, :param pulumi.Input[str] from_address: The email address used to send emails from. You can use email only (`user@example.com`) or friendly address (`User `). This field comply with [RFC 5322](https://www.ietf.org/rfc/rfc5322.txt). :param pulumi.Input[str] identity: The ARN of an identity verified with SES. :param pulumi.Input[int] messages_per_second: Messages per second that can be sent. - :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + :param pulumi.Input[str] role_arn: *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ if application_id is not None: pulumi.set(__self__, "application_id", application_id) @@ -228,7 +228,7 @@ def messages_per_second(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="roleArn") def role_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ return pulumi.get(self, "role_arn") @@ -302,7 +302,7 @@ def __init__(__self__, :param pulumi.Input[bool] enabled: Whether the channel is enabled or disabled. Defaults to `true`. :param pulumi.Input[str] from_address: The email address used to send emails from. You can use email only (`user@example.com`) or friendly address (`User `). This field comply with [RFC 5322](https://www.ietf.org/rfc/rfc5322.txt). :param pulumi.Input[str] identity: The ARN of an identity verified with SES. - :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + :param pulumi.Input[str] role_arn: *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ ... @overload @@ -429,7 +429,7 @@ def get(resource_name: str, :param pulumi.Input[str] from_address: The email address used to send emails from. You can use email only (`user@example.com`) or friendly address (`User `). This field comply with [RFC 5322](https://www.ietf.org/rfc/rfc5322.txt). :param pulumi.Input[str] identity: The ARN of an identity verified with SES. :param pulumi.Input[int] messages_per_second: Messages per second that can be sent. - :param pulumi.Input[str] role_arn: The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + :param pulumi.Input[str] role_arn: *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -496,7 +496,7 @@ def messages_per_second(self) -> pulumi.Output[int]: @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Output[Optional[str]]: """ - The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. + *Deprecated* The ARN of an IAM Role used to submit events to Mobile Analytics' event ingestion service. """ return pulumi.get(self, "role_arn") diff --git a/sdk/python/pulumi_aws/pinpoint/email_template.py b/sdk/python/pulumi_aws/pinpoint/email_template.py new file mode 100644 index 00000000000..dec0d6bc213 --- /dev/null +++ b/sdk/python/pulumi_aws/pinpoint/email_template.py @@ -0,0 +1,339 @@ +# 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 sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['EmailTemplateArgs', 'EmailTemplate'] + +@pulumi.input_type +class EmailTemplateArgs: + def __init__(__self__, *, + template_name: pulumi.Input[str], + email_templates: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a EmailTemplate resource. + :param pulumi.Input[str] template_name: name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + :param pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]] email_templates: Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + """ + pulumi.set(__self__, "template_name", template_name) + if email_templates is not None: + pulumi.set(__self__, "email_templates", email_templates) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> pulumi.Input[str]: + """ + name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + return pulumi.get(self, "template_name") + + @template_name.setter + def template_name(self, value: pulumi.Input[str]): + pulumi.set(self, "template_name", value) + + @property + @pulumi.getter(name="emailTemplates") + def email_templates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]]: + """ + Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + """ + return pulumi.get(self, "email_templates") + + @email_templates.setter + def email_templates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]]): + pulumi.set(self, "email_templates", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _EmailTemplateState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + email_templates: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering EmailTemplate resources. + :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the message template. + :param pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]] email_templates: Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + :param pulumi.Input[str] template_name: name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if email_templates is not None: + pulumi.set(__self__, "email_templates", email_templates) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if tags_all is not None: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + if tags_all is not None: + pulumi.set(__self__, "tags_all", tags_all) + if template_name is not None: + pulumi.set(__self__, "template_name", template_name) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="emailTemplates") + def email_templates(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]]: + """ + Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + """ + return pulumi.get(self, "email_templates") + + @email_templates.setter + def email_templates(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EmailTemplateEmailTemplateArgs']]]]): + pulumi.set(self, "email_templates", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags_all") + + @tags_all.setter + def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags_all", value) + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> Optional[pulumi.Input[str]]: + """ + name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + return pulumi.get(self, "template_name") + + @template_name.setter + def template_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "template_name", value) + + +class EmailTemplate(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + email_templates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EmailTemplateEmailTemplateArgs', 'EmailTemplateEmailTemplateArgsDict']]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a Pinpoint Email Template resource + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.pinpoint.EmailTemplate("test", + template_name="testing", + email_templates=[{ + "subject": "testing", + "text_part": "we are testing template text part", + "headers": [{ + "name": "testingname", + "value": "testingvalue", + }], + }]) + ``` + + ## Import + + Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: + + ```sh + $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['EmailTemplateEmailTemplateArgs', 'EmailTemplateEmailTemplateArgsDict']]]] email_templates: Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + :param pulumi.Input[str] template_name: name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EmailTemplateArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a Pinpoint Email Template resource + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.pinpoint.EmailTemplate("test", + template_name="testing", + email_templates=[{ + "subject": "testing", + "text_part": "we are testing template text part", + "headers": [{ + "name": "testingname", + "value": "testingvalue", + }], + }]) + ``` + + ## Import + + Using `pulumi import`, import Pinpoint Email Template using the `template_name`. For example: + + ```sh + $ pulumi import aws:pinpoint/emailTemplate:EmailTemplate reset template_name + ``` + + :param str resource_name: The name of the resource. + :param EmailTemplateArgs 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(EmailTemplateArgs, 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, + email_templates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EmailTemplateEmailTemplateArgs', 'EmailTemplateEmailTemplateArgsDict']]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: 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__ = EmailTemplateArgs.__new__(EmailTemplateArgs) + + __props__.__dict__["email_templates"] = email_templates + __props__.__dict__["tags"] = tags + if template_name is None and not opts.urn: + raise TypeError("Missing required property 'template_name'") + __props__.__dict__["template_name"] = template_name + __props__.__dict__["arn"] = None + __props__.__dict__["tags_all"] = None + super(EmailTemplate, __self__).__init__( + 'aws:pinpoint/emailTemplate:EmailTemplate', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + email_templates: Optional[pulumi.Input[Sequence[pulumi.Input[Union['EmailTemplateEmailTemplateArgs', 'EmailTemplateEmailTemplateArgsDict']]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + template_name: Optional[pulumi.Input[str]] = None) -> 'EmailTemplate': + """ + Get an existing EmailTemplate 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] arn: Amazon Resource Name (ARN) of the message template. + :param pulumi.Input[Sequence[pulumi.Input[Union['EmailTemplateEmailTemplateArgs', 'EmailTemplateEmailTemplateArgsDict']]]] email_templates: Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + :param pulumi.Input[str] template_name: name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EmailTemplateState.__new__(_EmailTemplateState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["email_templates"] = email_templates + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["template_name"] = template_name + return EmailTemplate(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="emailTemplates") + def email_templates(self) -> pulumi.Output[Optional[Sequence['outputs.EmailTemplateEmailTemplate']]]: + """ + Specifies the content and settings for a message template that can be used in messages that are sent through the email channel. See Email Template + """ + return pulumi.get(self, "email_templates") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="tagsAll") + @_utilities.deprecated("""Please use `tags` instead.""") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> pulumi.Output[str]: + """ + name of the message template. A template name must start with an alphanumeric character and can contain a maximum of 128 characters. The characters can be alphanumeric characters, underscores (_), or hyphens (-). Template names are case sensitive. + """ + return pulumi.get(self, "template_name") + diff --git a/sdk/python/pulumi_aws/pinpoint/outputs.py b/sdk/python/pulumi_aws/pinpoint/outputs.py index ca86ccb7a12..7f7ebc06eaf 100644 --- a/sdk/python/pulumi_aws/pinpoint/outputs.py +++ b/sdk/python/pulumi_aws/pinpoint/outputs.py @@ -13,11 +13,14 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs __all__ = [ 'AppCampaignHook', 'AppLimits', 'AppQuietTime', + 'EmailTemplateEmailTemplate', + 'EmailTemplateEmailTemplateHeader', ] @pulumi.output_type @@ -187,3 +190,140 @@ def start(self) -> Optional[str]: return pulumi.get(self, "start") +@pulumi.output_type +class EmailTemplateEmailTemplate(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultSubstitutions": + suggest = "default_substitutions" + elif key == "htmlPart": + suggest = "html_part" + elif key == "recommenderId": + suggest = "recommender_id" + elif key == "textPart": + suggest = "text_part" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in EmailTemplateEmailTemplate. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + EmailTemplateEmailTemplate.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + EmailTemplateEmailTemplate.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_substitutions: Optional[str] = None, + description: Optional[str] = None, + headers: Optional[Sequence['outputs.EmailTemplateEmailTemplateHeader']] = None, + html_part: Optional[str] = None, + recommender_id: Optional[str] = None, + subject: Optional[str] = None, + text_part: Optional[str] = None): + """ + :param str default_substitutions: JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + :param str html_part: The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + :param str recommender_id: The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + :param str subject: Subject line, or title, to use in email messages that are based on the message template. + :param str text_part: Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + if default_substitutions is not None: + pulumi.set(__self__, "default_substitutions", default_substitutions) + if description is not None: + pulumi.set(__self__, "description", description) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if html_part is not None: + pulumi.set(__self__, "html_part", html_part) + if recommender_id is not None: + pulumi.set(__self__, "recommender_id", recommender_id) + if subject is not None: + pulumi.set(__self__, "subject", subject) + if text_part is not None: + pulumi.set(__self__, "text_part", text_part) + + @property + @pulumi.getter(name="defaultSubstitutions") + def default_substitutions(self) -> Optional[str]: + """ + JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values. + """ + return pulumi.get(self, "default_substitutions") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def headers(self) -> Optional[Sequence['outputs.EmailTemplateEmailTemplateHeader']]: + return pulumi.get(self, "headers") + + @property + @pulumi.getter(name="htmlPart") + def html_part(self) -> Optional[str]: + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + return pulumi.get(self, "html_part") + + @property + @pulumi.getter(name="recommenderId") + def recommender_id(self) -> Optional[str]: + """ + The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data. + """ + return pulumi.get(self, "recommender_id") + + @property + @pulumi.getter + def subject(self) -> Optional[str]: + """ + Subject line, or title, to use in email messages that are based on the message template. + """ + return pulumi.get(self, "subject") + + @property + @pulumi.getter(name="textPart") + def text_part(self) -> Optional[str]: + """ + Message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + return pulumi.get(self, "text_part") + + +@pulumi.output_type +class EmailTemplateEmailTemplateHeader(dict): + def __init__(__self__, *, + name: Optional[str] = None, + value: Optional[str] = None): + """ + :param str name: Name of the message header. The header name can contain up to 126 characters. + :param str value: Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name of the message header. The header name can contain up to 126 characters. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + """ + Value of the message header. The header value can contain up to 870 characters, including the length of any rendered attributes. For example if you add the {CreationDate} attribute, it renders as YYYY-MM-DDTHH:MM:SS.SSSZ and is 24 characters in length. + """ + return pulumi.get(self, "value") + + diff --git a/sdk/python/pulumi_aws/pipes/pipe.py b/sdk/python/pulumi_aws/pipes/pipe.py index 95f25cae47f..9902118507e 100644 --- a/sdk/python/pulumi_aws/pipes/pipe.py +++ b/sdk/python/pulumi_aws/pipes/pipe.py @@ -656,6 +656,31 @@ def __init__(__self__, ])) ``` + ### SQS Source and Target Configuration Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.pipes.Pipe("example", + name="example-pipe", + role_arn=example_aws_iam_role["arn"], + source=source["arn"], + target=target["arn"], + source_parameters={ + "sqs_queue_parameters": { + "batch_size": 1, + "maximum_batching_window_in_seconds": 2, + }, + }, + target_parameters={ + "sqs_queue_parameters": { + "message_deduplication_id": "example-dedupe", + "message_group_id": "example-group", + }, + }) + ``` + ## Import Using `pulumi import`, import pipes using the `name`. For example: @@ -834,6 +859,31 @@ def __init__(__self__, ])) ``` + ### SQS Source and Target Configuration Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.pipes.Pipe("example", + name="example-pipe", + role_arn=example_aws_iam_role["arn"], + source=source["arn"], + target=target["arn"], + source_parameters={ + "sqs_queue_parameters": { + "batch_size": 1, + "maximum_batching_window_in_seconds": 2, + }, + }, + target_parameters={ + "sqs_queue_parameters": { + "message_deduplication_id": "example-dedupe", + "message_group_id": "example-group", + }, + }) + ``` + ## Import Using `pulumi import`, import pipes using the `name`. For example: diff --git a/sdk/python/pulumi_aws/rds/cluster_instance.py b/sdk/python/pulumi_aws/rds/cluster_instance.py index ad0b36eef75..30b05de7193 100644 --- a/sdk/python/pulumi_aws/rds/cluster_instance.py +++ b/sdk/python/pulumi_aws/rds/cluster_instance.py @@ -57,7 +57,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] copy_tags_to_snapshot: Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`. :param pulumi.Input[str] custom_iam_instance_profile: Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. :param pulumi.Input[str] db_parameter_group_name: Name of the DB parameter group to associate with this instance. - :param pulumi.Input[str] db_subnet_group_name: DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + :param pulumi.Input[str] db_subnet_group_name: Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. :param pulumi.Input[str] engine_version: Database engine version. Please note that to upgrade the `engine_version` of the instance, it must be done on the `rds.Cluster` `engine_version`. Trying to upgrade in `aws_cluster_instance` will not update the `engine_version`. :param pulumi.Input[str] identifier: Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier. :param pulumi.Input[str] identifier_prefix: Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`. @@ -243,7 +243,7 @@ def db_parameter_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dbSubnetGroupName") def db_subnet_group_name(self) -> Optional[pulumi.Input[str]]: """ - DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. """ return pulumi.get(self, "db_subnet_group_name") @@ -456,7 +456,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] copy_tags_to_snapshot: Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`. :param pulumi.Input[str] custom_iam_instance_profile: Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. :param pulumi.Input[str] db_parameter_group_name: Name of the DB parameter group to associate with this instance. - :param pulumi.Input[str] db_subnet_group_name: DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + :param pulumi.Input[str] db_subnet_group_name: Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. :param pulumi.Input[str] dbi_resource_id: Region-unique, immutable identifier for the DB instance. :param pulumi.Input[str] endpoint: DNS address for this instance. May not be writable :param pulumi.Input[str] engine: Name of the database engine to be used for the RDS cluster instance. @@ -667,7 +667,7 @@ def db_parameter_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="dbSubnetGroupName") def db_subnet_group_name(self) -> Optional[pulumi.Input[str]]: """ - DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. """ return pulumi.get(self, "db_subnet_group_name") @@ -1058,7 +1058,7 @@ def __init__(__self__, :param pulumi.Input[bool] copy_tags_to_snapshot: Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`. :param pulumi.Input[str] custom_iam_instance_profile: Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. :param pulumi.Input[str] db_parameter_group_name: Name of the DB parameter group to associate with this instance. - :param pulumi.Input[str] db_subnet_group_name: DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + :param pulumi.Input[str] db_subnet_group_name: Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. :param pulumi.Input[str] engine: Name of the database engine to be used for the RDS cluster instance. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters). :param pulumi.Input[str] engine_version: Database engine version. Please note that to upgrade the `engine_version` of the instance, it must be done on the `rds.Cluster` `engine_version`. Trying to upgrade in `aws_cluster_instance` will not update the `engine_version`. @@ -1282,7 +1282,7 @@ def get(resource_name: str, :param pulumi.Input[bool] copy_tags_to_snapshot: Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`. :param pulumi.Input[str] custom_iam_instance_profile: Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. :param pulumi.Input[str] db_parameter_group_name: Name of the DB parameter group to associate with this instance. - :param pulumi.Input[str] db_subnet_group_name: DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + :param pulumi.Input[str] db_subnet_group_name: Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. :param pulumi.Input[str] dbi_resource_id: Region-unique, immutable identifier for the DB instance. :param pulumi.Input[str] endpoint: DNS address for this instance. May not be writable :param pulumi.Input[str] engine: Name of the database engine to be used for the RDS cluster instance. @@ -1425,7 +1425,7 @@ def db_parameter_group_name(self) -> pulumi.Output[str]: @pulumi.getter(name="dbSubnetGroupName") def db_subnet_group_name(self) -> pulumi.Output[str]: """ - DB subnet group to associate with this DB instance. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. + Specifies the DB subnet group to associate with this DB instance. The default behavior varies depending on whether `db_subnet_group_name` is specified. Please refer to official [AWS documentation](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) to understand how `db_subnet_group_name` and `publicly_accessible` parameters affect DB instance behaviour. **NOTE:** This must match the `db_subnet_group_name` of the attached `rds.Cluster`. """ return pulumi.get(self, "db_subnet_group_name") diff --git a/sdk/python/pulumi_aws/sagemaker/app.py b/sdk/python/pulumi_aws/sagemaker/app.py index 7825ff6a6da..6927af1078b 100644 --- a/sdk/python/pulumi_aws/sagemaker/app.py +++ b/sdk/python/pulumi_aws/sagemaker/app.py @@ -31,7 +31,7 @@ def __init__(__self__, *, """ The set of arguments for constructing a App resource. :param pulumi.Input[str] app_name: The name of the app. - :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. :param pulumi.Input[str] domain_id: The domain ID. :param pulumi.Input['AppResourceSpecArgs'] resource_spec: The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.See Resource Spec below. :param pulumi.Input[str] space_name: The name of the space. At least one of `user_profile_name` or `space_name` required. @@ -66,7 +66,7 @@ def app_name(self, value: pulumi.Input[str]): @pulumi.getter(name="appType") def app_type(self) -> pulumi.Input[str]: """ - The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. """ return pulumi.get(self, "app_type") @@ -150,7 +150,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering App resources. :param pulumi.Input[str] app_name: The name of the app. - :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the app. :param pulumi.Input[str] domain_id: The domain ID. :param pulumi.Input['AppResourceSpecArgs'] resource_spec: The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.See Resource Spec below. @@ -197,7 +197,7 @@ def app_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="appType") def app_type(self) -> Optional[pulumi.Input[str]]: """ - The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. """ return pulumi.get(self, "app_type") @@ -333,7 +333,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] app_name: The name of the app. - :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. :param pulumi.Input[str] domain_id: The domain ID. :param pulumi.Input[Union['AppResourceSpecArgs', 'AppResourceSpecArgsDict']] resource_spec: The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.See Resource Spec below. :param pulumi.Input[str] space_name: The name of the space. At least one of `user_profile_name` or `space_name` required. @@ -445,7 +445,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] app_name: The name of the app. - :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + :param pulumi.Input[str] app_type: The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the app. :param pulumi.Input[str] domain_id: The domain ID. :param pulumi.Input[Union['AppResourceSpecArgs', 'AppResourceSpecArgsDict']] resource_spec: The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.See Resource Spec below. @@ -481,7 +481,7 @@ def app_name(self) -> pulumi.Output[str]: @pulumi.getter(name="appType") def app_type(self) -> pulumi.Output[str]: """ - The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway` and `TensorBoard`. + The type of app. Valid values are `JupyterServer`, `KernelGateway`, `RStudioServerPro`, `RSessionGateway`, `TensorBoard`, `CodeEditor`, `JupyterLab`, `DetailedProfiler`, and `Canvas`. """ return pulumi.get(self, "app_type") diff --git a/sdk/python/pulumi_aws/securitylake/_inputs.py b/sdk/python/pulumi_aws/securitylake/_inputs.py index 94c857bd779..b30fac0c36b 100644 --- a/sdk/python/pulumi_aws/securitylake/_inputs.py +++ b/sdk/python/pulumi_aws/securitylake/_inputs.py @@ -73,7 +73,7 @@ class AwsLogSourceSourceArgsDict(TypedDict): """ source_name: pulumi.Input[str] """ - The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. """ accounts: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ @@ -98,7 +98,7 @@ def __init__(__self__, *, source_version: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: Specify the Regions where you want to enable Security Lake. - :param pulumi.Input[str] source_name: The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + :param pulumi.Input[str] source_name: The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. :param pulumi.Input[Sequence[pulumi.Input[str]]] accounts: Specify the AWS account information where you want to enable Security Lake. If not specified, uses all accounts included in the Security Lake. :param pulumi.Input[str] source_version: The version for a AWS source. @@ -128,7 +128,7 @@ def regions(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @pulumi.getter(name="sourceName") def source_name(self) -> pulumi.Input[str]: """ - The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. """ return pulumi.get(self, "source_name") diff --git a/sdk/python/pulumi_aws/securitylake/outputs.py b/sdk/python/pulumi_aws/securitylake/outputs.py index db67dbf7714..aa8e6cb04fe 100644 --- a/sdk/python/pulumi_aws/securitylake/outputs.py +++ b/sdk/python/pulumi_aws/securitylake/outputs.py @@ -69,7 +69,7 @@ def __init__(__self__, *, source_version: Optional[str] = None): """ :param Sequence[str] regions: Specify the Regions where you want to enable Security Lake. - :param str source_name: The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + :param str source_name: The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. :param Sequence[str] accounts: Specify the AWS account information where you want to enable Security Lake. If not specified, uses all accounts included in the Security Lake. :param str source_version: The version for a AWS source. @@ -95,7 +95,7 @@ def regions(self) -> Sequence[str]: @pulumi.getter(name="sourceName") def source_name(self) -> str: """ - The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`. + The name for a AWS source. This must be a Regionally unique value. Valid values: `ROUTE53`, `VPC_FLOW`, `SH_FINDINGS`, `CLOUD_TRAIL_MGMT`, `LAMBDA_EXECUTION`, `S3_DATA`, `EKS_AUDIT`, `WAF`. """ return pulumi.get(self, "source_name") diff --git a/upstream b/upstream index 2b83760c87c..dd68fed26d3 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 2b83760c87cb8ab3ee4f8c96db410bf30bf8e165 +Subproject commit dd68fed26d3433a5487e2852274ef54edd2e63a1