From fe888ecef81ffe77dbc0a2e75482af0b747a3110 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 3 Apr 2024 17:30:06 -0400 Subject: [PATCH] Upstream v5.43.0 (#3767) This change updates pulumi-aws to the v5.43.0 version of the upstream provider. See upstream release notes for the detailed list of changes: https://github.com/hashicorp/terraform-provider-aws/releases/tag/v5.43.0 --- examples/go.mod | 50 +- examples/go.sum | 100 +- ...d-TagsSchemaTrulyComputed-definition.patch | 2 +- patches/0002-Conns-user-agent.patch | 2 +- ...03-Add-S3-legacy-bucket-to-resources.patch | 2 +- ...uration-as-Computed-for-Legacy-S3-Bu.patch | 2 +- patches/0005-De-deprecate-bucket_object.patch | 2 +- ...keformation-catalog_resource-default.patch | 2 +- ...07-Workaround-SSM-Parameter-tier-bug.patch | 8 +- ...uster-certificate_authorities-plural.patch | 2 +- ...caling-launch_configuration-associat.patch | 2 +- ...0010-Add-ECR-credentials_data_source.patch | 2 +- ...1-Add-custom-appautoscaling-examples.patch | 2 +- patches/0012-Add-dedicated_host-docs.patch | 2 +- patches/0013-Revert-WAF-schema-changes.patch | 2 +- ...in-new-resourceTopicSubscriptionCust.patch | 2 +- ...015-add-matchmaking-configuration-72.patch | 2 +- ...tches-to-S3BucketLegacy-and-GameLift.patch | 2 +- ...-Revert-Update-endpointHashIPAddress.patch | 2 +- patches/0018-Fixup-gamelift-context.patch | 2 +- ...lt-descriptions-to-Managed-by-Pulumi.patch | 4 +- ...elements-from-schema-and-fix-tests-7.patch | 2 +- ...ito_identity_pool_roles_attachment-e.patch | 2 +- ...target-group-read-to-workaround-2517.patch | 2 +- ...urrious-json-diff-for-redrive_policy.patch | 2 +- patches/0024-Provide-context-to-conns.patch | 2 +- ...the-tags-behavior-of-other-resources.patch | 2 +- ...ve-shim-logic-to-upstream-as-a-patch.patch | 2 +- ...27-Restore-S3ConnURICleaningDisabled.patch | 2 +- ...-Do-not-compute-tags_all-at-TF-level.patch | 2 +- ...r-implement-default_addons_to_remove.patch | 2 +- ...otComputedForResources-to-recognize-.patch | 2 +- .../0031-Optimize-startup-performance.patch | 2 +- .../0032-Fix-job-queue-sdkv2-migration.patch | 2 +- ...isableTagSchemaCheck-for-PF-provider.patch | 2 +- ...h_computed_only.sh-to-patch-eks-pod_.patch | 2 +- ...l-fast-when-PF-resources-are-dropped.patch | 2 +- ...x-tags_all-Computed-for-PF-resources.patch | 2 +- ...etry-for-KMS-access-denied-in-lambda.patch | 2 +- ...to-not-retry-after-LimitExceededExce.patch | 2 +- patches/0039-Restore-legacy-bucket.patch | 20 +- .../0040-Patch-osis_pipeline-tags-flags.patch | 2 +- ...l-request-35678-from-hashicorp-b-elb.patch | 2 +- ...l-request-35671-from-hashicorp-b-lb-.patch | 2 +- ...ambdas-without-code-related-properti.patch | 2 +- ...ags_all-of-aws_bedrock_provisioned_m.patch | 2 +- patches/0045-fix-legacy-bucket-context.patch | 2 +- ...curitylake_subscriber-tags_all-patch.patch | 2 +- ...e_version-Fix-bugs-with-default-only.patch | 2 +- ...h-tags-ComputedOnly-for-m2-resources.patch | 32 + .../pulumi-resource-aws/bridge-metadata.json | 167 +- .../runtime-bridge-metadata.json | 2 +- provider/cmd/pulumi-resource-aws/schema.json | 1627 ++++++++++++++++- provider/go.mod | 54 +- provider/go.sum | 107 +- provider/replacements.json | 28 + provider/resources.go | 14 +- sdk/dotnet/Acmpca/Certificate.cs | 56 + sdk/dotnet/ApiGateway/MethodResponse.cs | 2 +- sdk/dotnet/CloudFront/Function.cs | 30 + sdk/dotnet/CloudFront/GetFunction.cs | 7 + sdk/dotnet/CloudFront/KeyvaluestoreKey.cs | 181 ++ sdk/dotnet/Config/Config.cs | 8 + .../Inputs/NotificationChannelFiltersArgs.cs | 44 + .../NotificationChannelFiltersGetArgs.cs | 44 + .../Inputs/NotificationChannelSnsArgs.cs | 23 + .../Inputs/NotificationChannelSnsGetArgs.cs | 23 + sdk/dotnet/DevOpsGuru/NotificationChannel.cs | 186 ++ .../Outputs/NotificationChannelFilters.cs | 35 + .../Outputs/NotificationChannelSns.cs | 24 + sdk/dotnet/DynamoDB/ResourcePolicy.cs | 189 ++ sdk/dotnet/Ec2/InstanceMetadataDefaults.cs | 175 ++ sdk/dotnet/Ec2/Vpc.cs | 6 + sdk/dotnet/Ec2/VpcIpam.cs | 18 + sdk/dotnet/Ec2/VpnConnection.cs | 6 +- sdk/dotnet/Glacier/VaultLock.cs | 6 - sdk/dotnet/Iam/GroupPolicy.cs | 2 + sdk/dotnet/Iam/InstanceProfile.cs | 8 +- sdk/dotnet/Iam/Policy.cs | 31 +- sdk/dotnet/Iam/Role.cs | 2 + sdk/dotnet/Iam/RolePolicy.cs | 2 + sdk/dotnet/Iam/UserPolicy.cs | 2 + sdk/dotnet/Inputs/ProviderEndpointArgs.cs | 12 + ...OutputFormatConfigurationSerializerArgs.cs | 2 +- ...putFormatConfigurationSerializerGetArgs.cs | 2 +- ...tionOutputFormatConfigurationSerializer.cs | 2 +- sdk/dotnet/KinesisAnalyticsV2/Application.cs | 6 +- .../Inputs/ResourceLfTagDatabaseArgs.cs | 34 + .../Inputs/ResourceLfTagDatabaseGetArgs.cs | 34 + .../Inputs/ResourceLfTagLfTagArgs.cs | 40 + .../Inputs/ResourceLfTagLfTagGetArgs.cs | 40 + .../Inputs/ResourceLfTagTableArgs.cs | 46 + .../Inputs/ResourceLfTagTableGetArgs.cs | 46 + .../ResourceLfTagTableWithColumnsArgs.cs | 58 + ...LfTagTableWithColumnsColumnWildcardArgs.cs | 28 + ...agTableWithColumnsColumnWildcardGetArgs.cs | 28 + .../ResourceLfTagTableWithColumnsGetArgs.cs | 58 + .../Inputs/ResourceLfTagTimeoutsArgs.cs | 32 + .../Inputs/ResourceLfTagTimeoutsGetArgs.cs | 32 + .../Outputs/ResourceLfTagDatabase.cs | 37 + .../Outputs/ResourceLfTagLfTag.cs | 44 + .../Outputs/ResourceLfTagTable.cs | 51 + .../Outputs/ResourceLfTagTableWithColumns.cs | 58 + ...urceLfTagTableWithColumnsColumnWildcard.cs | 24 + .../Outputs/ResourceLfTagTimeouts.cs | 35 + sdk/dotnet/LakeFormation/ResourceLfTag.cs | 222 +++ sdk/dotnet/M2/Application.cs | 345 ++++ sdk/dotnet/M2/Deployment.cs | 206 +++ sdk/dotnet/M2/Environment.cs | 420 +++++ .../M2/Inputs/ApplicationDefinitionArgs.cs | 32 + .../M2/Inputs/ApplicationDefinitionGetArgs.cs | 32 + .../M2/Inputs/ApplicationTimeoutsArgs.cs | 38 + .../M2/Inputs/ApplicationTimeoutsGetArgs.cs | 38 + .../M2/Inputs/DeploymentTimeoutsArgs.cs | 38 + .../M2/Inputs/DeploymentTimeoutsGetArgs.cs | 38 + .../EnvironmentHighAvailabilityConfigArgs.cs | 26 + ...nvironmentHighAvailabilityConfigGetArgs.cs | 26 + .../EnvironmentStorageConfigurationArgs.cs | 26 + .../EnvironmentStorageConfigurationEfsArgs.cs | 32 + ...vironmentStorageConfigurationEfsGetArgs.cs | 32 + .../EnvironmentStorageConfigurationFsxArgs.cs | 32 + ...vironmentStorageConfigurationFsxGetArgs.cs | 32 + .../EnvironmentStorageConfigurationGetArgs.cs | 26 + .../M2/Inputs/EnvironmentTimeoutsArgs.cs | 38 + .../M2/Inputs/EnvironmentTimeoutsGetArgs.cs | 38 + .../M2/Outputs/ApplicationDefinition.cs | 35 + sdk/dotnet/M2/Outputs/ApplicationTimeouts.cs | 42 + sdk/dotnet/M2/Outputs/DeploymentTimeouts.cs | 42 + .../EnvironmentHighAvailabilityConfig.cs | 27 + .../EnvironmentStorageConfiguration.cs | 29 + .../EnvironmentStorageConfigurationEfs.cs | 35 + .../EnvironmentStorageConfigurationFsx.cs | 35 + sdk/dotnet/M2/Outputs/EnvironmentTimeouts.cs | 42 + sdk/dotnet/M2/README.md | 1 + sdk/dotnet/MediaStore/ContainerPolicy.cs | 2 - sdk/dotnet/Rds/GetSnapshot.cs | 9 +- .../CustomDomainAssociation.cs | 189 ++ .../ResourceExplorer/Inputs/SearchResource.cs | 68 + .../Inputs/SearchResourceArgs.cs | 68 + .../Inputs/SearchResourceCount.cs | 29 + .../Inputs/SearchResourceCountArgs.cs | 29 + .../Inputs/SearchResourceResourceProperty.cs | 38 + .../SearchResourceResourcePropertyArgs.cs | 38 + .../Outputs/SearchResourceCountResult.cs | 32 + .../SearchResourceResourcePropertyResult.cs | 42 + .../Outputs/SearchResourceResult.cs | 70 + sdk/dotnet/ResourceExplorer/Search.cs | 204 +++ sdk/dotnet/SecretsManager/SecretVersion.cs | 12 +- .../ServiceCatalog/AppregistryApplication.cs | 192 ++ .../GetAppregistryApplication.cs | 134 ++ .../SsoAdmin/PermissionSetInlinePolicy.cs | 5 +- sdk/dotnet/Transfer/Access.cs | 2 + sdk/dotnet/Transfer/User.cs | 2 - sdk/go/aws/acmpca/certificate.go | 63 + sdk/go/aws/apigateway/methodResponse.go | 2 +- sdk/go/aws/cloudfront/function.go | 15 + sdk/go/aws/cloudfront/getFunction.go | 7 + sdk/go/aws/cloudfront/init.go | 7 + sdk/go/aws/cloudfront/keyvaluestoreKey.go | 313 ++++ sdk/go/aws/config/pulumiTypes.go | 18 + sdk/go/aws/devopsguru/init.go | 7 + sdk/go/aws/devopsguru/notificationChannel.go | 320 ++++ sdk/go/aws/devopsguru/pulumiTypes.go | 297 +++ sdk/go/aws/dynamodb/init.go | 7 + sdk/go/aws/dynamodb/resourcePolicy.go | 323 ++++ sdk/go/aws/ec2/init.go | 7 + sdk/go/aws/ec2/instanceMetadataDefaults.go | 294 +++ sdk/go/aws/ec2/vpc.go | 10 +- sdk/go/aws/ec2/vpcIpam.go | 15 + sdk/go/aws/ec2/vpnConnection.go | 12 +- sdk/go/aws/glacier/vaultLock.go | 6 - sdk/go/aws/iam/groupPolicy.go | 2 + sdk/go/aws/iam/instanceProfile.go | 14 +- sdk/go/aws/iam/policy.go | 60 +- sdk/go/aws/iam/role.go | 2 + sdk/go/aws/iam/rolePolicy.go | 2 + sdk/go/aws/iam/userPolicy.go | 2 + sdk/go/aws/kinesis/pulumiTypes.go | 8 +- sdk/go/aws/kinesisanalyticsv2/application.go | 12 +- sdk/go/aws/lakeformation/init.go | 7 + sdk/go/aws/lakeformation/pulumiTypes.go | 1085 +++++++++++ sdk/go/aws/lakeformation/resourceLfTag.go | 348 ++++ sdk/go/aws/m2/application.go | 452 +++++ sdk/go/aws/m2/deployment.go | 339 ++++ sdk/go/aws/m2/environment.go | 483 +++++ sdk/go/aws/m2/init.go | 58 + sdk/go/aws/m2/pulumiTypes.go | 1327 ++++++++++++++ sdk/go/aws/mediastore/containerPolicy.go | 2 - sdk/go/aws/pulumiTypes.go | 18 + sdk/go/aws/rds/getSnapshot.go | 13 +- .../customDomainAssociation.go | 324 ++++ sdk/go/aws/redshiftserverless/init.go | 7 + sdk/go/aws/resourceexplorer/pulumiTypes.go | 381 ++++ sdk/go/aws/resourceexplorer/search.go | 153 ++ sdk/go/aws/secretsmanager/secretVersion.go | 24 +- .../servicecatalog/appregistryApplication.go | 331 ++++ .../getAppregistryApplication.go | 131 ++ sdk/go/aws/servicecatalog/init.go | 7 + .../aws/ssoadmin/permissionSetInlinePolicy.go | 5 +- sdk/go/aws/transfer/access.go | 2 + sdk/go/aws/transfer/user.go | 2 - .../com/pulumi/aws/acmpca/Certificate.java | 11 +- .../pulumi/aws/apigateway/MethodResponse.java | 2 +- .../com/pulumi/aws/cloudfront/Function.java | 15 + .../pulumi/aws/cloudfront/FunctionArgs.java | 48 + .../aws/cloudfront/KeyvaluestoreKey.java | 180 ++ .../aws/cloudfront/KeyvaluestoreKeyArgs.java | 165 ++ .../aws/cloudfront/inputs/FunctionState.java | 48 + .../inputs/KeyvaluestoreKeyState.java | 195 ++ .../cloudfront/outputs/GetFunctionResult.java | 27 + .../pulumi/aws/config/inputs/Endpoints.java | 42 + .../aws/devopsguru/NotificationChannel.java | 192 ++ .../devopsguru/NotificationChannelArgs.java | 129 ++ .../NotificationChannelFiltersArgs.java | 141 ++ .../inputs/NotificationChannelSnsArgs.java | 65 + .../inputs/NotificationChannelState.java | 129 ++ .../outputs/NotificationChannelFilters.java | 84 + .../outputs/NotificationChannelSns.java | 50 + .../pulumi/aws/dynamodb/ResourcePolicy.java | 185 ++ .../aws/dynamodb/ResourcePolicyArgs.java | 173 ++ .../dynamodb/inputs/ResourcePolicyState.java | 203 ++ .../aws/ec2/InstanceMetadataDefaults.java | 167 ++ .../aws/ec2/InstanceMetadataDefaultsArgs.java | 195 ++ .../src/main/java/com/pulumi/aws/ec2/Vpc.java | 8 + .../main/java/com/pulumi/aws/ec2/VpcIpam.java | 14 + .../java/com/pulumi/aws/ec2/VpcIpamArgs.java | 37 + .../com/pulumi/aws/ec2/VpnConnection.java | 4 +- .../com/pulumi/aws/ec2/VpnConnectionArgs.java | 8 +- .../inputs/InstanceMetadataDefaultsState.java | 195 ++ .../pulumi/aws/ec2/inputs/VpcIpamState.java | 37 + .../com/pulumi/aws/ec2/inputs/VpcState.java | 20 + .../aws/ec2/inputs/VpnConnectionState.java | 8 +- .../com/pulumi/aws/glacier/VaultLock.java | 6 - .../java/com/pulumi/aws/iam/GroupPolicy.java | 2 + .../com/pulumi/aws/iam/InstanceProfile.java | 6 +- .../pulumi/aws/iam/InstanceProfileArgs.java | 8 +- .../main/java/com/pulumi/aws/iam/Policy.java | 24 +- .../java/com/pulumi/aws/iam/PolicyArgs.java | 28 +- .../main/java/com/pulumi/aws/iam/Role.java | 2 + .../java/com/pulumi/aws/iam/RolePolicy.java | 2 + .../java/com/pulumi/aws/iam/UserPolicy.java | 2 + .../aws/iam/inputs/InstanceProfileState.java | 8 +- .../pulumi/aws/iam/inputs/PolicyState.java | 44 +- .../aws/inputs/ProviderEndpointArgs.java | 74 + ...tputFormatConfigurationSerializerArgs.java | 8 +- ...onOutputFormatConfigurationSerializer.java | 4 +- .../aws/kinesisanalyticsv2/Application.java | 4 +- .../kinesisanalyticsv2/ApplicationArgs.java | 8 +- .../inputs/ApplicationState.java | 8 +- .../aws/lakeformation/ResourceLfTag.java | 208 +++ .../aws/lakeformation/ResourceLfTagArgs.java | 269 +++ .../inputs/ResourceLfTagDatabaseArgs.java | 132 ++ .../inputs/ResourceLfTagLfTagArgs.java | 172 ++ .../inputs/ResourceLfTagState.java | 269 +++ .../inputs/ResourceLfTagTableArgs.java | 207 +++ .../ResourceLfTagTableWithColumnsArgs.java | 258 +++ ...TagTableWithColumnsColumnWildcardArgs.java | 68 + .../inputs/ResourceLfTagTimeoutsArgs.java | 120 ++ .../outputs/ResourceLfTagDatabase.java | 85 + .../outputs/ResourceLfTagLfTag.java | 108 ++ .../outputs/ResourceLfTagTable.java | 128 ++ .../ResourceLfTagTableWithColumns.java | 155 ++ ...ceLfTagTableWithColumnsColumnWildcard.java | 52 + .../outputs/ResourceLfTagTimeouts.java | 78 + .../java/com/pulumi/aws/m2/Application.java | 318 ++++ .../com/pulumi/aws/m2/ApplicationArgs.java | 337 ++++ .../java/com/pulumi/aws/m2/Deployment.java | 195 ++ .../com/pulumi/aws/m2/DeploymentArgs.java | 244 +++ .../java/com/pulumi/aws/m2/Environment.java | 506 +++++ .../com/pulumi/aws/m2/EnvironmentArgs.java | 579 ++++++ .../m2/inputs/ApplicationDefinitionArgs.java | 120 ++ .../aws/m2/inputs/ApplicationState.java | 498 +++++ .../m2/inputs/ApplicationTimeoutsArgs.java | 157 ++ .../pulumi/aws/m2/inputs/DeploymentState.java | 248 +++ .../aws/m2/inputs/DeploymentTimeoutsArgs.java | 157 ++ ...EnvironmentHighAvailabilityConfigArgs.java | 85 + .../aws/m2/inputs/EnvironmentState.java | 728 ++++++++ .../EnvironmentStorageConfigurationArgs.java | 81 + ...nvironmentStorageConfigurationEfsArgs.java | 125 ++ ...nvironmentStorageConfigurationFsxArgs.java | 125 ++ .../m2/inputs/EnvironmentTimeoutsArgs.java | 157 ++ .../aws/m2/outputs/ApplicationDefinition.java | 78 + .../aws/m2/outputs/ApplicationTimeouts.java | 99 + .../aws/m2/outputs/DeploymentTimeouts.java | 99 + .../EnvironmentHighAvailabilityConfig.java | 58 + .../EnvironmentStorageConfiguration.java | 63 + .../EnvironmentStorageConfigurationEfs.java | 81 + .../EnvironmentStorageConfigurationFsx.java | 81 + .../aws/m2/outputs/EnvironmentTimeouts.java | 99 + .../aws/mediastore/ContainerPolicy.java | 2 - .../aws/rds/outputs/GetSnapshotResult.java | 27 +- .../CustomDomainAssociation.java | 189 ++ .../CustomDomainAssociationArgs.java | 165 ++ .../inputs/CustomDomainAssociationState.java | 194 ++ .../ResourceexplorerFunctions.java | 189 ++ .../resourceexplorer/inputs/SearchArgs.java | 229 +++ .../inputs/SearchPlainArgs.java | 186 ++ .../inputs/SearchResource.java | 265 +++ .../inputs/SearchResourceArgs.java | 336 ++++ .../inputs/SearchResourceCount.java | 91 + .../inputs/SearchResourceCountArgs.java | 106 ++ .../SearchResourceResourceProperty.java | 134 ++ .../SearchResourceResourcePropertyArgs.java | 165 ++ .../outputs/SearchResource.java | 200 ++ .../outputs/SearchResourceCount.java | 74 + .../SearchResourceResourceProperty.java | 104 ++ .../outputs/SearchResult.java | 139 ++ .../aws/secretsmanager/SecretVersion.java | 8 +- .../aws/secretsmanager/SecretVersionArgs.java | 16 +- .../inputs/SecretVersionState.java | 16 +- .../AppregistryApplication.java | 203 ++ .../AppregistryApplicationArgs.java | 128 ++ .../ServicecatalogFunctions.java | 171 ++ .../inputs/AppregistryApplicationState.java | 165 ++ .../inputs/GetAppregistryApplicationArgs.java | 85 + .../GetAppregistryApplicationPlainArgs.java | 74 + .../GetAppregistryApplicationResult.java | 119 ++ .../ssoadmin/PermissionSetInlinePolicy.java | 5 +- .../java/com/pulumi/aws/transfer/Access.java | 2 + .../java/com/pulumi/aws/transfer/User.java | 2 - sdk/nodejs/acmpca/certificate.ts | 37 + sdk/nodejs/alb/targetGroupAttachment.ts | 2 +- sdk/nodejs/apigateway/methodResponse.ts | 2 +- sdk/nodejs/cloudfront/function.ts | 14 + sdk/nodejs/cloudfront/getFunction.ts | 4 + sdk/nodejs/cloudfront/index.ts | 8 + sdk/nodejs/cloudfront/keyvaluestoreKey.ts | 160 ++ sdk/nodejs/devopsguru/index.ts | 8 + sdk/nodejs/devopsguru/notificationChannel.ts | 149 ++ sdk/nodejs/dynamodb/index.ts | 8 + sdk/nodejs/dynamodb/resourcePolicy.ts | 167 ++ sdk/nodejs/ec2/index.ts | 8 + sdk/nodejs/ec2/instanceMetadataDefaults.ts | 145 ++ sdk/nodejs/ec2/vpc.ts | 6 + sdk/nodejs/ec2/vpcIpam.ts | 14 + sdk/nodejs/ec2/vpnConnection.ts | 6 +- sdk/nodejs/glacier/vaultLock.ts | 6 - sdk/nodejs/iam/groupPolicy.ts | 2 + sdk/nodejs/iam/instanceProfile.ts | 8 +- sdk/nodejs/iam/policy.ts | 31 +- sdk/nodejs/iam/role.ts | 2 + sdk/nodejs/iam/rolePolicy.ts | 2 + sdk/nodejs/iam/userPolicy.ts | 2 + sdk/nodejs/index.ts | 2 + sdk/nodejs/kinesisanalyticsv2/application.ts | 6 +- sdk/nodejs/lakeformation/index.ts | 8 + sdk/nodejs/lakeformation/resourceLfTag.ts | 185 ++ sdk/nodejs/lb/targetGroupAttachment.ts | 2 +- sdk/nodejs/m2/application.ts | 281 +++ sdk/nodejs/m2/deployment.ts | 181 ++ sdk/nodejs/m2/environment.ts | 314 ++++ sdk/nodejs/m2/index.ts | 41 + sdk/nodejs/mediastore/containerPolicy.ts | 2 - sdk/nodejs/rds/getSnapshot.ts | 6 +- .../customDomainAssociation.ts | 160 ++ sdk/nodejs/redshiftserverless/index.ts | 8 + sdk/nodejs/resourceexplorer/index.ts | 5 + sdk/nodejs/resourceexplorer/search.ts | 128 ++ sdk/nodejs/secretsmanager/secretVersion.ts | 12 +- .../servicecatalog/appregistryApplication.ts | 154 ++ .../getAppregistryApplication.ts | 91 + sdk/nodejs/servicecatalog/index.ts | 13 + .../ssoadmin/permissionSetInlinePolicy.ts | 5 +- sdk/nodejs/transfer/access.ts | 2 + sdk/nodejs/transfer/user.ts | 2 - sdk/nodejs/tsconfig.json | 13 + sdk/nodejs/types/input.ts | 316 +++- sdk/nodejs/types/output.ts | 263 ++- sdk/python/pulumi_aws/__init__.py | 83 + sdk/python/pulumi_aws/_inputs.py | 32 + sdk/python/pulumi_aws/acmpca/certificate.py | 68 + .../pulumi_aws/alb/target_group_attachment.py | 4 +- .../pulumi_aws/apigateway/method_response.py | 4 +- sdk/python/pulumi_aws/cloudfront/__init__.py | 1 + sdk/python/pulumi_aws/cloudfront/function.py | 47 + .../pulumi_aws/cloudfront/get_function.py | 15 +- .../cloudfront/keyvaluestore_key.py | 324 ++++ sdk/python/pulumi_aws/config/outputs.py | 24 + sdk/python/pulumi_aws/devopsguru/__init__.py | 1 + sdk/python/pulumi_aws/devopsguru/_inputs.py | 57 + .../devopsguru/notification_channel.py | 290 +++ sdk/python/pulumi_aws/devopsguru/outputs.py | 79 + sdk/python/pulumi_aws/dynamodb/__init__.py | 1 + .../pulumi_aws/dynamodb/resource_policy.py | 347 ++++ sdk/python/pulumi_aws/ec2/__init__.py | 1 + .../ec2/instance_metadata_defaults.py | 322 ++++ sdk/python/pulumi_aws/ec2/vpc.py | 8 + sdk/python/pulumi_aws/ec2/vpc_ipam.py | 53 +- sdk/python/pulumi_aws/ec2/vpn_connection.py | 14 +- sdk/python/pulumi_aws/glacier/vault_lock.py | 12 - sdk/python/pulumi_aws/iam/group_policy.py | 4 + sdk/python/pulumi_aws/iam/instance_profile.py | 18 +- sdk/python/pulumi_aws/iam/policy.py | 69 +- sdk/python/pulumi_aws/iam/role.py | 4 + sdk/python/pulumi_aws/iam/role_policy.py | 4 + sdk/python/pulumi_aws/iam/user_policy.py | 4 + sdk/python/pulumi_aws/kinesis/_inputs.py | 4 +- sdk/python/pulumi_aws/kinesis/outputs.py | 4 +- .../kinesisanalyticsv2/application.py | 14 +- .../pulumi_aws/lakeformation/__init__.py | 1 + .../pulumi_aws/lakeformation/_inputs.py | 324 ++++ .../pulumi_aws/lakeformation/outputs.py | 349 ++++ .../lakeformation/resource_lf_tag.py | 445 +++++ .../pulumi_aws/lb/target_group_attachment.py | 4 +- sdk/python/pulumi_aws/m2/__init__.py | 12 + sdk/python/pulumi_aws/m2/_inputs.py | 351 ++++ sdk/python/pulumi_aws/m2/application.py | 701 +++++++ sdk/python/pulumi_aws/m2/deployment.py | 430 +++++ sdk/python/pulumi_aws/m2/environment.py | 936 ++++++++++ sdk/python/pulumi_aws/m2/outputs.py | 352 ++++ .../pulumi_aws/mediastore/container_policy.py | 4 - sdk/python/pulumi_aws/rds/get_snapshot.py | 17 +- .../pulumi_aws/redshiftserverless/__init__.py | 1 + .../custom_domain_association.py | 324 ++++ .../pulumi_aws/resourceexplorer/__init__.py | 1 + .../pulumi_aws/resourceexplorer/_inputs.py | 201 ++ .../pulumi_aws/resourceexplorer/outputs.py | 154 ++ .../pulumi_aws/resourceexplorer/search.py | 168 ++ .../secretsmanager/secret_version.py | 28 +- .../pulumi_aws/servicecatalog/__init__.py | 2 + .../servicecatalog/appregistry_application.py | 312 ++++ .../get_appregistry_application.py | 135 ++ .../ssoadmin/permission_set_inline_policy.py | 10 +- sdk/python/pulumi_aws/transfer/access.py | 4 + sdk/python/pulumi_aws/transfer/user.py | 4 - upstream | 2 +- 426 files changed, 38571 insertions(+), 689 deletions(-) create mode 100644 patches/0048-Patch-tags-ComputedOnly-for-m2-resources.patch create mode 100644 sdk/dotnet/CloudFront/KeyvaluestoreKey.cs create mode 100644 sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersArgs.cs create mode 100644 sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersGetArgs.cs create mode 100644 sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsArgs.cs create mode 100644 sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsGetArgs.cs create mode 100644 sdk/dotnet/DevOpsGuru/NotificationChannel.cs create mode 100644 sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelFilters.cs create mode 100644 sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelSns.cs create mode 100644 sdk/dotnet/DynamoDB/ResourcePolicy.cs create mode 100644 sdk/dotnet/Ec2/InstanceMetadataDefaults.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagDatabase.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagLfTag.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTable.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumns.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumnsColumnWildcard.cs create mode 100644 sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTimeouts.cs create mode 100644 sdk/dotnet/LakeFormation/ResourceLfTag.cs create mode 100644 sdk/dotnet/M2/Application.cs create mode 100644 sdk/dotnet/M2/Deployment.cs create mode 100644 sdk/dotnet/M2/Environment.cs create mode 100644 sdk/dotnet/M2/Inputs/ApplicationDefinitionArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/ApplicationDefinitionGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/ApplicationTimeoutsArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/ApplicationTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/DeploymentTimeoutsArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/DeploymentTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationGetArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentTimeoutsArgs.cs create mode 100644 sdk/dotnet/M2/Inputs/EnvironmentTimeoutsGetArgs.cs create mode 100644 sdk/dotnet/M2/Outputs/ApplicationDefinition.cs create mode 100644 sdk/dotnet/M2/Outputs/ApplicationTimeouts.cs create mode 100644 sdk/dotnet/M2/Outputs/DeploymentTimeouts.cs create mode 100644 sdk/dotnet/M2/Outputs/EnvironmentHighAvailabilityConfig.cs create mode 100644 sdk/dotnet/M2/Outputs/EnvironmentStorageConfiguration.cs create mode 100644 sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationEfs.cs create mode 100644 sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationFsx.cs create mode 100644 sdk/dotnet/M2/Outputs/EnvironmentTimeouts.cs create mode 100644 sdk/dotnet/M2/README.md create mode 100644 sdk/dotnet/RedshiftServerless/CustomDomainAssociation.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResource.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResourceArgs.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCount.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCountArgs.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourceProperty.cs create mode 100644 sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourcePropertyArgs.cs create mode 100644 sdk/dotnet/ResourceExplorer/Outputs/SearchResourceCountResult.cs create mode 100644 sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResourcePropertyResult.cs create mode 100644 sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResult.cs create mode 100644 sdk/dotnet/ResourceExplorer/Search.cs create mode 100644 sdk/dotnet/ServiceCatalog/AppregistryApplication.cs create mode 100644 sdk/dotnet/ServiceCatalog/GetAppregistryApplication.cs create mode 100644 sdk/go/aws/cloudfront/keyvaluestoreKey.go create mode 100644 sdk/go/aws/devopsguru/notificationChannel.go create mode 100644 sdk/go/aws/dynamodb/resourcePolicy.go create mode 100644 sdk/go/aws/ec2/instanceMetadataDefaults.go create mode 100644 sdk/go/aws/lakeformation/resourceLfTag.go create mode 100644 sdk/go/aws/m2/application.go create mode 100644 sdk/go/aws/m2/deployment.go create mode 100644 sdk/go/aws/m2/environment.go create mode 100644 sdk/go/aws/m2/init.go create mode 100644 sdk/go/aws/m2/pulumiTypes.go create mode 100644 sdk/go/aws/redshiftserverless/customDomainAssociation.go create mode 100644 sdk/go/aws/resourceexplorer/search.go create mode 100644 sdk/go/aws/servicecatalog/appregistryApplication.go create mode 100644 sdk/go/aws/servicecatalog/getAppregistryApplication.go create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKey.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKeyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/KeyvaluestoreKeyState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannel.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannelArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelFiltersArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelSnsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelFilters.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelSns.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicy.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/ResourcePolicyState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaults.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaultsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/InstanceMetadataDefaultsState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTag.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTagArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagDatabaseArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagLfTagArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagDatabase.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagLfTag.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTable.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumns.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumnsColumnWildcard.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/Application.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/ApplicationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/Deployment.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/DeploymentArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/Environment.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/EnvironmentArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationDefinitionArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentHighAvailabilityConfigArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationEfsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationFsxArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentTimeoutsArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationDefinition.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/DeploymentTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentHighAvailabilityConfig.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfiguration.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationEfs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationFsx.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentTimeouts.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociation.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/inputs/CustomDomainAssociationState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/ResourceexplorerFunctions.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResource.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCount.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCountArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourceProperty.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourcePropertyArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResource.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceCount.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceResourceProperty.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResult.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplication.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplicationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/AppregistryApplicationState.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationPlainArgs.java create mode 100644 sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryApplicationResult.java create mode 100644 sdk/nodejs/cloudfront/keyvaluestoreKey.ts create mode 100644 sdk/nodejs/devopsguru/notificationChannel.ts create mode 100644 sdk/nodejs/dynamodb/resourcePolicy.ts create mode 100644 sdk/nodejs/ec2/instanceMetadataDefaults.ts create mode 100644 sdk/nodejs/lakeformation/resourceLfTag.ts create mode 100644 sdk/nodejs/m2/application.ts create mode 100644 sdk/nodejs/m2/deployment.ts create mode 100644 sdk/nodejs/m2/environment.ts create mode 100644 sdk/nodejs/m2/index.ts create mode 100644 sdk/nodejs/redshiftserverless/customDomainAssociation.ts create mode 100644 sdk/nodejs/resourceexplorer/search.ts create mode 100644 sdk/nodejs/servicecatalog/appregistryApplication.ts create mode 100644 sdk/nodejs/servicecatalog/getAppregistryApplication.ts create mode 100644 sdk/python/pulumi_aws/cloudfront/keyvaluestore_key.py create mode 100644 sdk/python/pulumi_aws/devopsguru/notification_channel.py create mode 100644 sdk/python/pulumi_aws/dynamodb/resource_policy.py create mode 100644 sdk/python/pulumi_aws/ec2/instance_metadata_defaults.py create mode 100644 sdk/python/pulumi_aws/lakeformation/resource_lf_tag.py create mode 100644 sdk/python/pulumi_aws/m2/__init__.py create mode 100644 sdk/python/pulumi_aws/m2/_inputs.py create mode 100644 sdk/python/pulumi_aws/m2/application.py create mode 100644 sdk/python/pulumi_aws/m2/deployment.py create mode 100644 sdk/python/pulumi_aws/m2/environment.py create mode 100644 sdk/python/pulumi_aws/m2/outputs.py create mode 100644 sdk/python/pulumi_aws/redshiftserverless/custom_domain_association.py create mode 100644 sdk/python/pulumi_aws/resourceexplorer/search.py create mode 100644 sdk/python/pulumi_aws/servicecatalog/appregistry_application.py create mode 100644 sdk/python/pulumi_aws/servicecatalog/get_appregistry_application.py diff --git a/examples/go.mod b/examples/go.mod index 942df563b9c..498c8a4e5c6 100644 --- a/examples/go.mod +++ b/examples/go.mod @@ -3,7 +3,7 @@ module github.com/pulumi/pulumi-aws/examples/v6 go 1.21.0 require ( - github.com/aws/aws-sdk-go v1.51.4 + github.com/aws/aws-sdk-go v1.51.9 github.com/pulumi/providertest v0.0.11 github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000 github.com/pulumi/pulumi-terraform-bridge/pf v0.32.0 @@ -54,10 +54,10 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go-v2 v1.26.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.8 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.9 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.9 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect @@ -65,6 +65,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/account v1.16.3 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/appfabric v1.7.3 // indirect @@ -72,11 +73,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/athena v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.36.0 // indirect github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloud9 v1.24.3 // indirect @@ -88,8 +89,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.39.1 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0 // indirect - github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.25.3 // indirect @@ -104,26 +105,28 @@ require ( github.com/aws/aws-sdk-go-v2/service/configservice v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/devopsguru v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5 // indirect github.com/aws/aws-sdk-go-v2/service/eks v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/emr v1.39.3 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4 // indirect github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3 // indirect - github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.24.1 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.26.3 // indirect @@ -139,20 +142,20 @@ require ( github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1 // indirect - github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0 // indirect github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 // indirect github.com/aws/aws-sdk-go-v2/service/lakeformation v1.31.4 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.10.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.20.3 // indirect @@ -161,10 +164,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/oam v1.9.3 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/osis v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3 // indirect github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.39.5 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.16.3 // indirect @@ -176,13 +180,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3 // indirect - github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4 // indirect + github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0 // indirect github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3control v1.44.3 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5 // indirect + github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.21.3 // indirect diff --git a/examples/go.sum b/examples/go.sum index f684812040d..f0c70e194f5 100644 --- a/examples/go.sum +++ b/examples/go.sum @@ -1358,8 +1358,8 @@ github.com/aws/aws-sdk-go v1.43.11/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.51.4 h1:yOVfGhRJyReBrACK0alLosJl8iXhWkNY1vrePYmhHdw= -github.com/aws/aws-sdk-go v1.51.4/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.9 h1:w6ZlyFX7l4+ZNVPmWw7LwOHSaBDDQuP22l1gh7OYu7w= +github.com/aws/aws-sdk-go v1.51.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= github.com/aws/aws-sdk-go-v2 v1.26.0 h1:/Ce4OCiM3EkpW7Y+xUnfAFpchU78K7/Ug01sZni9PgA= @@ -1368,17 +1368,17 @@ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3/go.mod h1:gNsR5CaXK github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= github.com/aws/aws-sdk-go-v2/config v1.15.15/go.mod h1:A1Lzyy/o21I5/s2FbyX5AevQfSVXpvvIDCoVFD0BC4E= -github.com/aws/aws-sdk-go-v2/config v1.27.8 h1:0r8epOsiJ7YJz65MGcb8i91ehFp4kvvFe2qkq5oYeRI= -github.com/aws/aws-sdk-go-v2/config v1.27.8/go.mod h1:XsmYKxYNuIhLsFddpNds+j9H5XKzjWDdg/SZngiwFio= +github.com/aws/aws-sdk-go-v2/config v1.27.9 h1:gRx/NwpNEFSk+yQlgmk1bmxxvQ5TyJ76CWXs9XScTqg= +github.com/aws/aws-sdk-go-v2/config v1.27.9/go.mod h1:dK1FQfpwpql83kbD873E9vz4FyAxuJtR22wzoXn3qq0= github.com/aws/aws-sdk-go-v2/credentials v1.12.10/go.mod h1:g5eIM5XRs/OzIIK81QMBl+dAuDyoLN0VYaLP+tBqEOk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.8 h1:WUdNLXbyNbU07V/WFrSOBXqZTDgmmMNMgUFzpYOKJhw= -github.com/aws/aws-sdk-go-v2/credentials v1.17.8/go.mod h1:iPZzLpaBIfhyvVS/XGD3JvR1GP3YdHTqpySKDlqkfs8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.9 h1:N8s0/7yW+h8qR8WaRlPQeJ6czVMNQVNtNdUqf6cItao= +github.com/aws/aws-sdk-go-v2/credentials v1.17.9/go.mod h1:446YhIdmSV0Jf/SLafGZalQo+xr2iw7/fzXGDPTU1yQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9/go.mod h1:KDCCm4ONIdHtUloDcFvK2+vshZvx4Zmj7UMDfusuz5s= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4 h1:S+L2QSKhUuShih3aq9P/mkzDBiOO5tTyVg+vXREfsfg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4/go.mod h1:nQ3how7DMnFMWiU1SpECohgC82fpn4cKZ875NDMmwtA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0 h1:af5YzcLf80tv4Em4jWVD75lpnOHSBkPUZxZfGkrI3HI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0/go.mod h1:nQ3how7DMnFMWiU1SpECohgC82fpn4cKZ875NDMmwtA= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12 h1:rfAytUY7OgbOMDkzxdiigZkbTe9SDER2dIpO/Fzi9+0= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12/go.mod h1:BaY3WWSgUwV/zq0K3HePyXhRYZxGnDATYERkR0f1RTs= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 h1:F+PUZee9mlfpEJVZdgyewRumKekS9O3fftj8fEMt0rQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13/go.mod h1:Rl7i2dEWGHGsBIJCpUxlRt7VwK/HyXxICxdvIRssQHE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.15/go.mod h1:pWrr2OoHlT7M/Pd2y4HV3gJyPb3qj5qMmnPkKSNPYK4= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 h1:0ScVK/4qZ8CIW0k8jOeFVsyS/sAiXpYxRBLolMkuLQM= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4/go.mod h1:84KyjNZdHC6QZW08nfHI6yZgPd+qRgaWcYsyLUo3QY8= @@ -1397,6 +1397,8 @@ github.com/aws/aws-sdk-go-v2/service/account v1.16.3 h1:naZ+3ZZa/j5c7N25vCII8ZHW github.com/aws/aws-sdk-go-v2/service/account v1.16.3/go.mod h1:QBT5/WHp07EA3HgT/Wg3qVpL9baYpqaLl6XWSH18ntk= github.com/aws/aws-sdk-go-v2/service/acm v1.25.3 h1:AH94I88C4CPMp6YOTncdshON5hsyBDWUAM/FBAHHkco= github.com/aws/aws-sdk-go-v2/service/acm v1.25.3/go.mod h1:hFOyylMVlIkhN7YLhv64oBZzVTJoi8bqhJZfkDVlZww= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3 h1:KkkUQXWi8ddsVrmX04FcAOBz/R8dmt+7MNsUoB7XImU= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3/go.mod h1:EfOq2JRfHuaQY21aVXTGYQ7pjF0zW9+xD+u36e1nqTU= github.com/aws/aws-sdk-go-v2/service/amp v1.25.3 h1:GkOnnt0ItVXnvo7xt1/+XJkzB6q1NAa80cLn7KkQd50= github.com/aws/aws-sdk-go-v2/service/amp v1.25.3/go.mod h1:FUrdgK1jyv01Q1DjpW6MWjA/ZEuTRphMLdkqtLTBXq0= github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.1 h1:AtkGG+t4U+Mb7sR2lQj/uvDlbdA7GVAIv8o/AAnS+vk= @@ -1411,16 +1413,16 @@ github.com/aws/aws-sdk-go-v2/service/athena v1.40.3 h1:Q54tyTwpoEyJNmP4WqwT9hdPH github.com/aws/aws-sdk-go-v2/service/athena v1.40.3/go.mod h1:HP/WmaAcHBNMHa6EwxTMPdqCIbV0uCnWR8WNTp2AG5c= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3 h1:Y9Tqv+Pb93GGLpxYoKYdz9ZdwpnT5HP6AFazR3moNlM= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3/go.mod h1:iKupmNJ2eciB82e13iVV0Yy0RF3rEYwnWvjOFS8gwSo= -github.com/aws/aws-sdk-go-v2/service/batch v1.35.1 h1:0s/EA1gzCbGc3QJPFKtkQSZthqKAtjTQ9KZK8vdq6MY= -github.com/aws/aws-sdk-go-v2/service/batch v1.35.1/go.mod h1:6wZ9nLiDKN23ZIR+JFkBT2ja8ptpN0+GXc468eb6pz8= +github.com/aws/aws-sdk-go-v2/service/batch v1.36.0 h1:XJit21DOKhQKvomQOIE92INP+4mbfhlnx7+8xgv+o1I= +github.com/aws/aws-sdk-go-v2/service/batch v1.36.0/go.mod h1:6wZ9nLiDKN23ZIR+JFkBT2ja8ptpN0+GXc468eb6pz8= github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3 h1:7eWSY1WH9QwOhynO1q7FeTiQmlDuDuA4U3aVnzJuwlI= github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3/go.mod h1:oKzsmy0T0tnOwivf+uLOQi0HiZMVHFjkvdDSXJgzI6w= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3 h1:PyHPzIUfK0hqgisQStSSv6B6pxMD3u0glzqxX4hpu7E= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3/go.mod h1:dZI35YHA0eH/XivJRXI0rh9dtI5W7bfPcbNoo6cxRlw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0 h1:BBRBOgkG3ydgm4h6dum6gjIfF3G71Szce18CWJ/DUuI= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0/go.mod h1:dZI35YHA0eH/XivJRXI0rh9dtI5W7bfPcbNoo6cxRlw= github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3 h1:8/EAWsRzln7yZ8XjKm4eDizPz+SIaZ83CZRsl4hGsgM= github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3/go.mod h1:tLE9xTrWczkC/4JKSTmoFMdO+sRVOdc78mSLEDdsMd4= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3 h1:cnaPPuP1Vibm0S6NrAw3uLsyUHHTN9MZBifCPiM2KM4= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3/go.mod h1:Bwt+CNMRVQxCEzfqVJB4eJjedEYzyPk7zIkbzG6uxMw= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4 h1:KJ5+G5m4rVZxS1vTUkRsHi+yr7KUTDNICO6nJgTarTw= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4/go.mod h1:Bwt+CNMRVQxCEzfqVJB4eJjedEYzyPk7zIkbzG6uxMw= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3 h1:mEnRQhdLEDhkd8nxv1OQZtVXw3ebWfUOVcPnXyRNKiQ= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3/go.mod h1:QcyoLDnm8ovYqTHaF/Fuuinxs6gOh2Z8eJIhY2vvR4Y= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.10.3 h1:f5xS8vcBOOTFOee23wU0nGFO65wwhh7PnBBzF/iYeDg= @@ -1443,10 +1445,10 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3 h1:l3vM7tnmYWZBdyN1d2Q4g github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3/go.mod h1:xeAHc7vhdOYwpG2t4uXdnGhOvOIpJ8n+A5AHnCkk8iw= github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0 h1:Tpy3mOh9ladwf9bhlAr38OTnZk/Uh9UuN4UNg3MFB/U= github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0/go.mod h1:bIFyamdY1PRTmifPT7uHCq4+af0SooBn9hmK9UW/hmg= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3 h1:W5IOpg9lYLdWLo7AI9nTHiRyDrteLW/z5qphLW6k/qQ= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3/go.mod h1:SiTynZd9Y6kyyetSwU9wS3PVo8LxVusPlebMU0hzxSY= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2 h1:o9NWkmCGK0BfbXpuiIUGcgv5XlEcrDohqwepyFqrF7U= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2/go.mod h1:r+u4e5jkfeCLiTUKMNunJPiRV3j+uJD9TL5KBRAXy8A= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0 h1:pd4MCOXxIABkJZhnst/sNvjCDXgcT7hqDjhBYDbEmjA= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0/go.mod h1:SiTynZd9Y6kyyetSwU9wS3PVo8LxVusPlebMU0hzxSY= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0 h1:94+JXltheV33cKZseckFlOEiROlin/3FlgO4Ln9ugaM= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0/go.mod h1:r+u4e5jkfeCLiTUKMNunJPiRV3j+uJD9TL5KBRAXy8A= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3 h1:AJouQBGP960Xv2awBeJ0NgZaatMe3eIP2hCeTT2j544= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3/go.mod h1:dE9FjOfKWN/Dm8sB1PKV6bz/CPZClhkHybyicrtOqKA= github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.3 h1:JFEGvOVTxk+i56BjRVrICK5N1F0qbsJcSVwbc+M8hJM= @@ -1475,10 +1477,14 @@ github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3 h1:L95GltoDtewMcFq15o/ github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3/go.mod h1:TyZr6RqRlR3hKsh1y1XfbY7+4NRvp3SgMFzxBk1K3Us= github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3 h1:SG3sGG6K3N6tPMVeJBe98Zx0aXfTZlBDhHn6F0Nqof0= github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3/go.mod h1:/MVyYMNxCYw1fGAIjcMc4N/gmTfJusFugrFKiKrW1Pw= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3 h1:hwFILcm5DB632aqO4NSYIMq+HDJP2+VGA7MeytKuMpE= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3/go.mod h1:OwHPUjPCdGTQGypglHevR5rbpOp2Uq/1fKlsXDbLdiM= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3 h1:nCnaWjpCuKpcvUjnS/xuZTYPNUIWyyDB+br1muzA7Xk= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3/go.mod h1:GgMyAMEjKSWEMqwTkesHtHygbeh6aKyeGtkJC2XBQNc= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3 h1:8akKwsfPSXuuva2PtFOGEJMS/yBOqzt45a7+fiDStEg= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3/go.mod h1:poSn2Rf3sIZq4o9HFUXF9SFIANrNmdMpK5tsCVI5N34= +github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3 h1:7zfDRW2h/V/3Nx5dh0AG1rIWJYpQ7aeCTgl+QHzpUwM= +github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3/go.mod h1:IN3onXQrF2ukCZ9/acQlHZvAaAUJXX7BCBALgYFSOPk= github.com/aws/aws-sdk-go-v2/service/dax v1.19.3 h1:nBFeHXBmuicno0/3gV/QeKEJL2+PKTOk+ISrk7DNNjU= github.com/aws/aws-sdk-go-v2/service/dax v1.19.3/go.mod h1:jPAOa4SFhgbTLdzZ77wuLjXHRjQCobtSZIbAcjttpZ0= github.com/aws/aws-sdk-go-v2/service/devopsguru v1.30.3 h1:GdBBQ5f3MFBlwpOHxHKECfLI879O3jwn/yfsJqPH8ds= @@ -1489,18 +1495,18 @@ github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2 h1:mNuCgv1+9HaWNrU24TVw github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2/go.mod h1:18sgErGtZi/o6ITt8+eWIejU0VyIqOn7eJX6lCl3BnQ= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 h1:LtsNRZ6+ZYIbJcPiLHcefXeWkw2DZT9iJyXJJQvhvXw= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0/go.mod h1:ua1eYOCxAAT0PUY3LAi9bUFuKJHC/iAksBLqR1Et7aU= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0 h1:ltCQObuImVYmIrMX65ikB9W83MEun3Ry2Sk11ecZ8Xw= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0/go.mod h1:TeZ9dVQzGaLG+SBIgdLIDbJ6WmfFvksLeG3EHGnNfZM= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0 h1:+OJ9EhHaqjtA4YTTbxxLxMffrWuGWh0qMaBmGJTLSSg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0/go.mod h1:TeZ9dVQzGaLG+SBIgdLIDbJ6WmfFvksLeG3EHGnNfZM= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3 h1:gfgt0D8MGL3gHrJPEv4rcWptA4Nz7uYn25ls8lLiANw= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3/go.mod h1:O5Fvd41s5KfDG093xLM7FhGiH6EmhmEli5D5MQH3TWw= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3 h1:gaq/4fd2/bQeJ33m4csgL7DJHrrmvGhqnrsxchNr46c= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3/go.mod h1:vn+Rz9fAFGJtDXbBmYdTc71Q8iF/W/uK1/ec93hinD8= -github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3 h1:lMtV6j7HE9vpJ+rCXbjfKYuM0lVQVWOYGn6zxy0OvEQ= -github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3/go.mod h1:7b5ZXNyT7SjZhy+MOuXwL2XtsrFDl1bOL4Mqrgr5c3k= +github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5 h1:KUB2aLoYzKGZIh2mybcwBqBy7FjwElilVFfoxp8OINE= +github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5/go.mod h1:7b5ZXNyT7SjZhy+MOuXwL2XtsrFDl1bOL4Mqrgr5c3k= github.com/aws/aws-sdk-go-v2/service/eks v1.41.2 h1:0X5g5H8YyW9QVtlp6j+ZGHl/h0ZS58jiLRXabyiB5uw= github.com/aws/aws-sdk-go-v2/service/eks v1.41.2/go.mod h1:T2MBMUUCoSEvHuKPplubyQJbWNghbHhx3ToJpLoipDs= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4 h1:a86Pz2dmS3KwpHTXvipg5hX5wgWtzb1th8t9fAzdZCA= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4/go.mod h1:S/K/QIhqH+2hwikH4SctnR8QhKvaljcPZ6GdcjmFXSk= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0 h1:Ac0ujTSUTLJzYsHi+b8mlTNitU5qMy7sOs5/RCkZh9U= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0/go.mod h1:S/K/QIhqH+2hwikH4SctnR8QhKvaljcPZ6GdcjmFXSk= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3 h1:JJ5sred8R2EHH0wwShEHY1yy7Vl7aYu7RkAw/lmGgNU= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3/go.mod h1:Q9T8IxdX1JMwax432uDRWaFhG+abLbs20oLtizL2Wxo= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.4 h1:Lq2q/AWzFv5jHVoGJ2Hz1PkxwHYNdGzAB3lbw2g7IEU= @@ -1511,10 +1517,10 @@ github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4 h1:Sel4bhQsqWJpMpS7ph github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4/go.mod h1:Lqyi+jrynf2YmFnPAGX/QV0E03GPevxTO4ZF8K+9WKE= github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3 h1:I5aDPbhOCXW1ghm+jVn3w7OyUJ5ibGxJk1Ztn19nzGc= github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3/go.mod h1:OdJAuOKSBvgWd7IPPt1mhFcZMrWKHxvkiaCk1baayl0= -github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0 h1:hzIP5bmFE3zz9fhnOFj9Q8ygOOpQQeZtg7Zsaq5RcFg= -github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0/go.mod h1:jcWNHj8/0TSarVAPO/wMLr4PqVW7wLZ9IklE0JFTgdQ= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3 h1:WitDVXj+2Ljpr9rpcB9PU+rW2cKDNeOEohXcYlq82zk= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3/go.mod h1:lG0iZ1i9pDmHwZzPwt62ek5F+IURxddbra2KWidu11s= +github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0 h1:0QJDLyACLAIk1C0iYw8hJfNbauvQQnrr/8Hq37w2Az8= +github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0/go.mod h1:jcWNHj8/0TSarVAPO/wMLr4PqVW7wLZ9IklE0JFTgdQ= +github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4 h1:Dex1nY+50qE5pYpPGwGV4LfJ7ANNUaQF7S+gl0R3/DA= +github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4/go.mod h1:lG0iZ1i9pDmHwZzPwt62ek5F+IURxddbra2KWidu11s= github.com/aws/aws-sdk-go-v2/service/fis v1.24.1 h1:jXrNT8HEz8Z2DuXq+aToU9gdVDi5Pw4NwVUvfMOzHoM= github.com/aws/aws-sdk-go-v2/service/fis v1.24.1/go.mod h1:altCNtz8BV8tQDXkT6dlIO2FlFsiwwHkELYDa2o4YCs= github.com/aws/aws-sdk-go-v2/service/glacier v1.22.3 h1:2uNAuva/9zAQpa7nkASJupbhSOa+LLbi1rrM9Z9tfVM= @@ -1549,8 +1555,8 @@ github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3 h1:0iTKT43YbjxkfLWpDy53XNpX github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3/go.mod h1:9KYRjzfuA+yQ94Z76xtyXijr6IAzSe7c4LPNgJ6RaHE= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1 h1:kgmN23latoCf5DU+se+7yvaLFafN01wcFqH22/xw9xE= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1/go.mod h1:OdramNEwVCr+Km5x6sY48EZfhMRi63Df3lMiFwq4r2o= -github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3 h1:F40g16YlLu4QQEd75irG17VZBj8g1V7MiGJ7Ucv4DyI= -github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3/go.mod h1:PO/o18WNjfiJ9gwAedE3e7W3YOhOT8uLLP0OZErG4sg= +github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0 h1:dHTivlMnSEFywchDb2od6ZukpbgwPkDH0aJUsTyqnu4= +github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0/go.mod h1:PO/o18WNjfiJ9gwAedE3e7W3YOhOT8uLLP0OZErG4sg= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3 h1:0ZinUG7sHKMNsZ6s6x3ZwjZeBhs1fHpNpvgDp06JSEU= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3/go.mod h1:eaMHeHF8TbqE03Fbp+6zo4FN2HZWHyRxHfsIFhtUCeQ= github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.3 h1:F6ZNgFuVyS5c5XX/hzZOvCaU1s0lClTBOjALo4YZX+0= @@ -1564,8 +1570,8 @@ github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3 h1:KsKBuL+bIKhY7SMk+MXSBAj8P github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3/go.mod h1:trTURvQC8AJ41JYhFpVrZKY5tfzGgVUcSijVgfmgl8w= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3 h1:1+rqC0UyxvWiqiMI0/K86l/LSMdwUbCCMnkEqqvhZBc= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3/go.mod h1:QI/5bbibfVs8G/DQCwcD5h/SINPE6jIoqX+wyi0cJF8= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2 h1:qIsU6de8m9Q69WkJyIeSCxLnewFUgEk9JoV0eNgVG/U= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2/go.mod h1:xzEn1Vmlgvu4QHbHHNuhKyJsFyoIVVZ0jttnsvjTnHU= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3 h1:dkGBygPJExHD4SC5hRKYysWyuKCr13cLLJIJad58QPU= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3/go.mod h1:xzEn1Vmlgvu4QHbHHNuhKyJsFyoIVVZ0jttnsvjTnHU= github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3 h1:Xgmk7IJjeXcCWNC0L2v7qapbDBwg9d8lHaIS01eAKTE= github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3/go.mod h1:gW5ikkvZZgbdBVQX3O2/5/IYrQl8ncFYHF8tl5tncSg= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.27.3 h1:yTE2NvVx7lIh2i0G8U9q6gZ/6jiqOgGyctvMX5GlhAg= @@ -1574,10 +1580,10 @@ github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3 h1:Lf0n1E8kjrsvSrT/qOQL+RHFSqSFM github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3/go.mod h1:8ZpMmMZVsDy8QVsCypk5XSZYTcX+Ijt7TEz6GGmdQko= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3 h1:/JTpHrZ7WBCWkQk3141wK1tqosN+IrJkdH0YnLK04ng= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3/go.mod h1:r0aD0u2T/OVQQCLXfsYkMSw3HiulS4JlQq5sccgiTTQ= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3 h1:ZsJdb3QZxxkI+Yu9JK9w/Oc69eOF4Xnn9bcaqWoRUFM= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3/go.mod h1:0gs1QlrbxxEUJKbi2m/ij685F4TT4nTESvta+yfGafE= -github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3 h1:naFLtSvfHpY8AfXXj1WPiW5+3cx8l2lRtclfvgT12tg= -github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3/go.mod h1:G/trfuk73arlR8jln73j+ahGaUSttpNrkW+rSlwVMzQ= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4 h1:FG4iFmYxdlOfMEAqxAzy0EQY6JKCikXmOufX2+pYM1A= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4/go.mod h1:0gs1QlrbxxEUJKbi2m/ij685F4TT4nTESvta+yfGafE= +github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1 h1:d6Oxk7Fs/A5vqCVj5rnkKPsPGs8kx+SO089FNArBkKU= +github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1/go.mod h1:G/trfuk73arlR8jln73j+ahGaUSttpNrkW+rSlwVMzQ= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3 h1:YTpocP/tUCenvfYtF0PLnCaiWcBQXlrqOVEjvN8ri88= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3/go.mod h1:zcDHNg37WsXPc+9Bi1an6YagYjZWZnhlTOKvhdKcBWo= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.10.1 h1://PDaerL8FJjBvZ/Yu7CW/6fACKSezrGdF98W8h6Wmw= @@ -1594,14 +1600,16 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3 h1:Hl+6c8DUmnp github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3/go.mod h1:SoK8aerBG8p08vK4N1QAPg+743VWbrcTACKCVFnyLFs= github.com/aws/aws-sdk-go-v2/service/osis v1.8.3 h1:fETzs9pAxPp0gkIRJ1olOtN2M1Hi2oVF1QfewEjdr3g= github.com/aws/aws-sdk-go-v2/service/osis v1.8.3/go.mod h1:ixCAnUrXx5eW7WSRm62k8pQ2XvqOi7bMKB9qMEPPPhs= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3 h1:TPQIc4TaooKezlyDMoe9rbKwftOTe6eBoI9fhl3JLe8= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3/go.mod h1:fEeoWuZvJKM5gEg5Ch4T4EzXA+jdNVztidiARUPTgyc= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3 h1:Itfj1epf35aUtsAoSrx1PMulQTrLsh6iidiF7/+07BM= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3/go.mod h1:hw+93RlfeLZueByt54PWQFxqUSD7xTzyHFYc5xBuKR8= github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3 h1:Tbj7OCbZgkhnkByBcObF1B8ZHacttdLlz4jKzWI/JYs= github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3/go.mod h1:FORQ0HOx+V/5WCbSK79ZmX3NozruVMA0l6ySqYlndHQ= github.com/aws/aws-sdk-go-v2/service/polly v1.39.5 h1:gz62DPzkIArtvmuQkGGHlLreLV1v/N1g1CkSHVwQTJk= github.com/aws/aws-sdk-go-v2/service/polly v1.39.5/go.mod h1:1/WA2p90+p1n/COApBzAxN/XxpBbH0iho3HV5hLTzlU= -github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3 h1:Fl50I7+QT9D1QgPsQqqXbo44YKFfGJ6h1ljZu+BGZoE= -github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3/go.mod h1:oB3Na0szArXW5rngmmBdNdJN4jsMvRTFpWZ6sGaqDDk= +github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0 h1:fvHH3/l0qhZs4bEEkNJx/ljs9vpXtfJacUhNAQTS9bE= +github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0/go.mod h1:oB3Na0szArXW5rngmmBdNdJN4jsMvRTFpWZ6sGaqDDk= github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3 h1:QZtPVqOTsJq+wj8K2QB29uZyrO2fWiU/hQZk/KjGm9U= github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3/go.mod h1:UFPEBRf7wpsUi4EMg9O4K/xuv39dVuzX+MXpt90mpIE= github.com/aws/aws-sdk-go-v2/service/qldb v1.21.3 h1:b43pgguttg3h/X7urz3pMG2ColT7YC+lH5/FysHOIQU= @@ -1624,8 +1632,8 @@ github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3 h1:ruD/QNzA0SWFYf5v1 github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3/go.mod h1:I+z4BKgG7tu84byzP/3pkU/QbDZuE7R1FphdHMYwUSA= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3 h1:wM7sHeNGJ/TqW5y/IXYAxIGpabxDUMZBiJedm/eX7vU= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3/go.mod h1:z7I7ESFGZuAaT8gMWZLKGS3h9BWPjW8iFni9eOJWwqs= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4 h1:AuCtFQh5a8Uvi7r21jFFyNoPQt5X+bSa63NbMk7a2mE= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4/go.mod h1:JfM0EhP2Z5ArefAfzgeJBkBOaee9mmyXtUqHTxnwZEE= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0 h1:iMQ/A8XGpMsi5KcxJLgftG1d8vySL4fB2OS8BD7MZDs= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0/go.mod h1:JfM0EhP2Z5ArefAfzgeJBkBOaee9mmyXtUqHTxnwZEE= github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3 h1:iuBYHWv0+2pF2qbM+UmnSwvcdOknXRi4yE9KBHhAItQ= github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3/go.mod h1:Ijqatnvuyx5IE/FmFJWJyWTcUY5XrlXgc6G7z1Fqk6o= github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2/go.mod h1:u+566cosFI+d+motIz3USXEh6sN8Nq4GrNXSg2RXVMo= @@ -1636,10 +1644,10 @@ github.com/aws/aws-sdk-go-v2/service/s3control v1.44.3/go.mod h1:0wQ+7wiAWqWwksg github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3 h1:PDlINUkjxH/eMLVDUMFOQJBMkB3BbTwNjUWKeq2xH8E= github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3/go.mod h1:vEBdLTVmJesS5DAiryn7zuJPpT2pyYBKsBN0pHb6SxE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4 h1:5GYToReUFSGP6/zqvG3fv8qNqeetyfsSiPHduHShjAc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4/go.mod h1:slgOMs1CQu8UVgwoFqEvCi71L4HVoZgM0r8MtcNP6Mc= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3 h1:0SaKuyc6OumR6eZfD4COFB3rvkgnsXvZhOXfilIBpDI= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3/go.mod h1:RWptadXBwlyIfgDAv7ExErIoLBbfieAkXKHycZXHyLM= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5 h1:1i3Pq5g1NaXI/u8lTHRVMHyCc0HoZzSk2EFmiy14Hbk= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5/go.mod h1:slgOMs1CQu8UVgwoFqEvCi71L4HVoZgM0r8MtcNP6Mc= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0 h1:lp2W10f/IIIDprGmP/T64P9tx4xV01C3ef4H5gFN7Bk= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0/go.mod h1:RWptadXBwlyIfgDAv7ExErIoLBbfieAkXKHycZXHyLM= github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2 h1:JZvvXlBglot2ZDgtArByzqDNtF5GLiROPLbn7iIP4B8= github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2/go.mod h1:b5qhz6hJZiRNRkBkzp+LL+LuxwR5ODvjSvNAPkqPnso= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.26.3 h1:DvAKjQG35XV6Ll3dAlSA1+tJAJMNj6k1oZ9QQOd3aGY= diff --git a/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch b/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch index 36a51446251..596b9dd5313 100644 --- a/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch +++ b/patches/0001-Add-TagsSchemaTrulyComputed-definition.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 16:49:08 +0000 -Subject: [PATCH 01/47] Add TagsSchemaTrulyComputed definition +Subject: [PATCH 01/48] Add TagsSchemaTrulyComputed definition diff --git a/internal/tags/tags.go b/internal/tags/tags.go diff --git a/patches/0002-Conns-user-agent.patch b/patches/0002-Conns-user-agent.patch index 19a9b464d0b..419ff60aadf 100644 --- a/patches/0002-Conns-user-agent.patch +++ b/patches/0002-Conns-user-agent.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:03:31 +0000 -Subject: [PATCH 02/47] Conns user agent +Subject: [PATCH 02/48] Conns user agent Replace the useragent used for AWS client connections with a Pulumi-flavoured one. diff --git a/patches/0003-Add-S3-legacy-bucket-to-resources.patch b/patches/0003-Add-S3-legacy-bucket-to-resources.patch index ccd13afc583..d0e6ad36c65 100644 --- a/patches/0003-Add-S3-legacy-bucket-to-resources.patch +++ b/patches/0003-Add-S3-legacy-bucket-to-resources.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:05:11 +0000 -Subject: [PATCH 03/47] Add S3 legacy bucket to resources +Subject: [PATCH 03/48] Add S3 legacy bucket to resources This preserves the old S3 Resource in the SDK, by duplicating the code as a new service (in internal/service/s3legacy), and making an explicit diff --git a/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch b/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch index 4dd34f12281..217f56372eb 100644 --- a/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch +++ b/patches/0004-Marks-SSE-Configuration-as-Computed-for-Legacy-S3-Bu.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kyle Pitzen Date: Thu, 9 Mar 2023 09:47:49 -0600 -Subject: [PATCH 04/47] Marks SSE Configuration as Computed for Legacy S3 +Subject: [PATCH 04/48] Marks SSE Configuration as Computed for Legacy S3 Bucket In January, AWS enabled SSE by default for all new S3 buckets. diff --git a/patches/0005-De-deprecate-bucket_object.patch b/patches/0005-De-deprecate-bucket_object.patch index 6e945d5c9a5..1a455a8d07d 100644 --- a/patches/0005-De-deprecate-bucket_object.patch +++ b/patches/0005-De-deprecate-bucket_object.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:06:11 +0000 -Subject: [PATCH 05/47] De-deprecate bucket_object +Subject: [PATCH 05/48] De-deprecate bucket_object diff --git a/internal/service/s3/bucket_object.go b/internal/service/s3/bucket_object.go diff --git a/patches/0006-Remove-lakeformation-catalog_resource-default.patch b/patches/0006-Remove-lakeformation-catalog_resource-default.patch index b2072f46c7c..d91cc887c41 100644 --- a/patches/0006-Remove-lakeformation-catalog_resource-default.patch +++ b/patches/0006-Remove-lakeformation-catalog_resource-default.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:08:23 +0000 -Subject: [PATCH 06/47] Remove lakeformation catalog_resource default +Subject: [PATCH 06/48] Remove lakeformation catalog_resource default diff --git a/internal/service/lakeformation/permissions.go b/internal/service/lakeformation/permissions.go diff --git a/patches/0007-Workaround-SSM-Parameter-tier-bug.patch b/patches/0007-Workaround-SSM-Parameter-tier-bug.patch index be8df36c881..57365a49e76 100644 --- a/patches/0007-Workaround-SSM-Parameter-tier-bug.patch +++ b/patches/0007-Workaround-SSM-Parameter-tier-bug.patch @@ -1,16 +1,16 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:24:42 +0000 -Subject: [PATCH 07/47] Workaround SSM Parameter tier bug +Subject: [PATCH 07/48] Workaround SSM Parameter tier bug - Disable "computed". - Disable diff suppression & counteractions diff --git a/internal/service/ssm/parameter.go b/internal/service/ssm/parameter.go -index 544385cfa6..6f72ffec7a 100644 +index 4b267ceccb..b47638308f 100644 --- a/internal/service/ssm/parameter.go +++ b/internal/service/ssm/parameter.go -@@ -94,15 +94,17 @@ func ResourceParameter() *schema.Resource { +@@ -95,15 +95,17 @@ func ResourceParameter() *schema.Resource { names.AttrTags: tftags.TagsSchema(), names.AttrTagsAll: tftags.TagsSchemaComputed(), "tier": { @@ -35,7 +35,7 @@ index 544385cfa6..6f72ffec7a 100644 }, }, "type": { -@@ -318,11 +320,13 @@ func resourceParameterUpdate(ctx context.Context, d *schema.ResourceData, meta i +@@ -319,11 +321,13 @@ func resourceParameterUpdate(ctx context.Context, d *schema.ResourceData, meta i AllowedPattern: aws.String(d.Get("allowed_pattern").(string)), } diff --git a/patches/0008-Add-EKS-cluster-certificate_authorities-plural.patch b/patches/0008-Add-EKS-cluster-certificate_authorities-plural.patch index 99cdf451882..9644107491e 100644 --- a/patches/0008-Add-EKS-cluster-certificate_authorities-plural.patch +++ b/patches/0008-Add-EKS-cluster-certificate_authorities-plural.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:32:49 +0000 -Subject: [PATCH 08/47] Add EKS cluster certificate_authorities (plural) +Subject: [PATCH 08/48] Add EKS cluster certificate_authorities (plural) diff --git a/internal/service/eks/cluster.go b/internal/service/eks/cluster.go diff --git a/patches/0009-Workaround-Autoscaling-launch_configuration-associat.patch b/patches/0009-Workaround-Autoscaling-launch_configuration-associat.patch index b741dd19e37..580714c7aca 100644 --- a/patches/0009-Workaround-Autoscaling-launch_configuration-associat.patch +++ b/patches/0009-Workaround-Autoscaling-launch_configuration-associat.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:34:56 +0000 -Subject: [PATCH 09/47] Workaround Autoscaling launch_configuration +Subject: [PATCH 09/48] Workaround Autoscaling launch_configuration associate_public_ip_address - Disable computation of property until fixed. diff --git a/patches/0010-Add-ECR-credentials_data_source.patch b/patches/0010-Add-ECR-credentials_data_source.patch index 4ff4e42e1a4..44d25c372c9 100644 --- a/patches/0010-Add-ECR-credentials_data_source.patch +++ b/patches/0010-Add-ECR-credentials_data_source.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 4 Nov 2022 17:36:34 +0000 -Subject: [PATCH 10/47] Add ECR credentials_data_source +Subject: [PATCH 10/48] Add ECR credentials_data_source diff --git a/internal/provider/provider.go b/internal/provider/provider.go diff --git a/patches/0011-Add-custom-appautoscaling-examples.patch b/patches/0011-Add-custom-appautoscaling-examples.patch index 4b40a3cd828..61156a4604a 100644 --- a/patches/0011-Add-custom-appautoscaling-examples.patch +++ b/patches/0011-Add-custom-appautoscaling-examples.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Wed, 9 Nov 2022 17:37:35 +0000 -Subject: [PATCH 11/47] Add custom appautoscaling examples +Subject: [PATCH 11/48] Add custom appautoscaling examples diff --git a/website/docs/r/appautoscaling_policy.html.markdown b/website/docs/r/appautoscaling_policy.html.markdown diff --git a/patches/0012-Add-dedicated_host-docs.patch b/patches/0012-Add-dedicated_host-docs.patch index 1ec2d763ea2..4f1e1d45a55 100644 --- a/patches/0012-Add-dedicated_host-docs.patch +++ b/patches/0012-Add-dedicated_host-docs.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 15 Nov 2022 10:08:05 +0000 -Subject: [PATCH 12/47] Add dedicated_host docs +Subject: [PATCH 12/48] Add dedicated_host docs diff --git a/website/docs/d/dedicated_host.html.markdown b/website/docs/d/dedicated_host.html.markdown diff --git a/patches/0013-Revert-WAF-schema-changes.patch b/patches/0013-Revert-WAF-schema-changes.patch index 600c6fb2c2c..9e6c39be004 100644 --- a/patches/0013-Revert-WAF-schema-changes.patch +++ b/patches/0013-Revert-WAF-schema-changes.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 15 Nov 2022 13:59:57 +0000 -Subject: [PATCH 13/47] Revert WAF schema changes +Subject: [PATCH 13/48] Revert WAF schema changes - This causes far too many types to be generated downstream. diff --git a/patches/0014-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch b/patches/0014-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch index 4936b376620..7cad7989d50 100644 --- a/patches/0014-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch +++ b/patches/0014-Catch-cty-panic-in-new-resourceTopicSubscriptionCust.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Thomas Kappler Date: Thu, 1 Dec 2022 10:56:32 -0800 -Subject: [PATCH 14/47] Catch cty panic in new +Subject: [PATCH 14/48] Catch cty panic in new resourceTopicSubscriptionCustomizeDiff. The root cause is not fully understood yet but this might unblock us. diff --git a/patches/0015-add-matchmaking-configuration-72.patch b/patches/0015-add-matchmaking-configuration-72.patch index e50ea603752..a45d1a3f2ee 100644 --- a/patches/0015-add-matchmaking-configuration-72.patch +++ b/patches/0015-add-matchmaking-configuration-72.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lee Briggs Date: Wed, 21 Dec 2022 12:23:59 -0800 -Subject: [PATCH 15/47] add matchmaking configuration (#72) +Subject: [PATCH 15/48] add matchmaking configuration (#72) * add matchmaking configuration * add matchmaking rule set diff --git a/patches/0016-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch b/patches/0016-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch index c32e4822cb2..8cbfdf8676c 100644 --- a/patches/0016-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch +++ b/patches/0016-Reverts-patches-to-S3BucketLegacy-and-GameLift.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Kyle Pitzen Date: Fri, 27 Jan 2023 09:37:43 -0600 -Subject: [PATCH 16/47] Reverts patches to S3BucketLegacy and GameLift +Subject: [PATCH 16/48] Reverts patches to S3BucketLegacy and GameLift Previously, we were pulling along patches which removed a few simplifications to waiters in AWS GameLift, and a newer patch which plumbed through context.Context diff --git a/patches/0017-Revert-Update-endpointHashIPAddress.patch b/patches/0017-Revert-Update-endpointHashIPAddress.patch index 2d0f47282c5..4a071af911e 100644 --- a/patches/0017-Revert-Update-endpointHashIPAddress.patch +++ b/patches/0017-Revert-Update-endpointHashIPAddress.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Thomas Kappler Date: Fri, 3 Feb 2023 17:31:18 -0800 -Subject: [PATCH 17/47] Revert "Update endpointHashIPAddress" +Subject: [PATCH 17/48] Revert "Update endpointHashIPAddress" This reverts commit 2197a6c2c7a0ff306cec3432acb9f5680866f034. diff --git a/patches/0018-Fixup-gamelift-context.patch b/patches/0018-Fixup-gamelift-context.patch index 1723808654b..96c9d9cf6dd 100644 --- a/patches/0018-Fixup-gamelift-context.patch +++ b/patches/0018-Fixup-gamelift-context.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Thu, 9 Mar 2023 14:50:51 +0000 -Subject: [PATCH 18/47] Fixup gamelift context +Subject: [PATCH 18/48] Fixup gamelift context diff --git a/internal/service/gamelift/matchmaking_configuration.go b/internal/service/gamelift/matchmaking_configuration.go diff --git a/patches/0019-Change-default-descriptions-to-Managed-by-Pulumi.patch b/patches/0019-Change-default-descriptions-to-Managed-by-Pulumi.patch index 3ca65d434c6..2dd061fa71c 100644 --- a/patches/0019-Change-default-descriptions-to-Managed-by-Pulumi.patch +++ b/patches/0019-Change-default-descriptions-to-Managed-by-Pulumi.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 28 Feb 2023 15:19:24 +0000 -Subject: [PATCH 19/47] Change default descriptions to "Managed by Pulumi" +Subject: [PATCH 19/48] Change default descriptions to "Managed by Pulumi" diff --git a/internal/service/apigateway/api_key.go b/internal/service/apigateway/api_key.go @@ -1061,7 +1061,7 @@ index 804d43ea28..989e905765 100644 { Action: aws.String(route53.ChangeActionDelete), diff --git a/internal/service/route53/zone.go b/internal/service/route53/zone.go -index e39e6ec7c0..b00f880a2a 100644 +index d2e20f6dda..b9e1bf2bfe 100644 --- a/internal/service/route53/zone.go +++ b/internal/service/route53/zone.go @@ -59,7 +59,7 @@ func ResourceZone() *schema.Resource { diff --git a/patches/0020-remove-required-elements-from-schema-and-fix-tests-7.patch b/patches/0020-remove-required-elements-from-schema-and-fix-tests-7.patch index 0f68dccb642..6cd3bcd712b 100644 --- a/patches/0020-remove-required-elements-from-schema-and-fix-tests-7.patch +++ b/patches/0020-remove-required-elements-from-schema-and-fix-tests-7.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Tue, 28 Mar 2023 19:54:00 +0100 -Subject: [PATCH 20/47] remove required elements from schema and fix tests +Subject: [PATCH 20/48] remove required elements from schema and fix tests (#77) Co-authored-by: Lee Briggs diff --git a/patches/0021-Temp-remove-cognito_identity_pool_roles_attachment-e.patch b/patches/0021-Temp-remove-cognito_identity_pool_roles_attachment-e.patch index 83e913b0337..fdc2cdd919a 100644 --- a/patches/0021-Temp-remove-cognito_identity_pool_roles_attachment-e.patch +++ b/patches/0021-Temp-remove-cognito_identity_pool_roles_attachment-e.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 24 Apr 2023 10:36:36 -0400 -Subject: [PATCH 21/47] Temp remove cognito_identity_pool_roles_attachment +Subject: [PATCH 21/48] Temp remove cognito_identity_pool_roles_attachment example beacuse of flaky translation diff --git a/patches/0022-Fix-elbv2-target-group-read-to-workaround-2517.patch b/patches/0022-Fix-elbv2-target-group-read-to-workaround-2517.patch index 787f3791814..8f2a70a6943 100644 --- a/patches/0022-Fix-elbv2-target-group-read-to-workaround-2517.patch +++ b/patches/0022-Fix-elbv2-target-group-read-to-workaround-2517.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Fri, 19 Jan 2024 17:36:47 -0500 -Subject: [PATCH 22/47] Fix elbv2 target group read to workaround #2517 +Subject: [PATCH 22/48] Fix elbv2 target group read to workaround #2517 diff --git a/internal/service/elbv2/target_group.go b/internal/service/elbv2/target_group.go diff --git a/patches/0023-Fix-spurrious-json-diff-for-redrive_policy.patch b/patches/0023-Fix-spurrious-json-diff-for-redrive_policy.patch index f4340917b8a..334c378b864 100644 --- a/patches/0023-Fix-spurrious-json-diff-for-redrive_policy.patch +++ b/patches/0023-Fix-spurrious-json-diff-for-redrive_policy.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ramon Quitales Date: Thu, 18 May 2023 15:21:33 -0700 -Subject: [PATCH 23/47] Fix spurrious json diff for redrive_policy +Subject: [PATCH 23/48] Fix spurrious json diff for redrive_policy We need to normalize the json input to compare agasint the one stored in state. diff --git a/patches/0024-Provide-context-to-conns.patch b/patches/0024-Provide-context-to-conns.patch index 23410423d69..cdd2e7d2bd3 100644 --- a/patches/0024-Provide-context-to-conns.patch +++ b/patches/0024-Provide-context-to-conns.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Mon, 10 Jul 2023 11:51:24 +0200 -Subject: [PATCH 24/47] Provide context to conns +Subject: [PATCH 24/48] Provide context to conns diff --git a/internal/service/ecr/credentials_data_source.go b/internal/service/ecr/credentials_data_source.go diff --git a/patches/0025-Match-the-tags-behavior-of-other-resources.patch b/patches/0025-Match-the-tags-behavior-of-other-resources.patch index cb53c214773..f3890b4cebd 100644 --- a/patches/0025-Match-the-tags-behavior-of-other-resources.patch +++ b/patches/0025-Match-the-tags-behavior-of-other-resources.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ian Wahbe Date: Wed, 2 Aug 2023 14:12:03 +0200 -Subject: [PATCH 25/47] Match the "tags" behavior of other resources +Subject: [PATCH 25/48] Match the "tags" behavior of other resources diff --git a/internal/service/s3legacy/bucket_legacy.go b/internal/service/s3legacy/bucket_legacy.go diff --git a/patches/0026-move-shim-logic-to-upstream-as-a-patch.patch b/patches/0026-move-shim-logic-to-upstream-as-a-patch.patch index b753e663ce0..6a5c949553d 100644 --- a/patches/0026-move-shim-logic-to-upstream-as-a-patch.patch +++ b/patches/0026-move-shim-logic-to-upstream-as-a-patch.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Guinevere Saenger Date: Wed, 6 Sep 2023 10:43:30 -0700 -Subject: [PATCH 26/47] move shim logic to upstream as a patch +Subject: [PATCH 26/48] move shim logic to upstream as a patch diff --git a/shim/shim.go b/shim/shim.go diff --git a/patches/0027-Restore-S3ConnURICleaningDisabled.patch b/patches/0027-Restore-S3ConnURICleaningDisabled.patch index 27334fcbbc3..39dbee81f85 100644 --- a/patches/0027-Restore-S3ConnURICleaningDisabled.patch +++ b/patches/0027-Restore-S3ConnURICleaningDisabled.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 25 Sep 2023 15:22:30 -0400 -Subject: [PATCH 27/47] Restore S3ConnURICleaningDisabled +Subject: [PATCH 27/48] Restore S3ConnURICleaningDisabled diff --git a/internal/conns/awsclient.go b/internal/conns/awsclient.go diff --git a/patches/0028-Do-not-compute-tags_all-at-TF-level.patch b/patches/0028-Do-not-compute-tags_all-at-TF-level.patch index e63b534938b..48da2cb90b4 100644 --- a/patches/0028-Do-not-compute-tags_all-at-TF-level.patch +++ b/patches/0028-Do-not-compute-tags_all-at-TF-level.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 6 Nov 2023 11:17:16 -0500 -Subject: [PATCH 28/47] Do not compute tags_all at TF level +Subject: [PATCH 28/48] Do not compute tags_all at TF level diff --git a/internal/framework/base.go b/internal/framework/base.go diff --git a/patches/0029-aws_eks_cluster-implement-default_addons_to_remove.patch b/patches/0029-aws_eks_cluster-implement-default_addons_to_remove.patch index 70c0cf2a414..308ca7f8c34 100644 --- a/patches/0029-aws_eks_cluster-implement-default_addons_to_remove.patch +++ b/patches/0029-aws_eks_cluster-implement-default_addons_to_remove.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 15 Nov 2023 11:53:09 -0500 -Subject: [PATCH 29/47] aws_eks_cluster: implement default_addons_to_remove +Subject: [PATCH 29/48] aws_eks_cluster: implement default_addons_to_remove diff --git a/internal/service/eks/cluster.go b/internal/service/eks/cluster.go diff --git a/patches/0030-Fix-markTagsAllNotComputedForResources-to-recognize-.patch b/patches/0030-Fix-markTagsAllNotComputedForResources-to-recognize-.patch index 05a1ec88b1c..60fcca0398c 100644 --- a/patches/0030-Fix-markTagsAllNotComputedForResources-to-recognize-.patch +++ b/patches/0030-Fix-markTagsAllNotComputedForResources-to-recognize-.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 29 Nov 2023 17:23:09 -0500 -Subject: [PATCH 30/47] Fix markTagsAllNotComputedForResources to recognize +Subject: [PATCH 30/48] Fix markTagsAllNotComputedForResources to recognize SchemaFunc diff --git a/patches/0031-Optimize-startup-performance.patch b/patches/0031-Optimize-startup-performance.patch index 88ec8afa7b8..d51427064cd 100644 --- a/patches/0031-Optimize-startup-performance.patch +++ b/patches/0031-Optimize-startup-performance.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Thu, 30 Nov 2023 14:28:37 -0500 -Subject: [PATCH 31/47] Optimize startup performance +Subject: [PATCH 31/48] Optimize startup performance diff --git a/internal/provider/provider.go b/internal/provider/provider.go diff --git a/patches/0032-Fix-job-queue-sdkv2-migration.patch b/patches/0032-Fix-job-queue-sdkv2-migration.patch index 96b31d7cda1..3ed38cac2c5 100644 --- a/patches/0032-Fix-job-queue-sdkv2-migration.patch +++ b/patches/0032-Fix-job-queue-sdkv2-migration.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 6 Dec 2023 23:41:21 -0500 -Subject: [PATCH 32/47] Fix job queue sdkv2 migration +Subject: [PATCH 32/48] Fix job queue sdkv2 migration diff --git a/internal/service/batch/job_queue_schema.go b/internal/service/batch/job_queue_schema.go diff --git a/patches/0033-DisableTagSchemaCheck-for-PF-provider.patch b/patches/0033-DisableTagSchemaCheck-for-PF-provider.patch index 3197a207a22..7335e9db02b 100644 --- a/patches/0033-DisableTagSchemaCheck-for-PF-provider.patch +++ b/patches/0033-DisableTagSchemaCheck-for-PF-provider.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 6 Dec 2023 23:44:25 -0500 -Subject: [PATCH 33/47] DisableTagSchemaCheck for PF provider +Subject: [PATCH 33/48] DisableTagSchemaCheck for PF provider diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go diff --git a/patches/0034-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch b/patches/0034-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch index b849667e7de..4fcce3072d5 100644 --- a/patches/0034-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch +++ b/patches/0034-Run-scripts-patch_computed_only.sh-to-patch-eks-pod_.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Thu, 7 Dec 2023 00:05:40 -0500 -Subject: [PATCH 34/47] Run scripts/patch_computed_only.sh to patch +Subject: [PATCH 34/48] Run scripts/patch_computed_only.sh to patch eks/pod_identity_association and more diff --git a/patches/0035-Fail-fast-when-PF-resources-are-dropped.patch b/patches/0035-Fail-fast-when-PF-resources-are-dropped.patch index 6f160eb4c7c..08fd66495f8 100644 --- a/patches/0035-Fail-fast-when-PF-resources-are-dropped.patch +++ b/patches/0035-Fail-fast-when-PF-resources-are-dropped.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Thu, 7 Dec 2023 00:18:14 -0500 -Subject: [PATCH 35/47] Fail fast when PF resources are dropped +Subject: [PATCH 35/48] Fail fast when PF resources are dropped diff --git a/internal/provider/fwprovider/provider.go b/internal/provider/fwprovider/provider.go diff --git a/patches/0036-Fix-tags_all-Computed-for-PF-resources.patch b/patches/0036-Fix-tags_all-Computed-for-PF-resources.patch index 2e9a74db4e5..7d4ede9bb94 100644 --- a/patches/0036-Fix-tags_all-Computed-for-PF-resources.patch +++ b/patches/0036-Fix-tags_all-Computed-for-PF-resources.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Wed, 7 Feb 2024 12:24:44 -0500 -Subject: [PATCH 36/47] Fix tags_all Computed for PF resources +Subject: [PATCH 36/48] Fix tags_all Computed for PF resources diff --git a/internal/service/amp/scraper.go b/internal/service/amp/scraper.go diff --git a/patches/0037-Disable-retry-for-KMS-access-denied-in-lambda.patch b/patches/0037-Disable-retry-for-KMS-access-denied-in-lambda.patch index 5805c4e0a7d..1d8d905585e 100644 --- a/patches/0037-Disable-retry-for-KMS-access-denied-in-lambda.patch +++ b/patches/0037-Disable-retry-for-KMS-access-denied-in-lambda.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Mon, 8 Jan 2024 16:58:44 -0500 -Subject: [PATCH 37/47] Disable retry for KMS access denied in lambda +Subject: [PATCH 37/48] Disable retry for KMS access denied in lambda diff --git a/internal/service/lambda/service_package_extra.go b/internal/service/lambda/service_package_extra.go diff --git a/patches/0038-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch b/patches/0038-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch index 04d54aa9b67..4121972703d 100644 --- a/patches/0038-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch +++ b/patches/0038-Patch-ACM-retry-to-not-retry-after-LimitExceededExce.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Fri, 19 Jan 2024 18:08:51 -0500 -Subject: [PATCH 38/47] Patch ACM retry to not retry after +Subject: [PATCH 38/48] Patch ACM retry to not retry after LimitExceededException (#3290) diff --git a/patches/0039-Restore-legacy-bucket.patch b/patches/0039-Restore-legacy-bucket.patch index ea489db32d9..afa9f751b8f 100644 --- a/patches/0039-Restore-legacy-bucket.patch +++ b/patches/0039-Restore-legacy-bucket.patch @@ -1,14 +1,14 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin Date: Wed, 28 Feb 2024 16:01:28 +0000 -Subject: [PATCH 39/47] Restore legacy bucket +Subject: [PATCH 39/48] Restore legacy bucket diff --git a/go.mod b/go.mod -index 86b33715c9..48e10fce33 100644 +index 0da9fc741c..a021968927 100644 --- a/go.mod +++ b/go.mod -@@ -155,6 +155,7 @@ require ( +@@ -159,6 +159,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.21.0 @@ -17,7 +17,7 @@ index 86b33715c9..48e10fce33 100644 github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.51 github.com/hashicorp/awspolicyequivalence v1.6.0 diff --git a/go.sum b/go.sum -index 8294cd4914..30ac51b2d6 100644 +index 5e27a724d6..2780c5e9e2 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,7 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew @@ -25,10 +25,10 @@ index 8294cd4914..30ac51b2d6 100644 github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= - github.com/aws/aws-sdk-go v1.51.4 h1:yOVfGhRJyReBrACK0alLosJl8iXhWkNY1vrePYmhHdw= - github.com/aws/aws-sdk-go v1.51.4/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= + github.com/aws/aws-sdk-go v1.51.9 h1:w6ZlyFX7l4+ZNVPmWw7LwOHSaBDDQuP22l1gh7OYu7w= + github.com/aws/aws-sdk-go v1.51.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.26.0 h1:/Ce4OCiM3EkpW7Y+xUnfAFpchU78K7/Ug01sZni9PgA= -@@ -379,6 +380,7 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +@@ -387,6 +388,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= @@ -36,7 +36,7 @@ index 8294cd4914..30ac51b2d6 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= -@@ -398,6 +400,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +@@ -406,6 +408,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.21.0 h1:IUypt/TbXiJBkBbE3926CgnjD8IltAitdn7Yive61DY= github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.21.0/go.mod h1:cdTE6F2pCKQobug+RqRaQp7Kz9hIEqiSvpPmb6E5G1w= @@ -45,7 +45,7 @@ index 8294cd4914..30ac51b2d6 100644 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.50 h1:67mPiI02iDvz2dK77S04PV1Kt2XeBUlCEqhrJrpRAHM= github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.50/go.mod h1:zEem8agp+ZViSr0jeSQTutVpkTl0CTZoO9DpJFPpUo0= github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2 v2.0.0-beta.51 h1:o7czFuxYgfxKNdBXlOcIY+tmNJsy3xob/3aAeSdU9Wo= -@@ -473,6 +477,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i +@@ -481,6 +485,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= @@ -53,7 +53,7 @@ index 8294cd4914..30ac51b2d6 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= -@@ -585,6 +590,7 @@ golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +@@ -593,6 +598,7 @@ golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= golang.org/x/mod v0.15.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= diff --git a/patches/0040-Patch-osis_pipeline-tags-flags.patch b/patches/0040-Patch-osis_pipeline-tags-flags.patch index 3590c51ce23..12b04ffb312 100644 --- a/patches/0040-Patch-osis_pipeline-tags-flags.patch +++ b/patches/0040-Patch-osis_pipeline-tags-flags.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Fri, 9 Feb 2024 14:39:32 -0500 -Subject: [PATCH 40/47] Patch osis_pipeline tags flags +Subject: [PATCH 40/48] Patch osis_pipeline tags flags diff --git a/internal/service/osis/pipeline.go b/internal/service/osis/pipeline.go diff --git a/patches/0041-Revert-Merge-pull-request-35678-from-hashicorp-b-elb.patch b/patches/0041-Revert-Merge-pull-request-35678-from-hashicorp-b-elb.patch index 64b533b1db7..f7fdb744669 100644 --- a/patches/0041-Revert-Merge-pull-request-35678-from-hashicorp-b-elb.patch +++ b/patches/0041-Revert-Merge-pull-request-35678-from-hashicorp-b-elb.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin Date: Wed, 14 Feb 2024 14:49:33 +0000 -Subject: [PATCH 41/47] Revert "Merge pull request #35678 from +Subject: [PATCH 41/48] Revert "Merge pull request #35678 from hashicorp/b-elbv2-unexpected-diff" This reverts commit bfcae6ad3e8a226083f803b40e772e045ec78baa, reversing diff --git a/patches/0042-Revert-Merge-pull-request-35671-from-hashicorp-b-lb-.patch b/patches/0042-Revert-Merge-pull-request-35671-from-hashicorp-b-lb-.patch index 91802c53a86..1e19b7b4bd1 100644 --- a/patches/0042-Revert-Merge-pull-request-35671-from-hashicorp-b-lb-.patch +++ b/patches/0042-Revert-Merge-pull-request-35671-from-hashicorp-b-lb-.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin Date: Wed, 14 Feb 2024 14:49:38 +0000 -Subject: [PATCH 42/47] Revert "Merge pull request #35671 from +Subject: [PATCH 42/48] Revert "Merge pull request #35671 from hashicorp/b-lb-listener-stickiness-3" This reverts commit 32a681fcfcd8d78c5ac9e199384a980bb71c82ed, reversing diff --git a/patches/0043-Allow-creating-lambdas-without-code-related-properti.patch b/patches/0043-Allow-creating-lambdas-without-code-related-properti.patch index 998f9eb488b..65b1043424c 100644 --- a/patches/0043-Allow-creating-lambdas-without-code-related-properti.patch +++ b/patches/0043-Allow-creating-lambdas-without-code-related-properti.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin Date: Tue, 13 Feb 2024 11:36:02 +0000 -Subject: [PATCH 43/47] Allow creating lambdas without code related properties +Subject: [PATCH 43/48] Allow creating lambdas without code related properties diff --git a/internal/service/lambda/function.go b/internal/service/lambda/function.go diff --git a/patches/0044-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch b/patches/0044-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch index f3af25ad4df..eab9216f775 100644 --- a/patches/0044-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch +++ b/patches/0044-Do-not-Compute-tags_all-of-aws_bedrock_provisioned_m.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: guineveresaenger Date: Wed, 21 Feb 2024 14:46:27 -0800 -Subject: [PATCH 44/47] Do not Compute tags_all of +Subject: [PATCH 44/48] Do not Compute tags_all of aws_bedrock_provisioned_model_throughput diff --git a/patches/0045-fix-legacy-bucket-context.patch b/patches/0045-fix-legacy-bucket-context.patch index 63df3f2f715..7283f4084ef 100644 --- a/patches/0045-fix-legacy-bucket-context.patch +++ b/patches/0045-fix-legacy-bucket-context.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin Date: Wed, 28 Feb 2024 16:06:02 +0000 -Subject: [PATCH 45/47] fix legacy bucket context +Subject: [PATCH 45/48] fix legacy bucket context diff --git a/internal/service/s3legacy/bucket_legacy.go b/internal/service/s3legacy/bucket_legacy.go diff --git a/patches/0046-securitylake_subscriber-tags_all-patch.patch b/patches/0046-securitylake_subscriber-tags_all-patch.patch index 873e4e4b913..03c2ba338be 100644 --- a/patches/0046-securitylake_subscriber-tags_all-patch.patch +++ b/patches/0046-securitylake_subscriber-tags_all-patch.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Anton Tayanovskyy Date: Tue, 12 Mar 2024 18:05:28 -0400 -Subject: [PATCH 46/47] securitylake_subscriber tags_all patch +Subject: [PATCH 46/48] securitylake_subscriber tags_all patch diff --git a/internal/service/securitylake/subscriber.go b/internal/service/securitylake/subscriber.go diff --git a/patches/0047-Revert-rds-engine_version-Fix-bugs-with-default-only.patch b/patches/0047-Revert-rds-engine_version-Fix-bugs-with-default-only.patch index 6e890c7c029..bcec23d03da 100644 --- a/patches/0047-Revert-rds-engine_version-Fix-bugs-with-default-only.patch +++ b/patches/0047-Revert-rds-engine_version-Fix-bugs-with-default-only.patch @@ -1,7 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: corymhall <43035978+corymhall@users.noreply.github.com> Date: Fri, 29 Mar 2024 10:29:15 -0400 -Subject: [PATCH 47/47] Revert "rds/engine_version: Fix bugs with default only +Subject: [PATCH 47/48] Revert "rds/engine_version: Fix bugs with default only flag" diff --git a/patches/0048-Patch-tags-ComputedOnly-for-m2-resources.patch b/patches/0048-Patch-tags-ComputedOnly-for-m2-resources.patch new file mode 100644 index 00000000000..df610fa772b --- /dev/null +++ b/patches/0048-Patch-tags-ComputedOnly-for-m2-resources.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Anton Tayanovskyy +Date: Mon, 1 Apr 2024 17:25:06 -0400 +Subject: [PATCH 48/48] Patch tags ComputedOnly for m2 resources + + +diff --git a/internal/service/m2/application.go b/internal/service/m2/application.go +index f6998fab42..5db8ceb815 100644 +--- a/internal/service/m2/application.go ++++ b/internal/service/m2/application.go +@@ -103,7 +103,7 @@ func (r *applicationResource) Schema(ctx context.Context, request resource.Schem + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "definition": schema.ListNestedBlock{ +diff --git a/internal/service/m2/environment.go b/internal/service/m2/environment.go +index ea74ae2cd4..e96fe875c1 100644 +--- a/internal/service/m2/environment.go ++++ b/internal/service/m2/environment.go +@@ -173,7 +173,7 @@ func (r *environmentResource) Schema(ctx context.Context, request resource.Schem + }, + }, + names.AttrTags: tftags.TagsAttribute(), +- names.AttrTagsAll: tftags.TagsAttributeComputedOnly(), ++ names.AttrTagsAll: tftags.TagsAttribute(), + }, + Blocks: map[string]schema.Block{ + "high_availability_config": schema.ListNestedBlock{ diff --git a/provider/cmd/pulumi-resource-aws/bridge-metadata.json b/provider/cmd/pulumi-resource-aws/bridge-metadata.json index 4c9cc9b0aaa..98c722cdc7f 100644 --- a/provider/cmd/pulumi-resource-aws/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-aws/bridge-metadata.json @@ -5063,7 +5063,12 @@ }, "aws_cloudfront_function": { "current": "aws:cloudfront/function:Function", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "key_value_store_associations": { + "maxItemsOne": false + } + } }, "aws_cloudfront_key_group": { "current": "aws:cloudfront/keyGroup:KeyGroup", @@ -5283,6 +5288,10 @@ } } }, + "aws_cloudfrontkeyvaluestore_key": { + "current": "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", + "majorVersion": 6 + }, "aws_cloudhsm_v2_cluster": { "current": "aws:cloudhsmv2/cluster:Cluster", "majorVersion": 6, @@ -8002,6 +8011,28 @@ } } }, + "aws_devopsguru_notification_channel": { + "current": "aws:devopsguru/notificationChannel:NotificationChannel", + "majorVersion": 6, + "fields": { + "filters": { + "maxItemsOne": true, + "elem": { + "fields": { + "message_types": { + "maxItemsOne": false + }, + "severities": { + "maxItemsOne": false + } + } + } + }, + "sns": { + "maxItemsOne": true + } + } + }, "aws_devopsguru_resource_collection": { "current": "aws:devopsguru/resourceCollection:ResourceCollection", "majorVersion": 6, @@ -8533,6 +8564,10 @@ "current": "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination", "majorVersion": 6 }, + "aws_dynamodb_resource_policy": { + "current": "aws:dynamodb/resourcePolicy:ResourcePolicy", + "majorVersion": 6 + }, "aws_dynamodb_table": { "current": "aws:dynamodb/table:Table", "majorVersion": 6, @@ -8842,6 +8877,10 @@ } } }, + "aws_ec2_instance_metadata_defaults": { + "current": "aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", + "majorVersion": 6 + }, "aws_ec2_instance_state": { "current": "aws:ec2transitgateway/instanceState:InstanceState", "majorVersion": 6 @@ -14716,6 +14755,41 @@ "current": "aws:lakeformation/resource:Resource", "majorVersion": 6 }, + "aws_lakeformation_resource_lf_tag": { + "current": "aws:lakeformation/resourceLfTag:ResourceLfTag", + "majorVersion": 6, + "fields": { + "database": { + "maxItemsOne": true + }, + "lf_tag": { + "maxItemsOne": true + }, + "table": { + "maxItemsOne": true + }, + "table_with_columns": { + "maxItemsOne": true, + "elem": { + "fields": { + "column_names": { + "maxItemsOne": false + }, + "column_wildcard": { + "maxItemsOne": true, + "elem": { + "fields": { + "excluded_column_names": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + }, "aws_lakeformation_resource_lf_tags": { "current": "aws:lakeformation/resourceLfTags:ResourceLfTags", "majorVersion": 6, @@ -20829,6 +20903,47 @@ "current": "aws:location/trackerAssociation:TrackerAssociation", "majorVersion": 6 }, + "aws_m2_application": { + "current": "aws:m2/application:Application", + "majorVersion": 6, + "fields": { + "definition": { + "maxItemsOne": true + } + } + }, + "aws_m2_deployment": { + "current": "aws:m2/deployment:Deployment", + "majorVersion": 6 + }, + "aws_m2_environment": { + "current": "aws:m2/environment:Environment", + "majorVersion": 6, + "fields": { + "high_availability_config": { + "maxItemsOne": true + }, + "security_group_ids": { + "maxItemsOne": false + }, + "storage_configuration": { + "maxItemsOne": true, + "elem": { + "fields": { + "efs": { + "maxItemsOne": true + }, + "fsx": { + "maxItemsOne": true + } + } + } + }, + "subnet_ids": { + "maxItemsOne": false + } + } + }, "aws_macie2_account": { "current": "aws:macie2/account:Account", "majorVersion": 6 @@ -152797,6 +152912,10 @@ } } }, + "aws_redshiftserverless_custom_domain_association": { + "current": "aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", + "majorVersion": 6 + }, "aws_redshiftserverless_endpoint_access": { "current": "aws:redshiftserverless/endpointAccess:EndpointAccess", "majorVersion": 6, @@ -156619,6 +156738,10 @@ "current": "aws:servicecatalog/tagOptionResourceAssociation:TagOptionResourceAssociation", "majorVersion": 6 }, + "aws_servicecatalogappregistry_application": { + "current": "aws:servicecatalog/appregistryApplication:AppregistryApplication", + "majorVersion": 6 + }, "aws_servicequotas_service_quota": { "current": "aws:servicequotas/serviceQuota:ServiceQuota", "majorVersion": 6, @@ -220856,7 +220979,12 @@ }, "aws_cloudfront_function": { "current": "aws:cloudfront/getFunction:getFunction", - "majorVersion": 6 + "majorVersion": 6, + "fields": { + "key_value_store_associations": { + "maxItemsOne": false + } + } }, "aws_cloudfront_log_delivery_canonical_user_id": { "current": "aws:cloudfront/getLogDeliveryCanonicalUserId:getLogDeliveryCanonicalUserId", @@ -227410,6 +227538,25 @@ } } }, + "aws_resourceexplorer2_search": { + "current": "aws:resourceexplorer/search:Search", + "majorVersion": 6, + "fields": { + "resource_count": { + "maxItemsOne": false + }, + "resources": { + "maxItemsOne": false, + "elem": { + "fields": { + "resource_property": { + "maxItemsOne": false + } + } + } + } + } + }, "aws_resourcegroupstaggingapi_resources": { "current": "aws:resourcegroupstaggingapi/getResources:getResources", "majorVersion": 6, @@ -227881,6 +228028,10 @@ } } }, + "aws_servicecatalogappregistry_application": { + "current": "aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", + "majorVersion": 6 + }, "aws_servicequotas_service": { "current": "aws:servicequotas/getService:getService", "majorVersion": 6 @@ -229160,6 +229311,7 @@ "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, @@ -229296,6 +229448,7 @@ "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:directconnect/bgpPeer:BgpPeer": 0, "aws:directconnect/connection:Connection": 0, @@ -229344,6 +229497,7 @@ "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, @@ -229378,6 +229532,7 @@ "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, @@ -229717,6 +229872,7 @@ "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, @@ -229780,6 +229936,9 @@ "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, @@ -229973,6 +230132,7 @@ "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, @@ -230123,6 +230283,7 @@ "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, @@ -230767,6 +230928,7 @@ "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, @@ -230797,6 +230959,7 @@ "aws:secretsmanager/getSecretVersion:getSecretVersion": 0, "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, diff --git a/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json b/provider/cmd/pulumi-resource-aws/runtime-bridge-metadata.json index 79747c480be..5d97e6253b1 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_fsx_openzfs_file_system":{"maxItemsOneOverrides":{"subnet_ids":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}}},"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: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: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: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/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/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: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/resourceCollection:ResourceCollection":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:dynamodb/contributorInsights:ContributorInsights":0,"aws:dynamodb/globalTable:GlobalTable":0,"aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination":0,"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/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/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/fleet:Fleet":0,"aws:ec2/flowLog:FlowLog":0,"aws:ec2/imageBlockPublicAccess:ImageBlockPublicAccess":0,"aws:ec2/instance:Instance":0,"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/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: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/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: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/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/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: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: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: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: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: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/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/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/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"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/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: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/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: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: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/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":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: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: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/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/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: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/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/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/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":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/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: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/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: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/getSecrets:getSecrets":0,"aws:serverlessrepository/getApplication:getApplication":0,"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: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_fsx_openzfs_file_system":{"maxItemsOneOverrides":{"subnet_ids":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}}},"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: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: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: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/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: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: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: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/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/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/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/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: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/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: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/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: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: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: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: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/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/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/parameterGroup:ParameterGroup":0,"aws:redshift/partner:Partner":0,"aws:redshift/resourcePolicy:ResourcePolicy":0,"aws:redshift/scheduledAction:ScheduledAction":0,"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: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: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: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/policyStore:PolicyStore":1,"aws:verifiedpermissions/policyTemplate:PolicyTemplate":1,"aws:verifiedpermissions/schema:Schema":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: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: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/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/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: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/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/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/getPullThroughCacheRule:getPullThroughCacheRule":0,"aws:ecr/getRepositories:getRepositories":1,"aws:ecr/getRepository:getRepository":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/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: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/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/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: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 85ed2422ed6..bccadd38989 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -141,6 +141,7 @@ "licensemanager": "LicenseManager", "lightsail": "LightSail", "location": "Location", + "m2": "M2", "macie": "Macie", "macie2": "Macie2", "mediaconvert": "MediaConvert", @@ -28927,6 +28928,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "datazone": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "dax": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -29367,6 +29372,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "paymentcryptography": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "pcaconnectorad": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -34544,6 +34553,36 @@ "status" ] }, + "aws:devopsguru/NotificationChannelFilters:NotificationChannelFilters": { + "properties": { + "messageTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`.\n" + }, + "severities": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`.\n" + } + }, + "type": "object" + }, + "aws:devopsguru/NotificationChannelSns:NotificationChannelSns": { + "properties": { + "topicArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "topicArn" + ] + }, "aws:devopsguru/ResourceCollectionCloudformation:ResourceCollectionCloudformation": { "properties": { "stackNames": { @@ -71489,6 +71528,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "datazone": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "dax": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -71929,6 +71972,10 @@ "type": "string", "description": "Use this to override the default service endpoint URL\n" }, + "paymentcryptography": { + "type": "string", + "description": "Use this to override the default service endpoint URL\n" + }, "pcaconnectorad": { "type": "string", "description": "Use this to override the default service endpoint URL\n" @@ -76831,7 +76878,7 @@ }, "parquetSerDe": { "$ref": "#/types/aws:kinesis/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe:FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe", - "description": "Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below.\n" + "description": "Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below.\n" } }, "type": "object" @@ -79949,6 +79996,132 @@ } } }, + "aws:lakeformation/ResourceLfTagDatabase:ResourceLfTagDatabase": { + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, it is the account ID of the caller.\n" + }, + "name": { + "type": "string", + "description": "Name of the database resource. Unique to the Data Catalog.\n\nThe following argument is optional:\n" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "aws:lakeformation/ResourceLfTagLfTag:ResourceLfTagLfTag": { + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, it is the account ID of the caller.\n" + }, + "key": { + "type": "string", + "description": "Key name for an existing LF-tag.\n" + }, + "value": { + "type": "string", + "description": "Value from the possible values for the LF-tag.\n\nThe following argument is optional:\n" + } + }, + "type": "object", + "required": [ + "key", + "value" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "catalogId", + "key", + "value" + ] + } + } + }, + "aws:lakeformation/ResourceLfTagTable:ResourceLfTagTable": { + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, it is the account ID of the caller.\n" + }, + "databaseName": { + "type": "string", + "description": "Name of the database for the table. Unique to a Data Catalog.\n" + }, + "name": { + "type": "string", + "description": "Name of the table.\n" + }, + "wildcard": { + "type": "boolean", + "description": "Whether to use a wildcard representing every table under a database. Defaults to `false`.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "databaseName" + ] + }, + "aws:lakeformation/ResourceLfTagTableWithColumns:ResourceLfTagTableWithColumns": { + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, it is the account ID of the caller.\n" + }, + "columnNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Set of column names for the table.\n" + }, + "columnWildcard": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTableWithColumnsColumnWildcard:ResourceLfTagTableWithColumnsColumnWildcard", + "description": "Option to add column wildcard. See Column Wildcard for more details.\n" + }, + "databaseName": { + "type": "string", + "description": "Name of the database for the table with columns resource. Unique to the Data Catalog.\n" + }, + "name": { + "type": "string", + "description": "Name of the table resource.\n\nThe following arguments are optional:\n" + } + }, + "type": "object", + "required": [ + "databaseName", + "name" + ] + }, + "aws:lakeformation/ResourceLfTagTableWithColumnsColumnWildcard:ResourceLfTagTableWithColumnsColumnWildcard": { + "properties": { + "excludedColumnNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, + "aws:lakeformation/ResourceLfTagTimeouts:ResourceLfTagTimeouts": { + "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" + } + }, + "type": "object" + }, "aws:lakeformation/ResourceLfTagsDatabase:ResourceLfTagsDatabase": { "properties": { "catalogId": { @@ -101238,6 +101411,127 @@ } } }, + "aws:m2/ApplicationDefinition:ApplicationDefinition": { + "properties": { + "content": { + "type": "string", + "description": "JSON application definition. Either this or `s3_location` must be specified.\n" + }, + "s3Location": { + "type": "string", + "description": "Location of the application definition in S3. Either this or `content` must be specified.\n" + } + }, + "type": "object" + }, + "aws:m2/ApplicationTimeouts:ApplicationTimeouts": { + "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:m2/DeploymentTimeouts:DeploymentTimeouts": { + "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:m2/EnvironmentHighAvailabilityConfig:EnvironmentHighAvailabilityConfig": { + "properties": { + "desiredCapacity": { + "type": "integer", + "description": "Desired number of instances for the Environment.\n" + } + }, + "type": "object", + "required": [ + "desiredCapacity" + ] + }, + "aws:m2/EnvironmentStorageConfiguration:EnvironmentStorageConfiguration": { + "properties": { + "efs": { + "$ref": "#/types/aws:m2/EnvironmentStorageConfigurationEfs:EnvironmentStorageConfigurationEfs" + }, + "fsx": { + "$ref": "#/types/aws:m2/EnvironmentStorageConfigurationFsx:EnvironmentStorageConfigurationFsx" + } + }, + "type": "object" + }, + "aws:m2/EnvironmentStorageConfigurationEfs:EnvironmentStorageConfigurationEfs": { + "properties": { + "fileSystemId": { + "type": "string", + "description": "Id of the EFS filesystem to mount.\n" + }, + "mountPoint": { + "type": "string", + "description": "Path to mount the filesystem on, must start with `/m2/mount/`.\n" + } + }, + "type": "object", + "required": [ + "fileSystemId", + "mountPoint" + ] + }, + "aws:m2/EnvironmentStorageConfigurationFsx:EnvironmentStorageConfigurationFsx": { + "properties": { + "fileSystemId": { + "type": "string", + "description": "Id of the FSX filesystem to mount.\n" + }, + "mountPoint": { + "type": "string", + "description": "Path to mount the filesystem on, must start with `/m2/mount/`.\n" + } + }, + "type": "object", + "required": [ + "fileSystemId", + "mountPoint" + ] + }, + "aws:m2/EnvironmentTimeouts:EnvironmentTimeouts": { + "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:macie/FindingsFilterFindingCriteria:FindingsFilterFindingCriteria": { "properties": { "criterions": { @@ -121309,6 +121603,105 @@ }, "type": "object" }, + "aws:resourceexplorer/SearchResource:SearchResource": { + "properties": { + "arn": { + "type": "string", + "description": "Amazon resource name of resource.\n" + }, + "lastReportedAt": { + "type": "string", + "description": "The date and time that the information about this resource property was last updated.\n" + }, + "owningAccountId": { + "type": "string", + "description": "Amazon Web Services account that owns the resource.\n" + }, + "region": { + "type": "string", + "description": "Amazon Web Services Region in which the resource was created and exists.\n" + }, + "resourceProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws:resourceexplorer/SearchResourceResourceProperty:SearchResourceResourceProperty" + }, + "description": "Structure with additional type-specific details about the resource. See `resource_property` below.\n" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource.\n" + }, + "service": { + "type": "string", + "description": "Amazon Web Service that owns the resource and is responsible for creating and updating it.\n" + } + }, + "type": "object", + "required": [ + "arn", + "lastReportedAt", + "owningAccountId", + "region", + "resourceType", + "service" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:resourceexplorer/SearchResourceCount:SearchResourceCount": { + "properties": { + "completed": { + "type": "boolean" + }, + "totalResources": { + "type": "integer", + "description": "Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results.\n" + } + }, + "type": "object", + "required": [ + "completed", + "totalResources" + ], + "language": { + "nodejs": { + "requiredInputs": [ + "completed" + ] + } + } + }, + "aws:resourceexplorer/SearchResourceResourceProperty:SearchResourceResourceProperty": { + "properties": { + "data": { + "type": "string", + "description": "Details about this property. The content of this field is a JSON object that varies based on the resource type.\n" + }, + "lastReportedAt": { + "type": "string", + "description": "The date and time that the information about this resource property was last updated.\n" + }, + "name": { + "type": "string", + "description": "Name of this property of the resource.\n" + } + }, + "type": "object", + "required": [ + "data", + "lastReportedAt", + "name" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:resourceexplorer/ViewFilters:ViewFilters": { "properties": { "filterString": { @@ -155388,7 +155781,7 @@ } }, "aws:acmpca/certificate:Certificate": { - "description": "Provides a resource to issue a certificate using AWS Certificate Manager Private Certificate Authority (ACM PCA).\n\nCertificates created using `aws.acmpca.Certificate` are not eligible for automatic renewal,\nand must be replaced instead.\nTo issue a renewable certificate using an ACM PCA, create a `aws.acm.Certificate`\nwith the parameter `certificate_authority_arn`.\n\n## Example Usage\n\n### Basic\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.acmpca.CertificateAuthority;\nimport com.pulumi.aws.acmpca.CertificateAuthorityArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.CertRequest;\nimport com.pulumi.tls.CertRequestArgs;\nimport com.pulumi.tls.inputs.CertRequestSubjectArgs;\nimport com.pulumi.aws.acmpca.Certificate;\nimport com.pulumi.aws.acmpca.CertificateArgs;\nimport com.pulumi.aws.acmpca.inputs.CertificateValidityArgs;\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 exampleCertificateAuthority = new CertificateAuthority(\"exampleCertificateAuthority\", CertificateAuthorityArgs.builder() \n .privateCertificateConfiguration(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .permanentDeletionTimeInDays(7)\n .build());\n\n var key = new PrivateKey(\"key\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .build());\n\n var csr = new CertRequest(\"csr\", CertRequestArgs.builder() \n .keyAlgorithm(\"RSA\")\n .privateKeyPem(key.privateKeyPem())\n .subject(CertRequestSubjectArgs.builder()\n .commonName(\"example\")\n .build())\n .build());\n\n var example = new Certificate(\"example\", CertificateArgs.builder() \n .certificateAuthorityArn(exampleCertificateAuthority.arn())\n .certificateSigningRequest(csr.certRequestPem())\n .signingAlgorithm(\"SHA256WITHRSA\")\n .validity(CertificateValidityArgs.builder()\n .type(\"YEARS\")\n .value(1)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:acmpca:Certificate\n properties:\n certificateAuthorityArn: ${exampleCertificateAuthority.arn}\n certificateSigningRequest: ${csr.certRequestPem}\n signingAlgorithm: SHA256WITHRSA\n validity:\n type: YEARS\n value: 1\n exampleCertificateAuthority:\n type: aws:acmpca:CertificateAuthority\n name: example\n properties:\n privateCertificateConfiguration:\n - keyAlgorithm: RSA_4096\n signingAlgorithm: SHA512WITHRSA\n subject:\n - commonName: example.com\n permanentDeletionTimeInDays: 7\n key:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n csr:\n type: tls:CertRequest\n properties:\n keyAlgorithm: RSA\n privateKeyPem: ${key.privateKeyPem}\n subject:\n commonName: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ACM PCA Certificates using their ARN. For example:\n\n```sh\n$ pulumi import aws:acmpca/certificate:Certificate cert arn:aws:acm-pca:eu-west-1:675225743824:certificate-authority/08319ede-83g9-1400-8f21-c7d12b2b6edb/certificate/a4e9c2aa4bcfab625g1b9136464cd3a\n```\n", + "description": "Provides a resource to issue a certificate using AWS Certificate Manager Private Certificate Authority (ACM PCA).\n\nCertificates created using `aws.acmpca.Certificate` are not eligible for automatic renewal,\nand must be replaced instead.\nTo issue a renewable certificate using an ACM PCA, create a `aws.acm.Certificate`\nwith the parameter `certificate_authority_arn`.\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as tls from \"@pulumi/tls\";\n\nconst exampleCertificateAuthority = new aws.acmpca.CertificateAuthority(\"example\", {\n certificateAuthorityConfiguration: {\n keyAlgorithm: \"RSA_4096\",\n signingAlgorithm: \"SHA512WITHRSA\",\n subject: {\n commonName: \"example.com\",\n },\n },\n permanentDeletionTimeInDays: 7,\n});\nconst key = new tls.PrivateKey(\"key\", {algorithm: \"RSA\"});\nconst csr = new tls.CertRequest(\"csr\", {\n privateKeyPem: key.privateKeyPem,\n subject: {\n commonName: \"example\",\n },\n});\nconst example = new aws.acmpca.Certificate(\"example\", {\n certificateAuthorityArn: exampleCertificateAuthority.arn,\n certificateSigningRequest: csr.certRequestPem,\n signingAlgorithm: \"SHA256WITHRSA\",\n validity: {\n type: \"YEARS\",\n value: \"1\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_tls as tls\n\nexample_certificate_authority = aws.acmpca.CertificateAuthority(\"example\",\n certificate_authority_configuration=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationArgs(\n key_algorithm=\"RSA_4096\",\n signing_algorithm=\"SHA512WITHRSA\",\n subject=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs(\n common_name=\"example.com\",\n ),\n ),\n permanent_deletion_time_in_days=7)\nkey = tls.PrivateKey(\"key\", algorithm=\"RSA\")\ncsr = tls.CertRequest(\"csr\",\n private_key_pem=key.private_key_pem,\n subject=tls.CertRequestSubjectArgs(\n common_name=\"example\",\n ))\nexample = aws.acmpca.Certificate(\"example\",\n certificate_authority_arn=example_certificate_authority.arn,\n certificate_signing_request=csr.cert_request_pem,\n signing_algorithm=\"SHA256WITHRSA\",\n validity=aws.acmpca.CertificateValidityArgs(\n type=\"YEARS\",\n value=\"1\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Tls = Pulumi.Tls;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleCertificateAuthority = new Aws.Acmpca.CertificateAuthority(\"example\", new()\n {\n CertificateAuthorityConfiguration = new Aws.Acmpca.Inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs\n {\n KeyAlgorithm = \"RSA_4096\",\n SigningAlgorithm = \"SHA512WITHRSA\",\n Subject = new Aws.Acmpca.Inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs\n {\n CommonName = \"example.com\",\n },\n },\n PermanentDeletionTimeInDays = 7,\n });\n\n var key = new Tls.PrivateKey(\"key\", new()\n {\n Algorithm = \"RSA\",\n });\n\n var csr = new Tls.CertRequest(\"csr\", new()\n {\n PrivateKeyPem = key.PrivateKeyPem,\n Subject = new Tls.Inputs.CertRequestSubjectArgs\n {\n CommonName = \"example\",\n },\n });\n\n var example = new Aws.Acmpca.Certificate(\"example\", new()\n {\n CertificateAuthorityArn = exampleCertificateAuthority.Arn,\n CertificateSigningRequest = csr.CertRequestPem,\n SigningAlgorithm = \"SHA256WITHRSA\",\n Validity = new Aws.Acmpca.Inputs.CertificateValidityArgs\n {\n Type = \"YEARS\",\n Value = \"1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acmpca\"\n\t\"github.com/pulumi/pulumi-tls/sdk/v4/go/tls\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleCertificateAuthority, err := acmpca.NewCertificateAuthority(ctx, \"example\", \u0026acmpca.CertificateAuthorityArgs{\n\t\t\tCertificateAuthorityConfiguration: \u0026acmpca.CertificateAuthorityCertificateAuthorityConfigurationArgs{\n\t\t\t\tKeyAlgorithm: pulumi.String(\"RSA_4096\"),\n\t\t\t\tSigningAlgorithm: pulumi.String(\"SHA512WITHRSA\"),\n\t\t\t\tSubject: \u0026acmpca.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs{\n\t\t\t\t\tCommonName: pulumi.String(\"example.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPermanentDeletionTimeInDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkey, err := tls.NewPrivateKey(ctx, \"key\", \u0026tls.PrivateKeyArgs{\n\t\t\tAlgorithm: pulumi.String(\"RSA\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcsr, err := tls.NewCertRequest(ctx, \"csr\", \u0026tls.CertRequestArgs{\n\t\t\tPrivateKeyPem: key.PrivateKeyPem,\n\t\t\tSubject: \u0026tls.CertRequestSubjectArgs{\n\t\t\t\tCommonName: pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = acmpca.NewCertificate(ctx, \"example\", \u0026acmpca.CertificateArgs{\n\t\t\tCertificateAuthorityArn: exampleCertificateAuthority.Arn,\n\t\t\tCertificateSigningRequest: csr.CertRequestPem,\n\t\t\tSigningAlgorithm: pulumi.String(\"SHA256WITHRSA\"),\n\t\t\tValidity: \u0026acmpca.CertificateValidityArgs{\n\t\t\t\tType: pulumi.String(\"YEARS\"),\n\t\t\t\tValue: pulumi.String(\"1\"),\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.acmpca.CertificateAuthority;\nimport com.pulumi.aws.acmpca.CertificateAuthorityArgs;\nimport com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs;\nimport com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs;\nimport com.pulumi.tls.PrivateKey;\nimport com.pulumi.tls.PrivateKeyArgs;\nimport com.pulumi.tls.CertRequest;\nimport com.pulumi.tls.CertRequestArgs;\nimport com.pulumi.tls.inputs.CertRequestSubjectArgs;\nimport com.pulumi.aws.acmpca.Certificate;\nimport com.pulumi.aws.acmpca.CertificateArgs;\nimport com.pulumi.aws.acmpca.inputs.CertificateValidityArgs;\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 exampleCertificateAuthority = new CertificateAuthority(\"exampleCertificateAuthority\", CertificateAuthorityArgs.builder() \n .certificateAuthorityConfiguration(CertificateAuthorityCertificateAuthorityConfigurationArgs.builder()\n .keyAlgorithm(\"RSA_4096\")\n .signingAlgorithm(\"SHA512WITHRSA\")\n .subject(CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs.builder()\n .commonName(\"example.com\")\n .build())\n .build())\n .permanentDeletionTimeInDays(7)\n .build());\n\n var key = new PrivateKey(\"key\", PrivateKeyArgs.builder() \n .algorithm(\"RSA\")\n .build());\n\n var csr = new CertRequest(\"csr\", CertRequestArgs.builder() \n .privateKeyPem(key.privateKeyPem())\n .subject(CertRequestSubjectArgs.builder()\n .commonName(\"example\")\n .build())\n .build());\n\n var example = new Certificate(\"example\", CertificateArgs.builder() \n .certificateAuthorityArn(exampleCertificateAuthority.arn())\n .certificateSigningRequest(csr.certRequestPem())\n .signingAlgorithm(\"SHA256WITHRSA\")\n .validity(CertificateValidityArgs.builder()\n .type(\"YEARS\")\n .value(1)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:acmpca:Certificate\n properties:\n certificateAuthorityArn: ${exampleCertificateAuthority.arn}\n certificateSigningRequest: ${csr.certRequestPem}\n signingAlgorithm: SHA256WITHRSA\n validity:\n type: YEARS\n value: 1\n exampleCertificateAuthority:\n type: aws:acmpca:CertificateAuthority\n name: example\n properties:\n certificateAuthorityConfiguration:\n keyAlgorithm: RSA_4096\n signingAlgorithm: SHA512WITHRSA\n subject:\n commonName: example.com\n permanentDeletionTimeInDays: 7\n key:\n type: tls:PrivateKey\n properties:\n algorithm: RSA\n csr:\n type: tls:CertRequest\n properties:\n privateKeyPem: ${key.privateKeyPem}\n subject:\n commonName: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import ACM PCA Certificates using their ARN. For example:\n\n```sh\n$ pulumi import aws:acmpca/certificate:Certificate cert arn:aws:acm-pca:eu-west-1:675225743824:certificate-authority/08319ede-83g9-1400-8f21-c7d12b2b6edb/certificate/a4e9c2aa4bcfab625g1b9136464cd3a\n```\n", "properties": { "apiPassthrough": { "type": "string", @@ -157178,7 +157571,7 @@ ] }, "aws:alb/targetGroupAttachment:TargetGroupAttachment": { - "description": "Provides the ability to register instances and containers with an Application Load Balancer (ALB) or Network Load Balancer (NLB) target group. For attaching resources with Elastic Load Balancer (ELB), see the `aws.elb.Attachment` resource.\n\n\u003e **Note:** `aws.alb.TargetGroupAttachment` is known as `aws.lb.TargetGroupAttachment`. 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 testTargetGroup = new aws.lb.TargetGroup(\"test\", {});\nconst testInstance = new aws.ec2.Instance(\"test\", {});\nconst test = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: testTargetGroup.arn,\n targetId: testInstance.id,\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_target_group = aws.lb.TargetGroup(\"test\")\ntest_instance = aws.ec2.Instance(\"test\")\ntest = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test_target_group.arn,\n target_id=test_instance.id,\n port=80)\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 testTargetGroup = new Aws.LB.TargetGroup(\"test\");\n\n var testInstance = new Aws.Ec2.Instance(\"test\");\n\n var test = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = testTargetGroup.Arn,\n TargetId = testInstance.Id,\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\ttestTargetGroup, err := lb.NewTargetGroup(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: testTargetGroup.Arn,\n\t\t\tTargetId: testInstance.ID(),\n\t\t\tPort: pulumi.Int(80),\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.TargetGroup;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 testTargetGroup = new TargetGroup(\"testTargetGroup\");\n\n var testInstance = new Instance(\"testInstance\");\n\n var test = new TargetGroupAttachment(\"test\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(testTargetGroup.arn())\n .targetId(testInstance.id())\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroupAttachment\n properties:\n targetGroupArn: ${testTargetGroup.arn}\n targetId: ${testInstance.id}\n port: 80\n testTargetGroup:\n type: aws:lb:TargetGroup\n name: test\n testInstance:\n type: aws:ec2:Instance\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target\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.lb.TargetGroup(\"test\", {\n name: \"test\",\n targetType: \"lambda\",\n});\nconst testFunction = new aws.lambda.Function(\"test\", {});\nconst withLb = new aws.lambda.Permission(\"with_lb\", {\n statementId: \"AllowExecutionFromlb\",\n action: \"lambda:InvokeFunction\",\n \"function\": testFunction.name,\n principal: \"elasticloadbalancing.amazonaws.com\",\n sourceArn: test.arn,\n});\nconst testTargetGroupAttachment = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: test.arn,\n targetId: testFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lb.TargetGroup(\"test\",\n name=\"test\",\n target_type=\"lambda\")\ntest_function = aws.lambda_.Function(\"test\")\nwith_lb = aws.lambda_.Permission(\"with_lb\",\n statement_id=\"AllowExecutionFromlb\",\n action=\"lambda:InvokeFunction\",\n function=test_function.name,\n principal=\"elasticloadbalancing.amazonaws.com\",\n source_arn=test.arn)\ntest_target_group_attachment = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test.arn,\n target_id=test_function.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 test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"test\",\n TargetType = \"lambda\",\n });\n\n var testFunction = new Aws.Lambda.Function(\"test\");\n\n var withLb = new Aws.Lambda.Permission(\"with_lb\", new()\n {\n StatementId = \"AllowExecutionFromlb\",\n Action = \"lambda:InvokeFunction\",\n Function = testFunction.Name,\n Principal = \"elasticloadbalancing.amazonaws.com\",\n SourceArn = test.Arn,\n });\n\n var testTargetGroupAttachment = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = test.Arn,\n TargetId = testFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\ttest, err := lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestFunction, err := lambda.NewFunction(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_lb\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromlb\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"elasticloadbalancing.amazonaws.com\"),\n\t\t\tSourceArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: test.Arn,\n\t\t\tTargetId: testFunction.Arn,\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.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 TargetGroup(\"test\", TargetGroupArgs.builder() \n .name(\"test\")\n .targetType(\"lambda\")\n .build());\n\n var testFunction = new Function(\"testFunction\");\n\n var withLb = new Permission(\"withLb\", PermissionArgs.builder() \n .statementId(\"AllowExecutionFromlb\")\n .action(\"lambda:InvokeFunction\")\n .function(testFunction.name())\n .principal(\"elasticloadbalancing.amazonaws.com\")\n .sourceArn(test.arn())\n .build());\n\n var testTargetGroupAttachment = new TargetGroupAttachment(\"testTargetGroupAttachment\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(test.arn())\n .targetId(testFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withLb:\n type: aws:lambda:Permission\n name: with_lb\n properties:\n statementId: AllowExecutionFromlb\n action: lambda:InvokeFunction\n function: ${testFunction.name}\n principal: elasticloadbalancing.amazonaws.com\n sourceArn: ${test.arn}\n test:\n type: aws:lb:TargetGroup\n properties:\n name: test\n targetType: lambda\n testFunction:\n type: aws:lambda:Function\n name: test\n testTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: test\n properties:\n targetGroupArn: ${test.arn}\n targetId: ${testFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Registering Multiple Targets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.ec2.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n example.push(new aws.ec2.Instance(`example-${range.value}`, {}));\n}\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = [];\npulumi.all(example.map((v, k) =\u003e [k, v]).reduce((__obj, [, ]) =\u003e ({ ...__obj, [v.id]: v }))).apply(rangeBody =\u003e {\n for (const range of Object.entries(rangeBody).map(([k, v]) =\u003e ({key: k, value: v}))) {\n exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, {\n targetGroupArn: exampleTargetGroup.arn,\n targetId: range.value.id,\n port: 80,\n }));\n }\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example.append(aws.ec2.Instance(f\"example-{range['value']}\"))\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_target_group_attachment = []\ndef create_example(range_body):\n for range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(range_body)]:\n example_target_group_attachment.append(aws.lb.TargetGroupAttachment(f\"example-{range['key']}\",\n target_group_arn=example_target_group.arn,\n target_id=range[\"value\"],\n port=80))\n\npulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0]))\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 List\u003cAws.Ec2.Instance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Ec2.Instance($\"example-{range.Value}\", new()\n {\n }));\n }\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleTargetGroupAttachment = new List\u003cAws.LB.TargetGroupAttachment\u003e();\n foreach (var range in example.Select((value, i) =\u003e new { Key = i.ToString(), Value = pair.Value }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n exampleTargetGroupAttachment.Add(new Aws.LB.TargetGroupAttachment($\"example-{range.Key}\", new()\n {\n TargetGroupArn = exampleTargetGroup.Arn,\n TargetId = range.Value.Id,\n Port = 80,\n }));\n }\n});\n```\n```yaml\nresources:\n example:\n type: aws:ec2:Instance\n options: {}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: example\n properties:\n targetGroupArn: ${exampleTargetGroup.arn}\n targetId: ${range.value.id}\n port: 80\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import Target Group Attachments.\n\n", + "description": "Provides the ability to register instances and containers with an Application Load Balancer (ALB) or Network Load Balancer (NLB) target group. For attaching resources with Elastic Load Balancer (ELB), see the `aws.elb.Attachment` resource.\n\n\u003e **Note:** `aws.alb.TargetGroupAttachment` is known as `aws.lb.TargetGroupAttachment`. 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 testTargetGroup = new aws.lb.TargetGroup(\"test\", {});\nconst testInstance = new aws.ec2.Instance(\"test\", {});\nconst test = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: testTargetGroup.arn,\n targetId: testInstance.id,\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_target_group = aws.lb.TargetGroup(\"test\")\ntest_instance = aws.ec2.Instance(\"test\")\ntest = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test_target_group.arn,\n target_id=test_instance.id,\n port=80)\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 testTargetGroup = new Aws.LB.TargetGroup(\"test\");\n\n var testInstance = new Aws.Ec2.Instance(\"test\");\n\n var test = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = testTargetGroup.Arn,\n TargetId = testInstance.Id,\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\ttestTargetGroup, err := lb.NewTargetGroup(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: testTargetGroup.Arn,\n\t\t\tTargetId: testInstance.ID(),\n\t\t\tPort: pulumi.Int(80),\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.TargetGroup;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 testTargetGroup = new TargetGroup(\"testTargetGroup\");\n\n var testInstance = new Instance(\"testInstance\");\n\n var test = new TargetGroupAttachment(\"test\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(testTargetGroup.arn())\n .targetId(testInstance.id())\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroupAttachment\n properties:\n targetGroupArn: ${testTargetGroup.arn}\n targetId: ${testInstance.id}\n port: 80\n testTargetGroup:\n type: aws:lb:TargetGroup\n name: test\n testInstance:\n type: aws:ec2:Instance\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target\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.lb.TargetGroup(\"test\", {\n name: \"test\",\n targetType: \"lambda\",\n});\nconst testFunction = new aws.lambda.Function(\"test\", {});\nconst withLb = new aws.lambda.Permission(\"with_lb\", {\n statementId: \"AllowExecutionFromlb\",\n action: \"lambda:InvokeFunction\",\n \"function\": testFunction.name,\n principal: \"elasticloadbalancing.amazonaws.com\",\n sourceArn: test.arn,\n});\nconst testTargetGroupAttachment = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: test.arn,\n targetId: testFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lb.TargetGroup(\"test\",\n name=\"test\",\n target_type=\"lambda\")\ntest_function = aws.lambda_.Function(\"test\")\nwith_lb = aws.lambda_.Permission(\"with_lb\",\n statement_id=\"AllowExecutionFromlb\",\n action=\"lambda:InvokeFunction\",\n function=test_function.name,\n principal=\"elasticloadbalancing.amazonaws.com\",\n source_arn=test.arn)\ntest_target_group_attachment = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test.arn,\n target_id=test_function.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 test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"test\",\n TargetType = \"lambda\",\n });\n\n var testFunction = new Aws.Lambda.Function(\"test\");\n\n var withLb = new Aws.Lambda.Permission(\"with_lb\", new()\n {\n StatementId = \"AllowExecutionFromlb\",\n Action = \"lambda:InvokeFunction\",\n Function = testFunction.Name,\n Principal = \"elasticloadbalancing.amazonaws.com\",\n SourceArn = test.Arn,\n });\n\n var testTargetGroupAttachment = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = test.Arn,\n TargetId = testFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\ttest, err := lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestFunction, err := lambda.NewFunction(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_lb\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromlb\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"elasticloadbalancing.amazonaws.com\"),\n\t\t\tSourceArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: test.Arn,\n\t\t\tTargetId: testFunction.Arn,\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.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 TargetGroup(\"test\", TargetGroupArgs.builder() \n .name(\"test\")\n .targetType(\"lambda\")\n .build());\n\n var testFunction = new Function(\"testFunction\");\n\n var withLb = new Permission(\"withLb\", PermissionArgs.builder() \n .statementId(\"AllowExecutionFromlb\")\n .action(\"lambda:InvokeFunction\")\n .function(testFunction.name())\n .principal(\"elasticloadbalancing.amazonaws.com\")\n .sourceArn(test.arn())\n .build());\n\n var testTargetGroupAttachment = new TargetGroupAttachment(\"testTargetGroupAttachment\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(test.arn())\n .targetId(testFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withLb:\n type: aws:lambda:Permission\n name: with_lb\n properties:\n statementId: AllowExecutionFromlb\n action: lambda:InvokeFunction\n function: ${testFunction.name}\n principal: elasticloadbalancing.amazonaws.com\n sourceArn: ${test.arn}\n test:\n type: aws:lb:TargetGroup\n properties:\n name: test\n targetType: lambda\n testFunction:\n type: aws:lambda:Function\n name: test\n testTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: test\n properties:\n targetGroupArn: ${test.arn}\n targetId: ${testFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Registering Multiple Targets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.ec2.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n example.push(new aws.ec2.Instance(`example-${range.value}`, {}));\n}\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = [];\npulumi.all(example.map((v, k) =\u003e [k, v]).reduce((__obj, [, ]) =\u003e ({ ...__obj, [k]: v }))).apply(rangeBody =\u003e {\n for (const range of Object.entries(rangeBody).map(([k, v]) =\u003e ({key: k, value: v}))) {\n exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, {\n targetGroupArn: exampleTargetGroup.arn,\n targetId: range.value.id,\n port: 80,\n }));\n }\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example.append(aws.ec2.Instance(f\"example-{range['value']}\"))\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_target_group_attachment = []\ndef create_example(range_body):\n for range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(range_body)]:\n example_target_group_attachment.append(aws.lb.TargetGroupAttachment(f\"example-{range['key']}\",\n target_group_arn=example_target_group.arn,\n target_id=range[\"value\"],\n port=80))\n\npulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0]))\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 List\u003cAws.Ec2.Instance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Ec2.Instance($\"example-{range.Value}\", new()\n {\n }));\n }\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleTargetGroupAttachment = new List\u003cAws.LB.TargetGroupAttachment\u003e();\n foreach (var range in example.Select((value, i) =\u003e new { Key = i.ToString(), Value = pair.Value }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n exampleTargetGroupAttachment.Add(new Aws.LB.TargetGroupAttachment($\"example-{range.Key}\", new()\n {\n TargetGroupArn = exampleTargetGroup.Arn,\n TargetId = range.Value.Id,\n Port = 80,\n }));\n }\n});\n```\n```yaml\nresources:\n example:\n type: aws:ec2:Instance\n options: {}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: example\n properties:\n targetGroupArn: ${exampleTargetGroup.arn}\n targetId: ${range.value.id}\n port: 80\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import Target Group Attachments.\n\n", "properties": { "availabilityZone": { "type": "string", @@ -160357,7 +160750,7 @@ } }, "aws:apigateway/methodResponse:MethodResponse": { - "description": "Provides an HTTP Method Response for an API Gateway Resource. More information about API Gateway method responses can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-response.html).\n\n## Example Usage\n\n### Basic Response\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n});\nconst response200 = new aws.apigateway.MethodResponse(\"response_200\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n statusCode: \"200\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\")\nresponse200 = aws.apigateway.MethodResponse(\"response_200\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n status_code=\"200\")\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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n });\n\n var response200 = new Aws.ApiGateway.MethodResponse(\"response_200\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n StatusCode = \"200\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewMethodResponse(ctx, \"response_200\", \u0026apigateway.MethodResponseArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tStatusCode: pulumi.String(\"200\"),\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.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.apigateway.MethodResponse;\nimport com.pulumi.aws.apigateway.MethodResponseArgs;\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 myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder() \n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder() \n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .build());\n\n var response200 = new MethodResponse(\"response200\", MethodResponseArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .statusCode(\"200\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n response200:\n type: aws:apigateway:MethodResponse\n name: response_200\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Response with Custom Header and Model\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n});\nconst myDemoResponseModel = new aws.apigateway.Model(\"MyDemoResponseModel\", {\n restApi: myDemoAPI.id,\n name: \"MyDemoResponseModel\",\n description: \"API response for MyDemoMethod\",\n contentType: \"application/json\",\n schema: JSON.stringify({\n $schema: \"http://json-schema.org/draft-04/schema#\",\n title: \"MyDemoResponse\",\n type: \"object\",\n properties: {\n message: {\n type: \"string\",\n },\n },\n }),\n});\nconst response200 = new aws.apigateway.MethodResponse(\"response_200\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n statusCode: \"200\",\n responseModels: {\n \"application-json\": \"MyDemoResponseModel\",\n },\n responseParameters: {\n \"method.response.header.Content-Type\": false,\n \"method-response-header.X-My-Demo-Header\": false,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\")\nmy_demo_response_model = aws.apigateway.Model(\"MyDemoResponseModel\",\n rest_api=my_demo_api.id,\n name=\"MyDemoResponseModel\",\n description=\"API response for MyDemoMethod\",\n content_type=\"application/json\",\n schema=json.dumps({\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"title\": \"MyDemoResponse\",\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n },\n },\n }))\nresponse200 = aws.apigateway.MethodResponse(\"response_200\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n status_code=\"200\",\n response_models={\n \"application-json\": \"MyDemoResponseModel\",\n },\n response_parameters={\n \"method.response.header.Content-Type\": False,\n \"method-response-header.X-My-Demo-Header\": False,\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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n });\n\n var myDemoResponseModel = new Aws.ApiGateway.Model(\"MyDemoResponseModel\", new()\n {\n RestApi = myDemoAPI.Id,\n Name = \"MyDemoResponseModel\",\n Description = \"API response for MyDemoMethod\",\n ContentType = \"application/json\",\n Schema = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"$schema\"] = \"http://json-schema.org/draft-04/schema#\",\n [\"title\"] = \"MyDemoResponse\",\n [\"type\"] = \"object\",\n [\"properties\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"message\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"string\",\n },\n },\n }),\n });\n\n var response200 = new Aws.ApiGateway.MethodResponse(\"response_200\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n StatusCode = \"200\",\n ResponseModels = \n {\n { \"application-json\", \"MyDemoResponseModel\" },\n },\n ResponseParameters = \n {\n { \"method.response.header.Content-Type\", false },\n { \"method-response-header.X-My-Demo-Header\", false },\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/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t})\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\"$schema\": \"http://json-schema.org/draft-04/schema#\",\n\t\t\t\"title\": \"MyDemoResponse\",\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": map[string]interface{}{\n\t\t\t\t\"message\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"string\",\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\t_, err = apigateway.NewModel(ctx, \"MyDemoResponseModel\", \u0026apigateway.ModelArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tName: pulumi.String(\"MyDemoResponseModel\"),\n\t\t\tDescription: pulumi.String(\"API response for MyDemoMethod\"),\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tSchema: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewMethodResponse(ctx, \"response_200\", \u0026apigateway.MethodResponseArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tStatusCode: pulumi.String(\"200\"),\n\t\t\tResponseModels: pulumi.StringMap{\n\t\t\t\t\"application-json\": pulumi.String(\"MyDemoResponseModel\"),\n\t\t\t},\n\t\t\tResponseParameters: pulumi.BoolMap{\n\t\t\t\t\"method.response.header.Content-Type\": pulumi.Bool(false),\n\t\t\t\t\"method-response-header.X-My-Demo-Header\": pulumi.Bool(false),\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.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.apigateway.Model;\nimport com.pulumi.aws.apigateway.ModelArgs;\nimport com.pulumi.aws.apigateway.MethodResponse;\nimport com.pulumi.aws.apigateway.MethodResponseArgs;\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 myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder() \n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder() \n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .build());\n\n var myDemoResponseModel = new Model(\"myDemoResponseModel\", ModelArgs.builder() \n .restApi(myDemoAPI.id())\n .name(\"MyDemoResponseModel\")\n .description(\"API response for MyDemoMethod\")\n .contentType(\"application/json\")\n .schema(serializeJson(\n jsonObject(\n jsonProperty(\"$schema\", \"http://json-schema.org/draft-04/schema#\"),\n jsonProperty(\"title\", \"MyDemoResponse\"),\n jsonProperty(\"type\", \"object\"),\n jsonProperty(\"properties\", jsonObject(\n jsonProperty(\"message\", jsonObject(\n jsonProperty(\"type\", \"string\")\n ))\n ))\n )))\n .build());\n\n var response200 = new MethodResponse(\"response200\", MethodResponseArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .statusCode(\"200\")\n .responseModels(Map.of(\"application-json\", \"MyDemoResponseModel\"))\n .responseParameters(Map.ofEntries(\n Map.entry(\"method.response.header.Content-Type\", false),\n Map.entry(\"method-response-header.X-My-Demo-Header\", false)\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n myDemoResponseModel:\n type: aws:apigateway:Model\n name: MyDemoResponseModel\n properties:\n restApi: ${myDemoAPI.id}\n name: MyDemoResponseModel\n description: API response for MyDemoMethod\n contentType: application/json\n schema:\n fn::toJSON:\n $schema: http://json-schema.org/draft-04/schema#\n title: MyDemoResponse\n type: object\n properties:\n message:\n type: string\n response200:\n type: aws:apigateway:MethodResponse\n name: response_200\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n statusCode: '200'\n responseModels:\n application-json: MyDemoResponseModel\n responseParameters:\n method.response.header.Content-Type: false\n method-response-header.X-My-Demo-Header: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_api_gateway_method_response` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD/STATUS-CODE`. For example:\n\n```sh\n$ pulumi import aws:apigateway/methodResponse:MethodResponse example 12345abcde/67890fghij/GET/200\n```\n", + "description": "Provides an HTTP Method Response for an API Gateway Resource. More information about API Gateway method responses can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-response.html).\n\n## Example Usage\n\n### Basic Response\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n});\nconst response200 = new aws.apigateway.MethodResponse(\"response_200\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n statusCode: \"200\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\")\nresponse200 = aws.apigateway.MethodResponse(\"response_200\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n status_code=\"200\")\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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n });\n\n var response200 = new Aws.ApiGateway.MethodResponse(\"response_200\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n StatusCode = \"200\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewMethodResponse(ctx, \"response_200\", \u0026apigateway.MethodResponseArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tStatusCode: pulumi.String(\"200\"),\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.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.apigateway.MethodResponse;\nimport com.pulumi.aws.apigateway.MethodResponseArgs;\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 myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder() \n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder() \n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .build());\n\n var response200 = new MethodResponse(\"response200\", MethodResponseArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .statusCode(\"200\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n response200:\n type: aws:apigateway:MethodResponse\n name: response_200\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n statusCode: '200'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Response with Custom Header and Model\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myDemoAPI = new aws.apigateway.RestApi(\"MyDemoAPI\", {\n name: \"MyDemoAPI\",\n description: \"This is my API for demonstration purposes\",\n});\nconst myDemoResource = new aws.apigateway.Resource(\"MyDemoResource\", {\n restApi: myDemoAPI.id,\n parentId: myDemoAPI.rootResourceId,\n pathPart: \"mydemoresource\",\n});\nconst myDemoMethod = new aws.apigateway.Method(\"MyDemoMethod\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst myDemoIntegration = new aws.apigateway.Integration(\"MyDemoIntegration\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n type: \"MOCK\",\n});\nconst myDemoResponseModel = new aws.apigateway.Model(\"MyDemoResponseModel\", {\n restApi: myDemoAPI.id,\n name: \"MyDemoResponseModel\",\n description: \"API response for MyDemoMethod\",\n contentType: \"application/json\",\n schema: JSON.stringify({\n $schema: \"http://json-schema.org/draft-04/schema#\",\n title: \"MyDemoResponse\",\n type: \"object\",\n properties: {\n message: {\n type: \"string\",\n },\n },\n }),\n});\nconst response200 = new aws.apigateway.MethodResponse(\"response_200\", {\n restApi: myDemoAPI.id,\n resourceId: myDemoResource.id,\n httpMethod: myDemoMethod.httpMethod,\n statusCode: \"200\",\n responseModels: {\n \"application/json\": \"MyDemoResponseModel\",\n },\n responseParameters: {\n \"method.response.header.Content-Type\": false,\n \"method-response-header.X-My-Demo-Header\": false,\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmy_demo_api = aws.apigateway.RestApi(\"MyDemoAPI\",\n name=\"MyDemoAPI\",\n description=\"This is my API for demonstration purposes\")\nmy_demo_resource = aws.apigateway.Resource(\"MyDemoResource\",\n rest_api=my_demo_api.id,\n parent_id=my_demo_api.root_resource_id,\n path_part=\"mydemoresource\")\nmy_demo_method = aws.apigateway.Method(\"MyDemoMethod\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\nmy_demo_integration = aws.apigateway.Integration(\"MyDemoIntegration\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n type=\"MOCK\")\nmy_demo_response_model = aws.apigateway.Model(\"MyDemoResponseModel\",\n rest_api=my_demo_api.id,\n name=\"MyDemoResponseModel\",\n description=\"API response for MyDemoMethod\",\n content_type=\"application/json\",\n schema=json.dumps({\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"title\": \"MyDemoResponse\",\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n },\n },\n }))\nresponse200 = aws.apigateway.MethodResponse(\"response_200\",\n rest_api=my_demo_api.id,\n resource_id=my_demo_resource.id,\n http_method=my_demo_method.http_method,\n status_code=\"200\",\n response_models={\n \"application/json\": \"MyDemoResponseModel\",\n },\n response_parameters={\n \"method.response.header.Content-Type\": False,\n \"method-response-header.X-My-Demo-Header\": False,\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 myDemoAPI = new Aws.ApiGateway.RestApi(\"MyDemoAPI\", new()\n {\n Name = \"MyDemoAPI\",\n Description = \"This is my API for demonstration purposes\",\n });\n\n var myDemoResource = new Aws.ApiGateway.Resource(\"MyDemoResource\", new()\n {\n RestApi = myDemoAPI.Id,\n ParentId = myDemoAPI.RootResourceId,\n PathPart = \"mydemoresource\",\n });\n\n var myDemoMethod = new Aws.ApiGateway.Method(\"MyDemoMethod\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n\n var myDemoIntegration = new Aws.ApiGateway.Integration(\"MyDemoIntegration\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n Type = \"MOCK\",\n });\n\n var myDemoResponseModel = new Aws.ApiGateway.Model(\"MyDemoResponseModel\", new()\n {\n RestApi = myDemoAPI.Id,\n Name = \"MyDemoResponseModel\",\n Description = \"API response for MyDemoMethod\",\n ContentType = \"application/json\",\n Schema = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"$schema\"] = \"http://json-schema.org/draft-04/schema#\",\n [\"title\"] = \"MyDemoResponse\",\n [\"type\"] = \"object\",\n [\"properties\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"message\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"type\"] = \"string\",\n },\n },\n }),\n });\n\n var response200 = new Aws.ApiGateway.MethodResponse(\"response_200\", new()\n {\n RestApi = myDemoAPI.Id,\n ResourceId = myDemoResource.Id,\n HttpMethod = myDemoMethod.HttpMethod,\n StatusCode = \"200\",\n ResponseModels = \n {\n { \"application/json\", \"MyDemoResponseModel\" },\n },\n ResponseParameters = \n {\n { \"method.response.header.Content-Type\", false },\n { \"method-response-header.X-My-Demo-Header\", false },\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/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyDemoAPI, err := apigateway.NewRestApi(ctx, \"MyDemoAPI\", \u0026apigateway.RestApiArgs{\n\t\t\tName: pulumi.String(\"MyDemoAPI\"),\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoResource, err := apigateway.NewResource(ctx, \"MyDemoResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tParentId: myDemoAPI.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mydemoresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyDemoMethod, err := apigateway.NewMethod(ctx, \"MyDemoMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewIntegration(ctx, \"MyDemoIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t})\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\"$schema\": \"http://json-schema.org/draft-04/schema#\",\n\t\t\t\"title\": \"MyDemoResponse\",\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": map[string]interface{}{\n\t\t\t\t\"message\": map[string]interface{}{\n\t\t\t\t\t\"type\": \"string\",\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\t_, err = apigateway.NewModel(ctx, \"MyDemoResponseModel\", \u0026apigateway.ModelArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tName: pulumi.String(\"MyDemoResponseModel\"),\n\t\t\tDescription: pulumi.String(\"API response for MyDemoMethod\"),\n\t\t\tContentType: pulumi.String(\"application/json\"),\n\t\t\tSchema: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewMethodResponse(ctx, \"response_200\", \u0026apigateway.MethodResponseArgs{\n\t\t\tRestApi: myDemoAPI.ID(),\n\t\t\tResourceId: myDemoResource.ID(),\n\t\t\tHttpMethod: myDemoMethod.HttpMethod,\n\t\t\tStatusCode: pulumi.String(\"200\"),\n\t\t\tResponseModels: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(\"MyDemoResponseModel\"),\n\t\t\t},\n\t\t\tResponseParameters: pulumi.BoolMap{\n\t\t\t\t\"method.response.header.Content-Type\": pulumi.Bool(false),\n\t\t\t\t\"method-response-header.X-My-Demo-Header\": pulumi.Bool(false),\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.apigateway.RestApi;\nimport com.pulumi.aws.apigateway.RestApiArgs;\nimport com.pulumi.aws.apigateway.Resource;\nimport com.pulumi.aws.apigateway.ResourceArgs;\nimport com.pulumi.aws.apigateway.Method;\nimport com.pulumi.aws.apigateway.MethodArgs;\nimport com.pulumi.aws.apigateway.Integration;\nimport com.pulumi.aws.apigateway.IntegrationArgs;\nimport com.pulumi.aws.apigateway.Model;\nimport com.pulumi.aws.apigateway.ModelArgs;\nimport com.pulumi.aws.apigateway.MethodResponse;\nimport com.pulumi.aws.apigateway.MethodResponseArgs;\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 myDemoAPI = new RestApi(\"myDemoAPI\", RestApiArgs.builder() \n .name(\"MyDemoAPI\")\n .description(\"This is my API for demonstration purposes\")\n .build());\n\n var myDemoResource = new Resource(\"myDemoResource\", ResourceArgs.builder() \n .restApi(myDemoAPI.id())\n .parentId(myDemoAPI.rootResourceId())\n .pathPart(\"mydemoresource\")\n .build());\n\n var myDemoMethod = new Method(\"myDemoMethod\", MethodArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(\"GET\")\n .authorization(\"NONE\")\n .build());\n\n var myDemoIntegration = new Integration(\"myDemoIntegration\", IntegrationArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .type(\"MOCK\")\n .build());\n\n var myDemoResponseModel = new Model(\"myDemoResponseModel\", ModelArgs.builder() \n .restApi(myDemoAPI.id())\n .name(\"MyDemoResponseModel\")\n .description(\"API response for MyDemoMethod\")\n .contentType(\"application/json\")\n .schema(serializeJson(\n jsonObject(\n jsonProperty(\"$schema\", \"http://json-schema.org/draft-04/schema#\"),\n jsonProperty(\"title\", \"MyDemoResponse\"),\n jsonProperty(\"type\", \"object\"),\n jsonProperty(\"properties\", jsonObject(\n jsonProperty(\"message\", jsonObject(\n jsonProperty(\"type\", \"string\")\n ))\n ))\n )))\n .build());\n\n var response200 = new MethodResponse(\"response200\", MethodResponseArgs.builder() \n .restApi(myDemoAPI.id())\n .resourceId(myDemoResource.id())\n .httpMethod(myDemoMethod.httpMethod())\n .statusCode(\"200\")\n .responseModels(Map.of(\"application/json\", \"MyDemoResponseModel\"))\n .responseParameters(Map.ofEntries(\n Map.entry(\"method.response.header.Content-Type\", false),\n Map.entry(\"method-response-header.X-My-Demo-Header\", false)\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDemoAPI:\n type: aws:apigateway:RestApi\n name: MyDemoAPI\n properties:\n name: MyDemoAPI\n description: This is my API for demonstration purposes\n myDemoResource:\n type: aws:apigateway:Resource\n name: MyDemoResource\n properties:\n restApi: ${myDemoAPI.id}\n parentId: ${myDemoAPI.rootResourceId}\n pathPart: mydemoresource\n myDemoMethod:\n type: aws:apigateway:Method\n name: MyDemoMethod\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: GET\n authorization: NONE\n myDemoIntegration:\n type: aws:apigateway:Integration\n name: MyDemoIntegration\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n type: MOCK\n myDemoResponseModel:\n type: aws:apigateway:Model\n name: MyDemoResponseModel\n properties:\n restApi: ${myDemoAPI.id}\n name: MyDemoResponseModel\n description: API response for MyDemoMethod\n contentType: application/json\n schema:\n fn::toJSON:\n $schema: http://json-schema.org/draft-04/schema#\n title: MyDemoResponse\n type: object\n properties:\n message:\n type: string\n response200:\n type: aws:apigateway:MethodResponse\n name: response_200\n properties:\n restApi: ${myDemoAPI.id}\n resourceId: ${myDemoResource.id}\n httpMethod: ${myDemoMethod.httpMethod}\n statusCode: '200'\n responseModels:\n application/json: MyDemoResponseModel\n responseParameters:\n method.response.header.Content-Type: false\n method-response-header.X-My-Demo-Header: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_api_gateway_method_response` using `REST-API-ID/RESOURCE-ID/HTTP-METHOD/STATUS-CODE`. For example:\n\n```sh\n$ pulumi import aws:apigateway/methodResponse:MethodResponse example 12345abcde/67890fghij/GET/200\n```\n", "properties": { "httpMethod": { "type": "string", @@ -180852,6 +181245,13 @@ "type": "string", "description": "ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function.\n" }, + "keyValueStoreAssociations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function.\n" + }, "liveStageEtag": { "type": "string", "description": "ETag hash of any `LIVE` stage of the function.\n" @@ -180891,6 +181291,13 @@ "type": "string", "description": "Comment.\n" }, + "keyValueStoreAssociations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function.\n" + }, "name": { "type": "string", "description": "Unique name for your CloudFront Function.\n", @@ -180928,6 +181335,13 @@ "type": "string", "description": "ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function.\n" }, + "keyValueStoreAssociations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function.\n" + }, "liveStageEtag": { "type": "string", "description": "ETag hash of any `LIVE` stage of the function.\n" @@ -181101,6 +181515,74 @@ "type": "object" } }, + "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey": { + "description": "Resource for managing an AWS CloudFront KeyValueStore Key.\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.cloudfront.KeyValueStore(\"example\", {\n name: \"ExampleKeyValueStore\",\n comment: \"This is an example key value store\",\n});\nconst exampleKeyvaluestoreKey = new aws.cloudfront.KeyvaluestoreKey(\"example\", {\n keyValueStoreArn: example.arn,\n key: \"Test Key\",\n value: \"Test Value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudfront.KeyValueStore(\"example\",\n name=\"ExampleKeyValueStore\",\n comment=\"This is an example key value store\")\nexample_keyvaluestore_key = aws.cloudfront.KeyvaluestoreKey(\"example\",\n key_value_store_arn=example.arn,\n key=\"Test Key\",\n value=\"Test Value\")\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.CloudFront.KeyValueStore(\"example\", new()\n {\n Name = \"ExampleKeyValueStore\",\n Comment = \"This is an example key value store\",\n });\n\n var exampleKeyvaluestoreKey = new Aws.CloudFront.KeyvaluestoreKey(\"example\", new()\n {\n KeyValueStoreArn = example.Arn,\n Key = \"Test Key\",\n Value = \"Test Value\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\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 := cloudfront.NewKeyValueStore(ctx, \"example\", \u0026cloudfront.KeyValueStoreArgs{\n\t\t\tName: pulumi.String(\"ExampleKeyValueStore\"),\n\t\t\tComment: pulumi.String(\"This is an example key value store\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfront.NewKeyvaluestoreKey(ctx, \"example\", \u0026cloudfront.KeyvaluestoreKeyArgs{\n\t\t\tKeyValueStoreArn: example.Arn,\n\t\t\tKey: pulumi.String(\"Test Key\"),\n\t\t\tValue: pulumi.String(\"Test Value\"),\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.cloudfront.KeyValueStore;\nimport com.pulumi.aws.cloudfront.KeyValueStoreArgs;\nimport com.pulumi.aws.cloudfront.KeyvaluestoreKey;\nimport com.pulumi.aws.cloudfront.KeyvaluestoreKeyArgs;\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 KeyValueStore(\"example\", KeyValueStoreArgs.builder() \n .name(\"ExampleKeyValueStore\")\n .comment(\"This is an example key value store\")\n .build());\n\n var exampleKeyvaluestoreKey = new KeyvaluestoreKey(\"exampleKeyvaluestoreKey\", KeyvaluestoreKeyArgs.builder() \n .keyValueStoreArn(example.arn())\n .key(\"Test Key\")\n .value(\"Test Value\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudfront:KeyValueStore\n properties:\n name: ExampleKeyValueStore\n comment: This is an example key value store\n exampleKeyvaluestoreKey:\n type: aws:cloudfront:KeyvaluestoreKey\n name: example\n properties:\n keyValueStoreArn: ${example.arn}\n key: Test Key\n value: Test Value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example:\n\n```sh\n$ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey\n```\n", + "properties": { + "key": { + "type": "string", + "description": "Key to put.\n" + }, + "keyValueStoreArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Key Value Store.\n" + }, + "totalSizeInBytes": { + "type": "integer", + "description": "Total size of the Key Value Store in bytes.\n" + }, + "value": { + "type": "string", + "description": "Value to put.\n" + } + }, + "required": [ + "key", + "keyValueStoreArn", + "totalSizeInBytes", + "value" + ], + "inputProperties": { + "key": { + "type": "string", + "description": "Key to put.\n" + }, + "keyValueStoreArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Key Value Store.\n" + }, + "value": { + "type": "string", + "description": "Value to put.\n" + } + }, + "requiredInputs": [ + "key", + "keyValueStoreArn", + "value" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering KeyvaluestoreKey resources.\n", + "properties": { + "key": { + "type": "string", + "description": "Key to put.\n" + }, + "keyValueStoreArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Key Value Store.\n" + }, + "totalSizeInBytes": { + "type": "integer", + "description": "Total size of the Key Value Store in bytes.\n" + }, + "value": { + "type": "string", + "description": "Value to put.\n" + } + }, + "type": "object" + } + }, "aws:cloudfront/monitoringSubscription:MonitoringSubscription": { "description": "Provides a CloudFront real-time log configuration 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 example = new aws.cloudfront.MonitoringSubscription(\"example\", {\n distributionId: exampleAwsCloudfrontDistribution.id,\n monitoringSubscription: {\n realtimeMetricsSubscriptionConfig: {\n realtimeMetricsSubscriptionStatus: \"Enabled\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cloudfront.MonitoringSubscription(\"example\",\n distribution_id=example_aws_cloudfront_distribution[\"id\"],\n monitoring_subscription=aws.cloudfront.MonitoringSubscriptionMonitoringSubscriptionArgs(\n realtime_metrics_subscription_config=aws.cloudfront.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs(\n realtime_metrics_subscription_status=\"Enabled\",\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.CloudFront.MonitoringSubscription(\"example\", new()\n {\n DistributionId = exampleAwsCloudfrontDistribution.Id,\n MonitoringSubscriptionDetails = new Aws.CloudFront.Inputs.MonitoringSubscriptionMonitoringSubscriptionArgs\n {\n RealtimeMetricsSubscriptionConfig = new Aws.CloudFront.Inputs.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs\n {\n RealtimeMetricsSubscriptionStatus = \"Enabled\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront\"\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 := cloudfront.NewMonitoringSubscription(ctx, \"example\", \u0026cloudfront.MonitoringSubscriptionArgs{\n\t\t\tDistributionId: pulumi.Any(exampleAwsCloudfrontDistribution.Id),\n\t\t\tMonitoringSubscription: \u0026cloudfront.MonitoringSubscriptionMonitoringSubscriptionArgs{\n\t\t\t\tRealtimeMetricsSubscriptionConfig: \u0026cloudfront.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs{\n\t\t\t\t\tRealtimeMetricsSubscriptionStatus: pulumi.String(\"Enabled\"),\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.cloudfront.MonitoringSubscription;\nimport com.pulumi.aws.cloudfront.MonitoringSubscriptionArgs;\nimport com.pulumi.aws.cloudfront.inputs.MonitoringSubscriptionMonitoringSubscriptionArgs;\nimport com.pulumi.aws.cloudfront.inputs.MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs;\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 MonitoringSubscription(\"example\", MonitoringSubscriptionArgs.builder() \n .distributionId(exampleAwsCloudfrontDistribution.id())\n .monitoringSubscription(MonitoringSubscriptionMonitoringSubscriptionArgs.builder()\n .realtimeMetricsSubscriptionConfig(MonitoringSubscriptionMonitoringSubscriptionRealtimeMetricsSubscriptionConfigArgs.builder()\n .realtimeMetricsSubscriptionStatus(\"Enabled\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cloudfront:MonitoringSubscription\n properties:\n distributionId: ${exampleAwsCloudfrontDistribution.id}\n monitoringSubscription:\n realtimeMetricsSubscriptionConfig:\n realtimeMetricsSubscriptionStatus: Enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import CloudFront monitoring subscription using the id. For example:\n\n```sh\n$ pulumi import aws:cloudfront/monitoringSubscription:MonitoringSubscription example E3QYSUHO4VYRGB\n```\n", "properties": { @@ -199790,6 +200272,43 @@ "type": "object" } }, + "aws:devopsguru/notificationChannel:NotificationChannel": { + "description": "Resource for managing an AWS DevOps Guru Notification Channel.\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.devopsguru.NotificationChannel(\"example\", {sns: {\n topicArn: exampleAwsSnsTopic.arn,\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.NotificationChannel(\"example\", sns=aws.devopsguru.NotificationChannelSnsArgs(\n topic_arn=example_aws_sns_topic[\"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.DevOpsGuru.NotificationChannel(\"example\", new()\n {\n Sns = new Aws.DevOpsGuru.Inputs.NotificationChannelSnsArgs\n {\n TopicArn = exampleAwsSnsTopic.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru\"\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 := devopsguru.NewNotificationChannel(ctx, \"example\", \u0026devopsguru.NotificationChannelArgs{\n\t\t\tSns: \u0026devopsguru.NotificationChannelSnsArgs{\n\t\t\t\tTopicArn: pulumi.Any(exampleAwsSnsTopic.Arn),\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.devopsguru.NotificationChannel;\nimport com.pulumi.aws.devopsguru.NotificationChannelArgs;\nimport com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs;\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 NotificationChannel(\"example\", NotificationChannelArgs.builder() \n .sns(NotificationChannelSnsArgs.builder()\n .topicArn(exampleAwsSnsTopic.arn())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:NotificationChannel\n properties:\n sns:\n topicArn: ${exampleAwsSnsTopic.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filters\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.devopsguru.NotificationChannel(\"example\", {\n sns: {\n topicArn: exampleAwsSnsTopic.arn,\n },\n filters: {\n messageTypes: [\"NEW_INSIGHT\"],\n severities: [\"HIGH\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.NotificationChannel(\"example\",\n sns=aws.devopsguru.NotificationChannelSnsArgs(\n topic_arn=example_aws_sns_topic[\"arn\"],\n ),\n filters=aws.devopsguru.NotificationChannelFiltersArgs(\n message_types=[\"NEW_INSIGHT\"],\n severities=[\"HIGH\"],\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.DevOpsGuru.NotificationChannel(\"example\", new()\n {\n Sns = new Aws.DevOpsGuru.Inputs.NotificationChannelSnsArgs\n {\n TopicArn = exampleAwsSnsTopic.Arn,\n },\n Filters = new Aws.DevOpsGuru.Inputs.NotificationChannelFiltersArgs\n {\n MessageTypes = new[]\n {\n \"NEW_INSIGHT\",\n },\n Severities = new[]\n {\n \"HIGH\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru\"\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 := devopsguru.NewNotificationChannel(ctx, \"example\", \u0026devopsguru.NotificationChannelArgs{\n\t\t\tSns: \u0026devopsguru.NotificationChannelSnsArgs{\n\t\t\t\tTopicArn: pulumi.Any(exampleAwsSnsTopic.Arn),\n\t\t\t},\n\t\t\tFilters: \u0026devopsguru.NotificationChannelFiltersArgs{\n\t\t\t\tMessageTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"NEW_INSIGHT\"),\n\t\t\t\t},\n\t\t\t\tSeverities: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"HIGH\"),\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.devopsguru.NotificationChannel;\nimport com.pulumi.aws.devopsguru.NotificationChannelArgs;\nimport com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs;\nimport com.pulumi.aws.devopsguru.inputs.NotificationChannelFiltersArgs;\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 NotificationChannel(\"example\", NotificationChannelArgs.builder() \n .sns(NotificationChannelSnsArgs.builder()\n .topicArn(exampleAwsSnsTopic.arn())\n .build())\n .filters(NotificationChannelFiltersArgs.builder()\n .messageTypes(\"NEW_INSIGHT\")\n .severities(\"HIGH\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:NotificationChannel\n properties:\n sns:\n topicArn: ${exampleAwsSnsTopic.arn}\n filters:\n messageTypes:\n - NEW_INSIGHT\n severities:\n - HIGH\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example:\n\n```sh\n$ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678\n```\n", + "properties": { + "filters": { + "$ref": "#/types/aws:devopsguru/NotificationChannelFilters:NotificationChannelFilters", + "description": "Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below.\n" + }, + "sns": { + "$ref": "#/types/aws:devopsguru/NotificationChannelSns:NotificationChannelSns", + "description": "SNS noficiation channel configurations. See the `sns` argument reference below.\n\nThe following arguments are optional:\n" + } + }, + "inputProperties": { + "filters": { + "$ref": "#/types/aws:devopsguru/NotificationChannelFilters:NotificationChannelFilters", + "description": "Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below.\n" + }, + "sns": { + "$ref": "#/types/aws:devopsguru/NotificationChannelSns:NotificationChannelSns", + "description": "SNS noficiation channel configurations. See the `sns` argument reference below.\n\nThe following arguments are optional:\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering NotificationChannel resources.\n", + "properties": { + "filters": { + "$ref": "#/types/aws:devopsguru/NotificationChannelFilters:NotificationChannelFilters", + "description": "Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below.\n" + }, + "sns": { + "$ref": "#/types/aws:devopsguru/NotificationChannelSns:NotificationChannelSns", + "description": "SNS noficiation channel configurations. See the `sns` argument reference below.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + } + }, "aws:devopsguru/resourceCollection:ResourceCollection": { "description": "Resource for managing an AWS DevOps Guru Resource Collection.\n\n\u003e Only one type of resource collection (All Account Resources, CloudFormation, or Tags) can be enabled in an account at a time. To avoid persistent differences, this resource should be defined only once.\n\n## Example Usage\n\n### All Account Resources\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.devopsguru.ResourceCollection(\"example\", {\n type: \"AWS_SERVICE\",\n cloudformation: {\n stackNames: [\"*\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.ResourceCollection(\"example\",\n type=\"AWS_SERVICE\",\n cloudformation=aws.devopsguru.ResourceCollectionCloudformationArgs(\n stack_names=[\"*\"],\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.DevOpsGuru.ResourceCollection(\"example\", new()\n {\n Type = \"AWS_SERVICE\",\n Cloudformation = new Aws.DevOpsGuru.Inputs.ResourceCollectionCloudformationArgs\n {\n StackNames = new[]\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/devopsguru\"\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 := devopsguru.NewResourceCollection(ctx, \"example\", \u0026devopsguru.ResourceCollectionArgs{\n\t\t\tType: pulumi.String(\"AWS_SERVICE\"),\n\t\t\tCloudformation: \u0026devopsguru.ResourceCollectionCloudformationArgs{\n\t\t\t\tStackNames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\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.devopsguru.ResourceCollection;\nimport com.pulumi.aws.devopsguru.ResourceCollectionArgs;\nimport com.pulumi.aws.devopsguru.inputs.ResourceCollectionCloudformationArgs;\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 ResourceCollection(\"example\", ResourceCollectionArgs.builder() \n .type(\"AWS_SERVICE\")\n .cloudformation(ResourceCollectionCloudformationArgs.builder()\n .stackNames(\"*\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:ResourceCollection\n properties:\n type: AWS_SERVICE\n cloudformation:\n stackNames:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### CloudFormation Stacks\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.devopsguru.ResourceCollection(\"example\", {\n type: \"AWS_CLOUD_FORMATION\",\n cloudformation: {\n stackNames: [\"ExampleStack\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.ResourceCollection(\"example\",\n type=\"AWS_CLOUD_FORMATION\",\n cloudformation=aws.devopsguru.ResourceCollectionCloudformationArgs(\n stack_names=[\"ExampleStack\"],\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.DevOpsGuru.ResourceCollection(\"example\", new()\n {\n Type = \"AWS_CLOUD_FORMATION\",\n Cloudformation = new Aws.DevOpsGuru.Inputs.ResourceCollectionCloudformationArgs\n {\n StackNames = new[]\n {\n \"ExampleStack\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru\"\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 := devopsguru.NewResourceCollection(ctx, \"example\", \u0026devopsguru.ResourceCollectionArgs{\n\t\t\tType: pulumi.String(\"AWS_CLOUD_FORMATION\"),\n\t\t\tCloudformation: \u0026devopsguru.ResourceCollectionCloudformationArgs{\n\t\t\t\tStackNames: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ExampleStack\"),\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.devopsguru.ResourceCollection;\nimport com.pulumi.aws.devopsguru.ResourceCollectionArgs;\nimport com.pulumi.aws.devopsguru.inputs.ResourceCollectionCloudformationArgs;\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 ResourceCollection(\"example\", ResourceCollectionArgs.builder() \n .type(\"AWS_CLOUD_FORMATION\")\n .cloudformation(ResourceCollectionCloudformationArgs.builder()\n .stackNames(\"ExampleStack\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:ResourceCollection\n properties:\n type: AWS_CLOUD_FORMATION\n cloudformation:\n stackNames:\n - ExampleStack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Tags\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.devopsguru.ResourceCollection(\"example\", {\n type: \"AWS_TAGS\",\n tags: {\n appBoundaryKey: \"DevOps-Guru-Example\",\n tagValues: [\"Example-Value\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.ResourceCollection(\"example\",\n type=\"AWS_TAGS\",\n tags=aws.devopsguru.ResourceCollectionTagsArgs(\n app_boundary_key=\"DevOps-Guru-Example\",\n tag_values=[\"Example-Value\"],\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.DevOpsGuru.ResourceCollection(\"example\", new()\n {\n Type = \"AWS_TAGS\",\n Tags = new Aws.DevOpsGuru.Inputs.ResourceCollectionTagsArgs\n {\n AppBoundaryKey = \"DevOps-Guru-Example\",\n TagValues = new[]\n {\n \"Example-Value\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru\"\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 := devopsguru.NewResourceCollection(ctx, \"example\", \u0026devopsguru.ResourceCollectionArgs{\n\t\t\tType: pulumi.String(\"AWS_TAGS\"),\n\t\t\tTags: \u0026devopsguru.ResourceCollectionTagsArgs{\n\t\t\t\tAppBoundaryKey: pulumi.String(\"DevOps-Guru-Example\"),\n\t\t\t\tTagValues: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Example-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.devopsguru.ResourceCollection;\nimport com.pulumi.aws.devopsguru.ResourceCollectionArgs;\nimport com.pulumi.aws.devopsguru.inputs.ResourceCollectionTagsArgs;\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 ResourceCollection(\"example\", ResourceCollectionArgs.builder() \n .type(\"AWS_TAGS\")\n .tags(ResourceCollectionTagsArgs.builder()\n .appBoundaryKey(\"DevOps-Guru-Example\")\n .tagValues(\"Example-Value\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:ResourceCollection\n properties:\n type: AWS_TAGS\n tags:\n appBoundaryKey: DevOps-Guru-Example\n tagValues:\n - Example-Value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Tags All Resources\n\nTo analyze all resources with the `app_boundary_key` regardless of the corresponding tag value, set `tag_values` to `[\"*\"]`.\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.devopsguru.ResourceCollection(\"example\", {\n type: \"AWS_TAGS\",\n tags: {\n appBoundaryKey: \"DevOps-Guru-Example\",\n tagValues: [\"*\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.devopsguru.ResourceCollection(\"example\",\n type=\"AWS_TAGS\",\n tags=aws.devopsguru.ResourceCollectionTagsArgs(\n app_boundary_key=\"DevOps-Guru-Example\",\n tag_values=[\"*\"],\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.DevOpsGuru.ResourceCollection(\"example\", new()\n {\n Type = \"AWS_TAGS\",\n Tags = new Aws.DevOpsGuru.Inputs.ResourceCollectionTagsArgs\n {\n AppBoundaryKey = \"DevOps-Guru-Example\",\n TagValues = new[]\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/devopsguru\"\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 := devopsguru.NewResourceCollection(ctx, \"example\", \u0026devopsguru.ResourceCollectionArgs{\n\t\t\tType: pulumi.String(\"AWS_TAGS\"),\n\t\t\tTags: \u0026devopsguru.ResourceCollectionTagsArgs{\n\t\t\t\tAppBoundaryKey: pulumi.String(\"DevOps-Guru-Example\"),\n\t\t\t\tTagValues: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*\"),\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.devopsguru.ResourceCollection;\nimport com.pulumi.aws.devopsguru.ResourceCollectionArgs;\nimport com.pulumi.aws.devopsguru.inputs.ResourceCollectionTagsArgs;\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 ResourceCollection(\"example\", ResourceCollectionArgs.builder() \n .type(\"AWS_TAGS\")\n .tags(ResourceCollectionTagsArgs.builder()\n .appBoundaryKey(\"DevOps-Guru-Example\")\n .tagValues(\"*\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:devopsguru:ResourceCollection\n properties:\n type: AWS_TAGS\n tags:\n appBoundaryKey: DevOps-Guru-Example\n tagValues:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DevOps Guru Resource Collection using the `id`. For example:\n\n```sh\n$ pulumi import aws:devopsguru/resourceCollection:ResourceCollection example AWS_CLOUD_FORMATION\n```\n", "properties": { @@ -207970,6 +208489,73 @@ "type": "object" } }, + "aws:dynamodb/resourcePolicy:ResourcePolicy": { + "description": "\u003c!---\nTIP: A few guiding principles for writing documentation:\n1. Use simple language while avoiding jargon and figures of speech.\n2. Focus on brevity and clarity to keep a reader's attention.\n3. Use active voice and present tense whenever you can.\n4. Document your feature as it exists now; do not mention the future or past if you can help it.\n5. Use accessible and inclusive language.\n---\u003e`\n\nResource for managing an AWS DynamoDB Resource Policy.\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.dynamodb.ResourcePolicy(\"example\", {\n resourceArn: exampleAwsDynamodbTable.arn,\n policy: test.json,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.ResourcePolicy(\"example\",\n resource_arn=example_aws_dynamodb_table[\"arn\"],\n policy=test[\"json\"])\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.DynamoDB.ResourcePolicy(\"example\", new()\n {\n ResourceArn = exampleAwsDynamodbTable.Arn,\n Policy = test.Json,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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 := dynamodb.NewResourcePolicy(ctx, \"example\", \u0026dynamodb.ResourcePolicyArgs{\n\t\t\tResourceArn: pulumi.Any(exampleAwsDynamodbTable.Arn),\n\t\t\tPolicy: pulumi.Any(test.Json),\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.dynamodb.ResourcePolicy;\nimport com.pulumi.aws.dynamodb.ResourcePolicyArgs;\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 ResourcePolicy(\"example\", ResourcePolicyArgs.builder() \n .resourceArn(exampleAwsDynamodbTable.arn())\n .policy(test.json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:ResourcePolicy\n properties:\n resourceArn: ${exampleAwsDynamodbTable.arn}\n policy: ${test.json}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table\n```\n", + "properties": { + "confirmRemoveSelfResourceAccess": { + "type": "boolean", + "description": "Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future.\n" + }, + "policy": { + "type": "string", + "description": "n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations.\n\nThe following arguments are optional:\n" + }, + "resourceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document.\n" + }, + "revisionId": { + "type": "string", + "description": "A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic.\n" + } + }, + "required": [ + "confirmRemoveSelfResourceAccess", + "policy", + "resourceArn", + "revisionId" + ], + "inputProperties": { + "confirmRemoveSelfResourceAccess": { + "type": "boolean", + "description": "Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future.\n" + }, + "policy": { + "type": "string", + "description": "n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations.\n\nThe following arguments are optional:\n" + }, + "resourceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document.\n" + } + }, + "requiredInputs": [ + "policy", + "resourceArn" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ResourcePolicy resources.\n", + "properties": { + "confirmRemoveSelfResourceAccess": { + "type": "boolean", + "description": "Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future.\n" + }, + "policy": { + "type": "string", + "description": "n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations.\n\nThe following arguments are optional:\n" + }, + "resourceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document.\n" + }, + "revisionId": { + "type": "string", + "description": "A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic.\n" + } + }, + "type": "object" + } + }, "aws:dynamodb/table:Table": { "description": "Provides a DynamoDB table resource.\n\n\u003e **Note:** It is recommended to use [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) for `read_capacity` and/or `write_capacity` if there's `autoscaling policy` attached to the table.\n\n\u003e **Note:** When using aws.dynamodb.TableReplica with this resource, use `lifecycle` `ignore_changes` for `replica`, _e.g._, `lifecycle { ignore_changes = [replica] }`.\n\n## DynamoDB Table attributes\n\nOnly define attributes on the table object that are going to be used as:\n\n* Table hash key or range key\n* LSI or GSI hash key or range key\n\nThe DynamoDB API expects attribute structure (name and type) to be passed along when creating or updating GSI/LSIs or creating the initial table. In these cases it expects the Hash / Range keys to be provided. Because these get re-used in numerous places (i.e the table's range key could be a part of one or more GSIs), they are stored on the table object to prevent duplication and increase consistency. If you add attributes here that are not used in these scenarios it can cause an infinite loop in planning.\n\n## Example Usage\n\n### Basic Example\n\nThe following dynamodb table description models the table and GSI shown in the [AWS SDK example documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst basic_dynamodb_table = new aws.dynamodb.Table(\"basic-dynamodb-table\", {\n name: \"GameScores\",\n billingMode: \"PROVISIONED\",\n readCapacity: 20,\n writeCapacity: 20,\n hashKey: \"UserId\",\n rangeKey: \"GameTitle\",\n attributes: [\n {\n name: \"UserId\",\n type: \"S\",\n },\n {\n name: \"GameTitle\",\n type: \"S\",\n },\n {\n name: \"TopScore\",\n type: \"N\",\n },\n ],\n ttl: {\n attributeName: \"TimeToExist\",\n enabled: false,\n },\n globalSecondaryIndexes: [{\n name: \"GameTitleIndex\",\n hashKey: \"GameTitle\",\n rangeKey: \"TopScore\",\n writeCapacity: 10,\n readCapacity: 10,\n projectionType: \"INCLUDE\",\n nonKeyAttributes: [\"UserId\"],\n }],\n tags: {\n Name: \"dynamodb-table-1\",\n Environment: \"production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbasic_dynamodb_table = aws.dynamodb.Table(\"basic-dynamodb-table\",\n name=\"GameScores\",\n billing_mode=\"PROVISIONED\",\n read_capacity=20,\n write_capacity=20,\n hash_key=\"UserId\",\n range_key=\"GameTitle\",\n attributes=[\n aws.dynamodb.TableAttributeArgs(\n name=\"UserId\",\n type=\"S\",\n ),\n aws.dynamodb.TableAttributeArgs(\n name=\"GameTitle\",\n type=\"S\",\n ),\n aws.dynamodb.TableAttributeArgs(\n name=\"TopScore\",\n type=\"N\",\n ),\n ],\n ttl=aws.dynamodb.TableTtlArgs(\n attribute_name=\"TimeToExist\",\n enabled=False,\n ),\n global_secondary_indexes=[aws.dynamodb.TableGlobalSecondaryIndexArgs(\n name=\"GameTitleIndex\",\n hash_key=\"GameTitle\",\n range_key=\"TopScore\",\n write_capacity=10,\n read_capacity=10,\n projection_type=\"INCLUDE\",\n non_key_attributes=[\"UserId\"],\n )],\n tags={\n \"Name\": \"dynamodb-table-1\",\n \"Environment\": \"production\",\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 basic_dynamodb_table = new Aws.DynamoDB.Table(\"basic-dynamodb-table\", new()\n {\n Name = \"GameScores\",\n BillingMode = \"PROVISIONED\",\n ReadCapacity = 20,\n WriteCapacity = 20,\n HashKey = \"UserId\",\n RangeKey = \"GameTitle\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"UserId\",\n Type = \"S\",\n },\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"GameTitle\",\n Type = \"S\",\n },\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"TopScore\",\n Type = \"N\",\n },\n },\n Ttl = new Aws.DynamoDB.Inputs.TableTtlArgs\n {\n AttributeName = \"TimeToExist\",\n Enabled = false,\n },\n GlobalSecondaryIndexes = new[]\n {\n new Aws.DynamoDB.Inputs.TableGlobalSecondaryIndexArgs\n {\n Name = \"GameTitleIndex\",\n HashKey = \"GameTitle\",\n RangeKey = \"TopScore\",\n WriteCapacity = 10,\n ReadCapacity = 10,\n ProjectionType = \"INCLUDE\",\n NonKeyAttributes = new[]\n {\n \"UserId\",\n },\n },\n },\n Tags = \n {\n { \"Name\", \"dynamodb-table-1\" },\n { \"Environment\", \"production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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 := dynamodb.NewTable(ctx, \"basic-dynamodb-table\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"GameScores\"),\n\t\t\tBillingMode: pulumi.String(\"PROVISIONED\"),\n\t\t\tReadCapacity: pulumi.Int(20),\n\t\t\tWriteCapacity: pulumi.Int(20),\n\t\t\tHashKey: pulumi.String(\"UserId\"),\n\t\t\tRangeKey: pulumi.String(\"GameTitle\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"UserId\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"GameTitle\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"TopScore\"),\n\t\t\t\t\tType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTtl: \u0026dynamodb.TableTtlArgs{\n\t\t\t\tAttributeName: pulumi.String(\"TimeToExist\"),\n\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tName: pulumi.String(\"GameTitleIndex\"),\n\t\t\t\t\tHashKey: pulumi.String(\"GameTitle\"),\n\t\t\t\t\tRangeKey: pulumi.String(\"TopScore\"),\n\t\t\t\t\tWriteCapacity: pulumi.Int(10),\n\t\t\t\t\tReadCapacity: pulumi.Int(10),\n\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"UserId\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"dynamodb-table-1\"),\n\t\t\t\t\"Environment\": pulumi.String(\"production\"),\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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableTtlArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableGlobalSecondaryIndexArgs;\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 basic_dynamodb_table = new Table(\"basic-dynamodb-table\", TableArgs.builder() \n .name(\"GameScores\")\n .billingMode(\"PROVISIONED\")\n .readCapacity(20)\n .writeCapacity(20)\n .hashKey(\"UserId\")\n .rangeKey(\"GameTitle\")\n .attributes( \n TableAttributeArgs.builder()\n .name(\"UserId\")\n .type(\"S\")\n .build(),\n TableAttributeArgs.builder()\n .name(\"GameTitle\")\n .type(\"S\")\n .build(),\n TableAttributeArgs.builder()\n .name(\"TopScore\")\n .type(\"N\")\n .build())\n .ttl(TableTtlArgs.builder()\n .attributeName(\"TimeToExist\")\n .enabled(false)\n .build())\n .globalSecondaryIndexes(TableGlobalSecondaryIndexArgs.builder()\n .name(\"GameTitleIndex\")\n .hashKey(\"GameTitle\")\n .rangeKey(\"TopScore\")\n .writeCapacity(10)\n .readCapacity(10)\n .projectionType(\"INCLUDE\")\n .nonKeyAttributes(\"UserId\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"Name\", \"dynamodb-table-1\"),\n Map.entry(\"Environment\", \"production\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n basic-dynamodb-table:\n type: aws:dynamodb:Table\n properties:\n name: GameScores\n billingMode: PROVISIONED\n readCapacity: 20\n writeCapacity: 20\n hashKey: UserId\n rangeKey: GameTitle\n attributes:\n - name: UserId\n type: S\n - name: GameTitle\n type: S\n - name: TopScore\n type: N\n ttl:\n attributeName: TimeToExist\n enabled: false\n globalSecondaryIndexes:\n - name: GameTitleIndex\n hashKey: GameTitle\n rangeKey: TopScore\n writeCapacity: 10\n readCapacity: 10\n projectionType: INCLUDE\n nonKeyAttributes:\n - UserId\n tags:\n Name: dynamodb-table-1\n Environment: production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Global Tables\n\nThis resource implements support for [DynamoDB Global Tables V2 (version 2019.11.21)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html) via `replica` configuration blocks. For working with [DynamoDB Global Tables V1 (version 2017.11.29)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V1.html), see the `aws.dynamodb.GlobalTable` resource.\n\n\u003e **Note:** aws.dynamodb.TableReplica is an alternate way of configuring Global Tables. Do not use `replica` configuration blocks of `aws.dynamodb.Table` together with aws_dynamodb_table_replica.\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.dynamodb.Table(\"example\", {\n name: \"example\",\n hashKey: \"TestTableHashKey\",\n billingMode: \"PAY_PER_REQUEST\",\n streamEnabled: true,\n streamViewType: \"NEW_AND_OLD_IMAGES\",\n attributes: [{\n name: \"TestTableHashKey\",\n type: \"S\",\n }],\n replicas: [\n {\n regionName: \"us-east-2\",\n },\n {\n regionName: \"us-west-2\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.dynamodb.Table(\"example\",\n name=\"example\",\n hash_key=\"TestTableHashKey\",\n billing_mode=\"PAY_PER_REQUEST\",\n stream_enabled=True,\n stream_view_type=\"NEW_AND_OLD_IMAGES\",\n attributes=[aws.dynamodb.TableAttributeArgs(\n name=\"TestTableHashKey\",\n type=\"S\",\n )],\n replicas=[\n aws.dynamodb.TableReplicaArgs(\n region_name=\"us-east-2\",\n ),\n aws.dynamodb.TableReplicaArgs(\n region_name=\"us-west-2\",\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.DynamoDB.Table(\"example\", new()\n {\n Name = \"example\",\n HashKey = \"TestTableHashKey\",\n BillingMode = \"PAY_PER_REQUEST\",\n StreamEnabled = true,\n StreamViewType = \"NEW_AND_OLD_IMAGES\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"TestTableHashKey\",\n Type = \"S\",\n },\n },\n Replicas = new[]\n {\n new Aws.DynamoDB.Inputs.TableReplicaArgs\n {\n RegionName = \"us-east-2\",\n },\n new Aws.DynamoDB.Inputs.TableReplicaArgs\n {\n RegionName = \"us-west-2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb\"\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 := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tHashKey: pulumi.String(\"TestTableHashKey\"),\n\t\t\tBillingMode: pulumi.String(\"PAY_PER_REQUEST\"),\n\t\t\tStreamEnabled: pulumi.Bool(true),\n\t\t\tStreamViewType: pulumi.String(\"NEW_AND_OLD_IMAGES\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"TestTableHashKey\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReplicas: dynamodb.TableReplicaTypeArray{\n\t\t\t\t\u0026dynamodb.TableReplicaTypeArgs{\n\t\t\t\t\tRegionName: pulumi.String(\"us-east-2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableReplicaTypeArgs{\n\t\t\t\t\tRegionName: pulumi.String(\"us-west-2\"),\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.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableReplicaArgs;\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 Table(\"example\", TableArgs.builder() \n .name(\"example\")\n .hashKey(\"TestTableHashKey\")\n .billingMode(\"PAY_PER_REQUEST\")\n .streamEnabled(true)\n .streamViewType(\"NEW_AND_OLD_IMAGES\")\n .attributes(TableAttributeArgs.builder()\n .name(\"TestTableHashKey\")\n .type(\"S\")\n .build())\n .replicas( \n TableReplicaArgs.builder()\n .regionName(\"us-east-2\")\n .build(),\n TableReplicaArgs.builder()\n .regionName(\"us-west-2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n name: example\n hashKey: TestTableHashKey\n billingMode: PAY_PER_REQUEST\n streamEnabled: true\n streamViewType: NEW_AND_OLD_IMAGES\n attributes:\n - name: TestTableHashKey\n type: S\n replicas:\n - regionName: us-east-2\n - regionName: us-west-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Replica Tagging\n\nYou can manage global table replicas' tags in various ways. This example shows using `replica.*.propagate_tags` for the first replica and the `aws.dynamodb.Tag` resource for the other.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as std from \"@pulumi/std\";\n\nconst current = aws.getRegion({});\nconst alternate = aws.getRegion({});\nconst third = aws.getRegion({});\nconst example = new aws.dynamodb.Table(\"example\", {\n billingMode: \"PAY_PER_REQUEST\",\n hashKey: \"TestTableHashKey\",\n name: \"example-13281\",\n streamEnabled: true,\n streamViewType: \"NEW_AND_OLD_IMAGES\",\n attributes: [{\n name: \"TestTableHashKey\",\n type: \"S\",\n }],\n replicas: [\n {\n regionName: alternate.then(alternate =\u003e alternate.name),\n },\n {\n regionName: third.then(third =\u003e third.name),\n propagateTags: true,\n },\n ],\n tags: {\n Architect: \"Eleanor\",\n Zone: \"SW\",\n },\n});\nconst exampleTag = new aws.dynamodb.Tag(\"example\", {\n resourceArn: pulumi.all([example.arn, current, alternate]).apply(([arn, current, alternate]) =\u003e std.replaceOutput({\n text: arn,\n search: current.name,\n replace: alternate.name,\n })).apply(invoke =\u003e invoke.result),\n key: \"Architect\",\n value: \"Gigi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_std as std\n\ncurrent = aws.get_region()\nalternate = aws.get_region()\nthird = aws.get_region()\nexample = aws.dynamodb.Table(\"example\",\n billing_mode=\"PAY_PER_REQUEST\",\n hash_key=\"TestTableHashKey\",\n name=\"example-13281\",\n stream_enabled=True,\n stream_view_type=\"NEW_AND_OLD_IMAGES\",\n attributes=[aws.dynamodb.TableAttributeArgs(\n name=\"TestTableHashKey\",\n type=\"S\",\n )],\n replicas=[\n aws.dynamodb.TableReplicaArgs(\n region_name=alternate.name,\n ),\n aws.dynamodb.TableReplicaArgs(\n region_name=third.name,\n propagate_tags=True,\n ),\n ],\n tags={\n \"Architect\": \"Eleanor\",\n \"Zone\": \"SW\",\n })\nexample_tag = aws.dynamodb.Tag(\"example\",\n resource_arn=example.arn.apply(lambda arn: std.replace_output(text=arn,\n search=current.name,\n replace=alternate.name)).apply(lambda invoke: invoke.result),\n key=\"Architect\",\n value=\"Gigi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetRegion.Invoke();\n\n var alternate = Aws.GetRegion.Invoke();\n\n var third = Aws.GetRegion.Invoke();\n\n var example = new Aws.DynamoDB.Table(\"example\", new()\n {\n BillingMode = \"PAY_PER_REQUEST\",\n HashKey = \"TestTableHashKey\",\n Name = \"example-13281\",\n StreamEnabled = true,\n StreamViewType = \"NEW_AND_OLD_IMAGES\",\n Attributes = new[]\n {\n new Aws.DynamoDB.Inputs.TableAttributeArgs\n {\n Name = \"TestTableHashKey\",\n Type = \"S\",\n },\n },\n Replicas = new[]\n {\n new Aws.DynamoDB.Inputs.TableReplicaArgs\n {\n RegionName = alternate.Apply(getRegionResult =\u003e getRegionResult.Name),\n },\n new Aws.DynamoDB.Inputs.TableReplicaArgs\n {\n RegionName = third.Apply(getRegionResult =\u003e getRegionResult.Name),\n PropagateTags = true,\n },\n },\n Tags = \n {\n { \"Architect\", \"Eleanor\" },\n { \"Zone\", \"SW\" },\n },\n });\n\n var exampleTag = new Aws.DynamoDB.Tag(\"example\", new()\n {\n ResourceArn = Output.Tuple(example.Arn, current, alternate).Apply(values =\u003e\n {\n var arn = values.Item1;\n var current = values.Item2;\n var alternate = values.Item3;\n return Std.Replace.Invoke(new()\n {\n Text = arn,\n Search = current.Apply(getRegionResult =\u003e getRegionResult.Name),\n Replace = alternate.Apply(getRegionResult =\u003e getRegionResult.Name),\n });\n }).Apply(invoke =\u003e invoke.Result),\n Key = \"Architect\",\n Value = \"Gigi\",\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/dynamodb\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\talternate, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthird, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := dynamodb.NewTable(ctx, \"example\", \u0026dynamodb.TableArgs{\n\t\t\tBillingMode: pulumi.String(\"PAY_PER_REQUEST\"),\n\t\t\tHashKey: pulumi.String(\"TestTableHashKey\"),\n\t\t\tName: pulumi.String(\"example-13281\"),\n\t\t\tStreamEnabled: pulumi.Bool(true),\n\t\t\tStreamViewType: pulumi.String(\"NEW_AND_OLD_IMAGES\"),\n\t\t\tAttributes: dynamodb.TableAttributeArray{\n\t\t\t\t\u0026dynamodb.TableAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"TestTableHashKey\"),\n\t\t\t\t\tType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReplicas: dynamodb.TableReplicaTypeArray{\n\t\t\t\t\u0026dynamodb.TableReplicaTypeArgs{\n\t\t\t\t\tRegionName: pulumi.String(alternate.Name),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableReplicaTypeArgs{\n\t\t\t\t\tRegionName: pulumi.String(third.Name),\n\t\t\t\t\tPropagateTags: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Architect\": pulumi.String(\"Eleanor\"),\n\t\t\t\t\"Zone\": pulumi.String(\"SW\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dynamodb.NewTag(ctx, \"example\", \u0026dynamodb.TagArgs{\n\t\t\tResourceArn: example.Arn.ApplyT(func(arn string) (std.ReplaceResult, error) {\n\t\t\t\treturn std.ReplaceOutput(ctx, std.ReplaceOutputArgs{\n\t\t\t\t\tText: arn,\n\t\t\t\t\tSearch: current.Name,\n\t\t\t\t\tReplace: alternate.Name,\n\t\t\t\t}, nil), nil\n\t\t\t}).(std.ReplaceResultOutput).ApplyT(func(invoke std.ReplaceResult) (*string, error) {\n\t\t\t\treturn invoke.Result, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tKey: pulumi.String(\"Architect\"),\n\t\t\tValue: pulumi.String(\"Gigi\"),\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.GetRegionArgs;\nimport com.pulumi.aws.dynamodb.Table;\nimport com.pulumi.aws.dynamodb.TableArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableAttributeArgs;\nimport com.pulumi.aws.dynamodb.inputs.TableReplicaArgs;\nimport com.pulumi.aws.dynamodb.Tag;\nimport com.pulumi.aws.dynamodb.TagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var alternate = AwsFunctions.getRegion();\n\n final var third = AwsFunctions.getRegion();\n\n var example = new Table(\"example\", TableArgs.builder() \n .billingMode(\"PAY_PER_REQUEST\")\n .hashKey(\"TestTableHashKey\")\n .name(\"example-13281\")\n .streamEnabled(true)\n .streamViewType(\"NEW_AND_OLD_IMAGES\")\n .attributes(TableAttributeArgs.builder()\n .name(\"TestTableHashKey\")\n .type(\"S\")\n .build())\n .replicas( \n TableReplicaArgs.builder()\n .regionName(alternate.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .build(),\n TableReplicaArgs.builder()\n .regionName(third.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .propagateTags(true)\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"Architect\", \"Eleanor\"),\n Map.entry(\"Zone\", \"SW\")\n ))\n .build());\n\n var exampleTag = new Tag(\"exampleTag\", TagArgs.builder() \n .resourceArn(example.arn().applyValue(arn -\u003e StdFunctions.replace()).applyValue(invoke -\u003e invoke.result()))\n .key(\"Architect\")\n .value(\"Gigi\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:dynamodb:Table\n properties:\n billingMode: PAY_PER_REQUEST\n hashKey: TestTableHashKey\n name: example-13281\n streamEnabled: true\n streamViewType: NEW_AND_OLD_IMAGES\n attributes:\n - name: TestTableHashKey\n type: S\n replicas:\n - regionName: ${alternate.name}\n - regionName: ${third.name}\n propagateTags: true\n tags:\n Architect: Eleanor\n Zone: SW\n exampleTag:\n type: aws:dynamodb:Tag\n name: example\n properties:\n resourceArn:\n fn::invoke:\n Function: std:replace\n Arguments:\n text: ${example.arn}\n search: ${current.name}\n replace: ${alternate.name}\n Return: result\n key: Architect\n value: Gigi\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n alternate:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n third:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import DynamoDB tables using the `name`. For example:\n\n```sh\n$ pulumi import aws:dynamodb/table:Table basic-dynamodb-table GameScores\n```\n", "properties": { @@ -214741,6 +215327,73 @@ "type": "object" } }, + "aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults": { + "description": "Manages regional EC2 instance metadata default settings.\nMore information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide.\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 enforce_imdsv2 = new aws.ec2.InstanceMetadataDefaults(\"enforce-imdsv2\", {\n httpTokens: \"required\",\n httpPutResponseHopLimit: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nenforce_imdsv2 = aws.ec2.InstanceMetadataDefaults(\"enforce-imdsv2\",\n http_tokens=\"required\",\n http_put_response_hop_limit=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 enforce_imdsv2 = new Aws.Ec2.InstanceMetadataDefaults(\"enforce-imdsv2\", new()\n {\n HttpTokens = \"required\",\n HttpPutResponseHopLimit = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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 := ec2.NewInstanceMetadataDefaults(ctx, \"enforce-imdsv2\", \u0026ec2.InstanceMetadataDefaultsArgs{\n\t\t\tHttpTokens: pulumi.String(\"required\"),\n\t\t\tHttpPutResponseHopLimit: 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.ec2.InstanceMetadataDefaults;\nimport com.pulumi.aws.ec2.InstanceMetadataDefaultsArgs;\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 enforce_imdsv2 = new InstanceMetadataDefaults(\"enforce-imdsv2\", InstanceMetadataDefaultsArgs.builder() \n .httpTokens(\"required\")\n .httpPutResponseHopLimit(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n enforce-imdsv2:\n type: aws:ec2:InstanceMetadataDefaults\n properties:\n httpTokens: required\n httpPutResponseHopLimit: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import this resource.\n\n", + "properties": { + "httpEndpoint": { + "type": "string", + "description": "Whether the metadata service is available. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "httpPutResponseHopLimit": { + "type": "integer", + "description": "The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.\n" + }, + "httpTokens": { + "type": "string", + "description": "Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `\"optional\"`, `\"required\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "instanceMetadataTags": { + "type": "string", + "description": "Enables or disables access to instance tags from the instance metadata service. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + } + }, + "required": [ + "httpEndpoint", + "httpPutResponseHopLimit", + "httpTokens", + "instanceMetadataTags" + ], + "inputProperties": { + "httpEndpoint": { + "type": "string", + "description": "Whether the metadata service is available. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "httpPutResponseHopLimit": { + "type": "integer", + "description": "The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.\n" + }, + "httpTokens": { + "type": "string", + "description": "Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `\"optional\"`, `\"required\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "instanceMetadataTags": { + "type": "string", + "description": "Enables or disables access to instance tags from the instance metadata service. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering InstanceMetadataDefaults resources.\n", + "properties": { + "httpEndpoint": { + "type": "string", + "description": "Whether the metadata service is available. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "httpPutResponseHopLimit": { + "type": "integer", + "description": "The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`.\n" + }, + "httpTokens": { + "type": "string", + "description": "Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `\"optional\"`, `\"required\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + }, + "instanceMetadataTags": { + "type": "string", + "description": "Enables or disables access to instance tags from the instance metadata service. Can be `\"enabled\"`, `\"disabled\"`, or `\"no-preference\"`. Default: `\"no-preference\"`.\n" + } + }, + "type": "object" + } + }, "aws:ec2/internetGateway:InternetGateway": { "description": "Provides a resource to create a VPC Internet Gateway.\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 gw = new aws.ec2.InternetGateway(\"gw\", {\n vpcId: main.id,\n tags: {\n Name: \"main\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ngw = aws.ec2.InternetGateway(\"gw\",\n vpc_id=main[\"id\"],\n tags={\n \"Name\": \"main\",\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 gw = new Aws.Ec2.InternetGateway(\"gw\", new()\n {\n VpcId = main.Id,\n Tags = \n {\n { \"Name\", \"main\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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 := ec2.NewInternetGateway(ctx, \"gw\", \u0026ec2.InternetGatewayArgs{\n\t\t\tVpcId: pulumi.Any(main.Id),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"main\"),\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.ec2.InternetGateway;\nimport com.pulumi.aws.ec2.InternetGatewayArgs;\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 gw = new InternetGateway(\"gw\", InternetGatewayArgs.builder() \n .vpcId(main.id())\n .tags(Map.of(\"Name\", \"main\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n gw:\n type: aws:ec2:InternetGateway\n properties:\n vpcId: ${main.id}\n tags:\n Name: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Internet Gateways using the `id`. For example:\n\n```sh\n$ pulumi import aws:ec2/internetGateway:InternetGateway gw igw-c0a643a9\n```\n", "properties": { @@ -221710,7 +222363,8 @@ "description": "The ID of the security group created by default on VPC creation\n" }, "dhcpOptionsId": { - "type": "string" + "type": "string", + "description": "DHCP options id of the desired VPC.\n" }, "enableDnsHostnames": { "type": "boolean", @@ -221885,7 +222539,8 @@ "description": "The ID of the security group created by default on VPC creation\n" }, "dhcpOptionsId": { - "type": "string" + "type": "string", + "description": "DHCP options id of the desired VPC.\n" }, "enableDnsHostnames": { "type": "boolean", @@ -223160,6 +223815,10 @@ }, "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", "deprecationMessage": "Please use `tags` instead." + }, + "tier": { + "type": "string", + "description": "specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`.\n" } }, "required": [ @@ -223194,6 +223853,10 @@ "type": "string" }, "description": "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.\n" + }, + "tier": { + "type": "string", + "description": "specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`.\n" } }, "requiredInputs": [ @@ -223255,6 +223918,10 @@ }, "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", "deprecationMessage": "Please use `tags` instead." + }, + "tier": { + "type": "string", + "description": "specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`.\n" } }, "type": "object" @@ -224880,7 +225547,7 @@ }, "remoteIpv6NetworkCidr": { "type": "string", - "description": "The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.\n" + "description": "The IPv6 CIDR on the AWS side of the VPN connection.\n" }, "routes": { "type": "array", @@ -225250,7 +225917,7 @@ }, "remoteIpv6NetworkCidr": { "type": "string", - "description": "The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.\n" + "description": "The IPv6 CIDR on the AWS side of the VPN connection.\n" }, "staticRoutesOnly": { "type": "boolean", @@ -225546,7 +226213,7 @@ }, "remoteIpv6NetworkCidr": { "type": "string", - "description": "The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.\n" + "description": "The IPv6 CIDR on the AWS side of the VPN connection.\n" }, "routes": { "type": "array", @@ -247161,7 +247828,7 @@ } }, "aws:glacier/vaultLock:VaultLock": { - "description": "Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality.\n\n\u003e **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `complete_lock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `complete_lock` argument to `true`. When changing `complete_lock` to `true`, it is expected the resource will show as recreating.\n\n!\u003e **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignore_deletion_error` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management.\n\n## Example Usage\n\n### Testing Glacier Vault Lock Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleVault = new aws.glacier.Vault(\"example\", {name: \"example\"});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [{\n actions: [\"glacier:DeleteArchive\"],\n effect: \"Deny\",\n resources: [exampleVault.arn],\n conditions: [{\n test: \"NumericLessThanEquals\",\n variable: \"glacier:ArchiveAgeinDays\",\n values: [\"365\"],\n }],\n }],\n});\nconst exampleVaultLock = new aws.glacier.VaultLock(\"example\", {\n completeLock: false,\n policy: example.apply(example =\u003e example.json),\n vaultName: exampleVault.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_vault = aws.glacier.Vault(\"example\", name=\"example\")\nexample = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"glacier:DeleteArchive\"],\n effect=\"Deny\",\n resources=[example_vault.arn],\n conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs(\n test=\"NumericLessThanEquals\",\n variable=\"glacier:ArchiveAgeinDays\",\n values=[\"365\"],\n )],\n)])\nexample_vault_lock = aws.glacier.VaultLock(\"example\",\n complete_lock=False,\n policy=example.json,\n vault_name=example_vault.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 exampleVault = new Aws.Glacier.Vault(\"example\", new()\n {\n Name = \"example\",\n });\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"glacier:DeleteArchive\",\n },\n Effect = \"Deny\",\n Resources = new[]\n {\n exampleVault.Arn,\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"NumericLessThanEquals\",\n Variable = \"glacier:ArchiveAgeinDays\",\n Values = new[]\n {\n \"365\",\n },\n },\n },\n },\n },\n });\n\n var exampleVaultLock = new Aws.Glacier.VaultLock(\"example\", new()\n {\n CompleteLock = false,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n VaultName = exampleVault.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glacier\"\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\texampleVault, err := glacier.NewVault(ctx, \"example\", \u0026glacier.VaultArgs{\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\texample := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"glacier:DeleteArchive\"),\n\t\t\t\t\t},\n\t\t\t\t\tEffect: pulumi.String(\"Deny\"),\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleVault.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(\"NumericLessThanEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"glacier:ArchiveAgeinDays\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"365\"),\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\t_, err = glacier.NewVaultLock(ctx, \"example\", \u0026glacier.VaultLockArgs{\n\t\t\tCompleteLock: pulumi.Bool(false),\n\t\t\tPolicy: 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\tVaultName: exampleVault.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.glacier.Vault;\nimport com.pulumi.aws.glacier.VaultArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.glacier.VaultLock;\nimport com.pulumi.aws.glacier.VaultLockArgs;\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 exampleVault = new Vault(\"exampleVault\", VaultArgs.builder() \n .name(\"example\")\n .build());\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"glacier:DeleteArchive\")\n .effect(\"Deny\")\n .resources(exampleVault.arn())\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"NumericLessThanEquals\")\n .variable(\"glacier:ArchiveAgeinDays\")\n .values(\"365\")\n .build())\n .build())\n .build());\n\n var exampleVaultLock = new VaultLock(\"exampleVaultLock\", VaultLockArgs.builder() \n .completeLock(false)\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .vaultName(exampleVault.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleVault:\n type: aws:glacier:Vault\n name: example\n properties:\n name: example\n exampleVaultLock:\n type: aws:glacier:VaultLock\n name: example\n properties:\n completeLock: false\n policy: ${example.json}\n vaultName: ${exampleVault.name}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - glacier:DeleteArchive\n effect: Deny\n resources:\n - ${exampleVault.arn}\n conditions:\n - test: NumericLessThanEquals\n variable: glacier:ArchiveAgeinDays\n values:\n - '365'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Permanently Applying Glacier Vault Lock Policy\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.glacier.VaultLock(\"example\", {\n completeLock: true,\n policy: exampleAwsIamPolicyDocument.json,\n vaultName: exampleAwsGlacierVault.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glacier.VaultLock(\"example\",\n complete_lock=True,\n policy=example_aws_iam_policy_document[\"json\"],\n vault_name=example_aws_glacier_vault[\"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 example = new Aws.Glacier.VaultLock(\"example\", new()\n {\n CompleteLock = true,\n Policy = exampleAwsIamPolicyDocument.Json,\n VaultName = exampleAwsGlacierVault.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glacier\"\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 := glacier.NewVaultLock(ctx, \"example\", \u0026glacier.VaultLockArgs{\n\t\t\tCompleteLock: pulumi.Bool(true),\n\t\t\tPolicy: pulumi.Any(exampleAwsIamPolicyDocument.Json),\n\t\t\tVaultName: pulumi.Any(exampleAwsGlacierVault.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.glacier.VaultLock;\nimport com.pulumi.aws.glacier.VaultLockArgs;\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 VaultLock(\"example\", VaultLockArgs.builder() \n .completeLock(true)\n .policy(exampleAwsIamPolicyDocument.json())\n .vaultName(exampleAwsGlacierVault.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glacier:VaultLock\n properties:\n completeLock: true\n policy: ${exampleAwsIamPolicyDocument.json}\n vaultName: ${exampleAwsGlacierVault.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Glacier Vault Locks using the Glacier Vault name. For example:\n\n```sh\n$ pulumi import aws:glacier/vaultLock:VaultLock example example-vault\n```\n", + "description": "## Example Usage\n\n### Testing Glacier Vault Lock Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleVault = new aws.glacier.Vault(\"example\", {name: \"example\"});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [{\n actions: [\"glacier:DeleteArchive\"],\n effect: \"Deny\",\n resources: [exampleVault.arn],\n conditions: [{\n test: \"NumericLessThanEquals\",\n variable: \"glacier:ArchiveAgeinDays\",\n values: [\"365\"],\n }],\n }],\n});\nconst exampleVaultLock = new aws.glacier.VaultLock(\"example\", {\n completeLock: false,\n policy: example.apply(example =\u003e example.json),\n vaultName: exampleVault.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_vault = aws.glacier.Vault(\"example\", name=\"example\")\nexample = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"glacier:DeleteArchive\"],\n effect=\"Deny\",\n resources=[example_vault.arn],\n conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs(\n test=\"NumericLessThanEquals\",\n variable=\"glacier:ArchiveAgeinDays\",\n values=[\"365\"],\n )],\n)])\nexample_vault_lock = aws.glacier.VaultLock(\"example\",\n complete_lock=False,\n policy=example.json,\n vault_name=example_vault.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 exampleVault = new Aws.Glacier.Vault(\"example\", new()\n {\n Name = \"example\",\n });\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"glacier:DeleteArchive\",\n },\n Effect = \"Deny\",\n Resources = new[]\n {\n exampleVault.Arn,\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"NumericLessThanEquals\",\n Variable = \"glacier:ArchiveAgeinDays\",\n Values = new[]\n {\n \"365\",\n },\n },\n },\n },\n },\n });\n\n var exampleVaultLock = new Aws.Glacier.VaultLock(\"example\", new()\n {\n CompleteLock = false,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n VaultName = exampleVault.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glacier\"\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\texampleVault, err := glacier.NewVault(ctx, \"example\", \u0026glacier.VaultArgs{\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\texample := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{\n\t\t\tStatements: iam.GetPolicyDocumentStatementArray{\n\t\t\t\t\u0026iam.GetPolicyDocumentStatementArgs{\n\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"glacier:DeleteArchive\"),\n\t\t\t\t\t},\n\t\t\t\t\tEffect: pulumi.String(\"Deny\"),\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleVault.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(\"NumericLessThanEquals\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"glacier:ArchiveAgeinDays\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"365\"),\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\t_, err = glacier.NewVaultLock(ctx, \"example\", \u0026glacier.VaultLockArgs{\n\t\t\tCompleteLock: pulumi.Bool(false),\n\t\t\tPolicy: 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\tVaultName: exampleVault.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.glacier.Vault;\nimport com.pulumi.aws.glacier.VaultArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.glacier.VaultLock;\nimport com.pulumi.aws.glacier.VaultLockArgs;\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 exampleVault = new Vault(\"exampleVault\", VaultArgs.builder() \n .name(\"example\")\n .build());\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"glacier:DeleteArchive\")\n .effect(\"Deny\")\n .resources(exampleVault.arn())\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"NumericLessThanEquals\")\n .variable(\"glacier:ArchiveAgeinDays\")\n .values(\"365\")\n .build())\n .build())\n .build());\n\n var exampleVaultLock = new VaultLock(\"exampleVaultLock\", VaultLockArgs.builder() \n .completeLock(false)\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .vaultName(exampleVault.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleVault:\n type: aws:glacier:Vault\n name: example\n properties:\n name: example\n exampleVaultLock:\n type: aws:glacier:VaultLock\n name: example\n properties:\n completeLock: false\n policy: ${example.json}\n vaultName: ${exampleVault.name}\nvariables:\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - glacier:DeleteArchive\n effect: Deny\n resources:\n - ${exampleVault.arn}\n conditions:\n - test: NumericLessThanEquals\n variable: glacier:ArchiveAgeinDays\n values:\n - '365'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Permanently Applying Glacier Vault Lock Policy\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.glacier.VaultLock(\"example\", {\n completeLock: true,\n policy: exampleAwsIamPolicyDocument.json,\n vaultName: exampleAwsGlacierVault.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glacier.VaultLock(\"example\",\n complete_lock=True,\n policy=example_aws_iam_policy_document[\"json\"],\n vault_name=example_aws_glacier_vault[\"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 example = new Aws.Glacier.VaultLock(\"example\", new()\n {\n CompleteLock = true,\n Policy = exampleAwsIamPolicyDocument.Json,\n VaultName = exampleAwsGlacierVault.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/glacier\"\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 := glacier.NewVaultLock(ctx, \"example\", \u0026glacier.VaultLockArgs{\n\t\t\tCompleteLock: pulumi.Bool(true),\n\t\t\tPolicy: pulumi.Any(exampleAwsIamPolicyDocument.Json),\n\t\t\tVaultName: pulumi.Any(exampleAwsGlacierVault.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.glacier.VaultLock;\nimport com.pulumi.aws.glacier.VaultLockArgs;\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 VaultLock(\"example\", VaultLockArgs.builder() \n .completeLock(true)\n .policy(exampleAwsIamPolicyDocument.json())\n .vaultName(exampleAwsGlacierVault.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glacier:VaultLock\n properties:\n completeLock: true\n policy: ${exampleAwsIamPolicyDocument.json}\n vaultName: ${exampleAwsGlacierVault.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Glacier Vault Locks using the Glacier Vault name. For example:\n\n```sh\n$ pulumi import aws:glacier/vaultLock:VaultLock example example-vault\n```\n", "properties": { "completeLock": { "type": "boolean", @@ -253523,7 +254190,7 @@ } }, "aws:iam/groupPolicy:GroupPolicy": { - "description": "Provides an IAM policy attached to a group.\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 myDevelopers = new aws.iam.Group(\"my_developers\", {\n name: \"developers\",\n path: \"/users/\",\n});\nconst myDeveloperPolicy = new aws.iam.GroupPolicy(\"my_developer_policy\", {\n name: \"my_developer_policy\",\n group: myDevelopers.name,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmy_developers = aws.iam.Group(\"my_developers\",\n name=\"developers\",\n path=\"/users/\")\nmy_developer_policy = aws.iam.GroupPolicy(\"my_developer_policy\",\n name=\"my_developer_policy\",\n group=my_developers.name,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 myDevelopers = new Aws.Iam.Group(\"my_developers\", new()\n {\n Name = \"developers\",\n Path = \"/users/\",\n });\n\n var myDeveloperPolicy = new Aws.Iam.GroupPolicy(\"my_developer_policy\", new()\n {\n Name = \"my_developer_policy\",\n Group = myDevelopers.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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\tmyDevelopers, err := iam.NewGroup(ctx, \"my_developers\", \u0026iam.GroupArgs{\n\t\t\tName: pulumi.String(\"developers\"),\n\t\t\tPath: pulumi.String(\"/users/\"),\n\t\t})\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewGroupPolicy(ctx, \"my_developer_policy\", \u0026iam.GroupPolicyArgs{\n\t\t\tName: pulumi.String(\"my_developer_policy\"),\n\t\t\tGroup: myDevelopers.Name,\n\t\t\tPolicy: pulumi.String(json0),\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.Group;\nimport com.pulumi.aws.iam.GroupArgs;\nimport com.pulumi.aws.iam.GroupPolicy;\nimport com.pulumi.aws.iam.GroupPolicyArgs;\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 myDevelopers = new Group(\"myDevelopers\", GroupArgs.builder() \n .name(\"developers\")\n .path(\"/users/\")\n .build());\n\n var myDeveloperPolicy = new GroupPolicy(\"myDeveloperPolicy\", GroupPolicyArgs.builder() \n .name(\"my_developer_policy\")\n .group(myDevelopers.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDeveloperPolicy:\n type: aws:iam:GroupPolicy\n name: my_developer_policy\n properties:\n name: my_developer_policy\n group: ${myDevelopers.name}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n myDevelopers:\n type: aws:iam:Group\n name: my_developers\n properties:\n name: developers\n path: /users/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Group Policies using the `group_name:group_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/groupPolicy:GroupPolicy mypolicy group_of_mypolicy_name:mypolicy_name\n```\n", + "description": "Provides an IAM policy attached to a group.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 myDevelopers = new aws.iam.Group(\"my_developers\", {\n name: \"developers\",\n path: \"/users/\",\n});\nconst myDeveloperPolicy = new aws.iam.GroupPolicy(\"my_developer_policy\", {\n name: \"my_developer_policy\",\n group: myDevelopers.name,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nmy_developers = aws.iam.Group(\"my_developers\",\n name=\"developers\",\n path=\"/users/\")\nmy_developer_policy = aws.iam.GroupPolicy(\"my_developer_policy\",\n name=\"my_developer_policy\",\n group=my_developers.name,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 myDevelopers = new Aws.Iam.Group(\"my_developers\", new()\n {\n Name = \"developers\",\n Path = \"/users/\",\n });\n\n var myDeveloperPolicy = new Aws.Iam.GroupPolicy(\"my_developer_policy\", new()\n {\n Name = \"my_developer_policy\",\n Group = myDevelopers.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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\tmyDevelopers, err := iam.NewGroup(ctx, \"my_developers\", \u0026iam.GroupArgs{\n\t\t\tName: pulumi.String(\"developers\"),\n\t\t\tPath: pulumi.String(\"/users/\"),\n\t\t})\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewGroupPolicy(ctx, \"my_developer_policy\", \u0026iam.GroupPolicyArgs{\n\t\t\tName: pulumi.String(\"my_developer_policy\"),\n\t\t\tGroup: myDevelopers.Name,\n\t\t\tPolicy: pulumi.String(json0),\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.Group;\nimport com.pulumi.aws.iam.GroupArgs;\nimport com.pulumi.aws.iam.GroupPolicy;\nimport com.pulumi.aws.iam.GroupPolicyArgs;\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 myDevelopers = new Group(\"myDevelopers\", GroupArgs.builder() \n .name(\"developers\")\n .path(\"/users/\")\n .build());\n\n var myDeveloperPolicy = new GroupPolicy(\"myDeveloperPolicy\", GroupPolicyArgs.builder() \n .name(\"my_developer_policy\")\n .group(myDevelopers.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myDeveloperPolicy:\n type: aws:iam:GroupPolicy\n name: my_developer_policy\n properties:\n name: my_developer_policy\n group: ${myDevelopers.name}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n myDevelopers:\n type: aws:iam:Group\n name: my_developers\n properties:\n name: developers\n path: /users/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Group Policies using the `group_name:group_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/groupPolicy:GroupPolicy mypolicy group_of_mypolicy_name:mypolicy_name\n```\n", "properties": { "group": { "type": "string", @@ -253688,7 +254355,7 @@ } }, "aws:iam/instanceProfile:InstanceProfile": { - "description": "Provides an IAM instance profile.\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 assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {\n name: \"test_role\",\n path: \"/\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst testProfile = new aws.iam.InstanceProfile(\"test_profile\", {\n name: \"test_profile\",\n role: role.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nrole = aws.iam.Role(\"role\",\n name=\"test_role\",\n path=\"/\",\n assume_role_policy=assume_role.json)\ntest_profile = aws.iam.InstanceProfile(\"test_profile\",\n name=\"test_profile\",\n role=role.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 assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n Name = \"test_role\",\n Path = \"/\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var testProfile = new Aws.Iam.InstanceProfile(\"test_profile\", new()\n {\n Name = \"test_profile\",\n Role = role.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.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: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewInstanceProfile(ctx, \"test_profile\", \u0026iam.InstanceProfileArgs{\n\t\t\tName: pulumi.String(\"test_profile\"),\n\t\t\tRole: role.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.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.InstanceProfile;\nimport com.pulumi.aws.iam.InstanceProfileArgs;\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 assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder() \n .name(\"test_role\")\n .path(\"/\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var testProfile = new InstanceProfile(\"testProfile\", InstanceProfileArgs.builder() \n .name(\"test_profile\")\n .role(role.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testProfile:\n type: aws:iam:InstanceProfile\n name: test_profile\n properties:\n name: test_profile\n role: ${role.name}\n role:\n type: aws:iam:Role\n properties:\n name: test_role\n path: /\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Instance Profiles using the `name`. For example:\n\n```sh\n$ pulumi import aws:iam/instanceProfile:InstanceProfile test_profile app-instance-profile-1\n```\n", + "description": "Provides an IAM instance profile.\n\n\u003e **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error.\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 assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst role = new aws.iam.Role(\"role\", {\n name: \"test_role\",\n path: \"/\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst testProfile = new aws.iam.InstanceProfile(\"test_profile\", {\n name: \"test_profile\",\n role: role.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nrole = aws.iam.Role(\"role\",\n name=\"test_role\",\n path=\"/\",\n assume_role_policy=assume_role.json)\ntest_profile = aws.iam.InstanceProfile(\"test_profile\",\n name=\"test_profile\",\n role=role.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 assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var role = new Aws.Iam.Role(\"role\", new()\n {\n Name = \"test_role\",\n Path = \"/\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var testProfile = new Aws.Iam.InstanceProfile(\"test_profile\", new()\n {\n Name = \"test_profile\",\n Role = role.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.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: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewInstanceProfile(ctx, \"test_profile\", \u0026iam.InstanceProfileArgs{\n\t\t\tName: pulumi.String(\"test_profile\"),\n\t\t\tRole: role.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.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.InstanceProfile;\nimport com.pulumi.aws.iam.InstanceProfileArgs;\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 assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var role = new Role(\"role\", RoleArgs.builder() \n .name(\"test_role\")\n .path(\"/\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var testProfile = new InstanceProfile(\"testProfile\", InstanceProfileArgs.builder() \n .name(\"test_profile\")\n .role(role.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testProfile:\n type: aws:iam:InstanceProfile\n name: test_profile\n properties:\n name: test_profile\n role: ${role.name}\n role:\n type: aws:iam:Role\n properties:\n name: test_role\n path: /\n assumeRolePolicy: ${assumeRole.json}\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n actions:\n - sts:AssumeRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Instance Profiles using the `name`. For example:\n\n```sh\n$ pulumi import aws:iam/instanceProfile:InstanceProfile test_profile app-instance-profile-1\n```\n", "properties": { "arn": { "type": "string", @@ -253700,7 +254367,7 @@ }, "name": { "type": "string", - "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed.\n" + "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error.\n" }, "namePrefix": { "type": "string", @@ -253745,7 +254412,7 @@ "inputProperties": { "name": { "type": "string", - "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed.\n", + "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error.\n", "willReplaceOnChanges": true }, "namePrefix": { @@ -253792,7 +254459,7 @@ }, "name": { "type": "string", - "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed.\n", + "description": "Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error.\n", "willReplaceOnChanges": true }, "namePrefix": { @@ -253970,11 +254637,11 @@ } }, "aws:iam/policy:Policy": { - "description": "Provides an IAM policy.\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 policy = new aws.iam.Policy(\"policy\", {\n name: \"test_policy\",\n path: \"/\",\n description: \"My test policy\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy = aws.iam.Policy(\"policy\",\n name=\"test_policy\",\n path=\"/\",\n description=\"My test policy\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 policy = new Aws.Iam.Policy(\"policy\", new()\n {\n Name = \"test_policy\",\n Path = \"/\",\n Description = \"My test policy\",\n PolicyDocument = 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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"test_policy\"),\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tDescription: pulumi.String(\"My test policy\"),\n\t\t\tPolicy: pulumi.String(json0),\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.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\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 policy = new Policy(\"policy\", PolicyArgs.builder() \n .name(\"test_policy\")\n .path(\"/\")\n .description(\"My test policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy:\n type: aws:iam:Policy\n properties:\n name: test_policy\n path: /\n description: My test policy\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Policies using the `arn`. For example:\n\n```sh\n$ pulumi import aws:iam/policy:Policy administrator arn:aws:iam::123456789012:policy/UsersManageOwnCredentials\n```\n", + "description": "Provides an IAM policy.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 policy = new aws.iam.Policy(\"policy\", {\n name: \"test_policy\",\n path: \"/\",\n description: \"My test policy\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy = aws.iam.Policy(\"policy\",\n name=\"test_policy\",\n path=\"/\",\n description=\"My test policy\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 policy = new Aws.Iam.Policy(\"policy\", new()\n {\n Name = \"test_policy\",\n Path = \"/\",\n Description = \"My test policy\",\n PolicyDocument = 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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"test_policy\"),\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tDescription: pulumi.String(\"My test policy\"),\n\t\t\tPolicy: pulumi.String(json0),\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.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\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 policy = new Policy(\"policy\", PolicyArgs.builder() \n .name(\"test_policy\")\n .path(\"/\")\n .description(\"My test policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n policy:\n type: aws:iam:Policy\n properties:\n name: test_policy\n path: /\n description: My test policy\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Policies using the `arn`. For example:\n\n```sh\n$ pulumi import aws:iam/policy:Policy administrator arn:aws:iam::123456789012:policy/UsersManageOwnCredentials\n```\n", "properties": { "arn": { "type": "string", - "description": "The ARN assigned by AWS to this policy.\n" + "description": "ARN assigned by AWS to this policy.\n" }, "description": { "type": "string", @@ -253982,7 +254649,7 @@ }, "name": { "type": "string", - "description": "The name of the policy. If omitted, the provider will assign a random, unique name.\n" + "description": "Name of the policy. If omitted, the provider will assign a random, unique name.\n" }, "namePrefix": { "type": "string", @@ -253990,11 +254657,11 @@ }, "path": { "type": "string", - "description": "Path in which to create the policy.\nSee [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n" + "description": "Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n" }, "policy": { "type": "string", - "description": "The policy document. This is a JSON formatted string.\n", + "description": "Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide\n", "language": { "csharp": { "name": "PolicyDocument" @@ -254003,7 +254670,7 @@ }, "policyId": { "type": "string", - "description": "The policy's ID.\n" + "description": "Policy's ID.\n" }, "tags": { "type": "object", @@ -254037,7 +254704,7 @@ }, "name": { "type": "string", - "description": "The name of the policy. If omitted, the provider will assign a random, unique name.\n", + "description": "Name of the policy. If omitted, the provider will assign a random, unique name.\n", "willReplaceOnChanges": true }, "namePrefix": { @@ -254047,7 +254714,7 @@ }, "path": { "type": "string", - "description": "Path in which to create the policy.\nSee [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n", + "description": "Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n", "willReplaceOnChanges": true }, "policy": { @@ -254061,7 +254728,7 @@ "$ref": "#/types/aws:iam/documents:PolicyDocument" } ], - "description": "The policy document. This is a JSON formatted string.\n", + "description": "Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide\n", "language": { "csharp": { "name": "PolicyDocument" @@ -254084,7 +254751,7 @@ "properties": { "arn": { "type": "string", - "description": "The ARN assigned by AWS to this policy.\n" + "description": "ARN assigned by AWS to this policy.\n" }, "description": { "type": "string", @@ -254093,7 +254760,7 @@ }, "name": { "type": "string", - "description": "The name of the policy. If omitted, the provider will assign a random, unique name.\n", + "description": "Name of the policy. If omitted, the provider will assign a random, unique name.\n", "willReplaceOnChanges": true }, "namePrefix": { @@ -254103,7 +254770,7 @@ }, "path": { "type": "string", - "description": "Path in which to create the policy.\nSee [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n", + "description": "Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information.\n", "willReplaceOnChanges": true }, "policy": { @@ -254117,7 +254784,7 @@ "$ref": "#/types/aws:iam/documents:PolicyDocument" } ], - "description": "The policy document. This is a JSON formatted string.\n", + "description": "Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide\n", "language": { "csharp": { "name": "PolicyDocument" @@ -254126,7 +254793,7 @@ }, "policyId": { "type": "string", - "description": "The policy's ID.\n" + "description": "Policy's ID.\n" }, "tags": { "type": "object", @@ -254316,7 +254983,7 @@ } }, "aws:iam/role:Role": { - "description": "Provides an IAM role.\n\n\u003e **NOTE:** If policies are attached to the role via the `aws.iam.PolicyAttachment` resource and you are modifying the role `name` or `path`, the `force_detach_policies` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `aws.iam.RolePolicyAttachment` resource (recommended) does not have this requirement.\n\n\u003e **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors.\n\n## Example Usage\n\n### Basic Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testRole = new aws.iam.Role(\"test_role\", {\n name: \"test_role\",\n assumeRolePolicy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: \"sts:AssumeRole\",\n effect: \"Allow\",\n sid: \"\",\n principal: {\n service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags: {\n \"tag-key\": \"tag-value\",\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"test_role\",\n name=\"test_role\",\n assume_role_policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": \"sts:AssumeRole\",\n \"effect\": \"Allow\",\n \"sid\": \"\",\n \"principal\": {\n \"service\": \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags={\n \"tag-key\": \"tag-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 testRole = new Aws.Iam.Role(\"test_role\", new()\n {\n Name = \"test_role\",\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\"] = \"sts:AssumeRole\",\n [\"effect\"] = \"Allow\",\n [\"sid\"] = \"\",\n [\"principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n Tags = \n {\n { \"tag-key\", \"tag-value\" },\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/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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"effect\": \"Allow\",\n\t\t\t\t\t\"sid\": \"\",\n\t\t\t\t\t\"principal\": map[string]interface{}{\n\t\t\t\t\t\t\"service\": \"ec2.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\t_, err = iam.NewRole(ctx, \"test_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag-key\": pulumi.String(\"tag-value\"),\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 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 testRole = new Role(\"testRole\", RoleArgs.builder() \n .name(\"test_role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", \"sts:AssumeRole\"),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"sid\", \"\"),\n jsonProperty(\"principal\", jsonObject(\n jsonProperty(\"service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .tags(Map.of(\"tag-key\", \"tag-value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testRole:\n type: aws:iam:Role\n name: test_role\n properties:\n name: test_role\n assumeRolePolicy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action: sts:AssumeRole\n effect: Allow\n sid:\n principal:\n service: ec2.amazonaws.com\n tags:\n tag-key: tag-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Using Data Source for Assume Role Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst instanceAssumeRolePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n }],\n});\nconst instance = new aws.iam.Role(\"instance\", {\n name: \"instance_role\",\n path: \"/system/\",\n assumeRolePolicy: instanceAssumeRolePolicy.then(instanceAssumeRolePolicy =\u003e instanceAssumeRolePolicy.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ninstance_assume_role_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n)])\ninstance = aws.iam.Role(\"instance\",\n name=\"instance_role\",\n path=\"/system/\",\n assume_role_policy=instance_assume_role_policy.json)\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 instanceAssumeRolePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var instance = new Aws.Iam.Role(\"instance\", new()\n {\n Name = \"instance_role\",\n Path = \"/system/\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\tinstanceAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.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},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"instance\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"instance_role\"),\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(instanceAssumeRolePolicy.Json),\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.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\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 instanceAssumeRolePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var instance = new Role(\"instance\", RoleArgs.builder() \n .name(\"instance_role\")\n .path(\"/system/\")\n .assumeRolePolicy(instanceAssumeRolePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: aws:iam:Role\n properties:\n name: instance_role\n path: /system/\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\nvariables:\n instanceAssumeRolePolicy:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Exclusive Inline Policies\n\nThis example creates an IAM role with two inline IAM policies. If someone adds another inline policy out-of-band, on the next apply, this provider will remove that policy. If someone deletes these policies out-of-band, this provider will recreate them.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst inlinePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"ec2:DescribeAccountAttributes\"],\n resources: [\"*\"],\n }],\n});\nconst example = new aws.iam.Role(\"example\", {\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n inlinePolicies: [\n {\n name: \"my_inline_policy\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n },\n {\n name: \"policy-8675309\",\n policy: inlinePolicy.then(inlinePolicy =\u003e inlinePolicy.json),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ninline_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"ec2:DescribeAccountAttributes\"],\n resources=[\"*\"],\n)])\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n inline_policies=[\n aws.iam.RoleInlinePolicyArgs(\n name=\"my_inline_policy\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n ),\n aws.iam.RoleInlinePolicyArgs(\n name=\"policy-8675309\",\n policy=inline_policy.json,\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 inlinePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"ec2:DescribeAccountAttributes\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"my_inline_policy\",\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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n },\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"policy-8675309\",\n Policy = inlinePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/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\tinlinePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"ec2:DescribeAccountAttributes\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"my_inline_policy\"),\n\t\t\t\t\tPolicy: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"policy-8675309\"),\n\t\t\t\t\tPolicy: pulumi.String(inlinePolicy.Json),\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.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\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 final var inlinePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"ec2:DescribeAccountAttributes\")\n .resources(\"*\")\n .build())\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .inlinePolicies( \n RoleInlinePolicyArgs.builder()\n .name(\"my_inline_policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build(),\n RoleInlinePolicyArgs.builder()\n .name(\"policy-8675309\")\n .policy(inlinePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n inlinePolicies:\n - name: my_inline_policy\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n - name: policy-8675309\n policy: ${inlinePolicy.json}\nvariables:\n inlinePolicy:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - ec2:DescribeAccountAttributes\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Removing Inline Policies\n\nThis example creates an IAM role with what appears to be empty IAM `inline_policy` argument instead of using `inline_policy` as a configuration block. The result is that if someone were to add an inline policy out-of-band, on the next apply, this provider will remove that policy.\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 inlinePolicies: [{}],\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n inline_policies=[aws.iam.RoleInlinePolicyArgs()],\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"])\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.Iam.Role(\"example\", new()\n {\n InlinePolicies = new[]\n {\n null,\n },\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\tnil,\n\t\t\t},\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\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 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 .inlinePolicies()\n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n inlinePolicies:\n - {}\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Exclusive Managed Policies\n\nThis example creates an IAM role and attaches two managed IAM policies. If someone attaches another managed policy out-of-band, on the next apply, this provider will detach that policy. If someone detaches these policies out-of-band, this provider will attach them again.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst policyOne = new aws.iam.Policy(\"policy_one\", {\n name: \"policy-618033\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst policyTwo = new aws.iam.Policy(\"policy_two\", {\n name: \"policy-381966\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst example = new aws.iam.Role(\"example\", {\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n managedPolicyArns: [\n policyOne.arn,\n policyTwo.arn,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy_one = aws.iam.Policy(\"policy_one\",\n name=\"policy-618033\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\npolicy_two = aws.iam.Policy(\"policy_two\",\n name=\"policy-381966\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n managed_policy_arns=[\n policy_one.arn,\n policy_two.arn,\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 policyOne = new Aws.Iam.Policy(\"policy_one\", new()\n {\n Name = \"policy-618033\",\n PolicyDocument = 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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var policyTwo = new Aws.Iam.Policy(\"policy_two\", new()\n {\n Name = \"policy-381966\",\n PolicyDocument = 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 \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n ManagedPolicyArns = new[]\n {\n policyOne.Arn,\n policyTwo.Arn,\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/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\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\tpolicyOne, err := iam.NewPolicy(ctx, \"policy_one\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"policy-618033\"),\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\"s3:ListAllMyBuckets\",\n\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\"s3:HeadBucket\",\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\tpolicyTwo, err := iam.NewPolicy(ctx, \"policy_two\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"policy-381966\"),\n\t\t\tPolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpolicyOne.Arn,\n\t\t\t\tpolicyTwo.Arn,\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.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\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 policyOne = new Policy(\"policyOne\", PolicyArgs.builder() \n .name(\"policy-618033\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var policyTwo = new Policy(\"policyTwo\", PolicyArgs.builder() \n .name(\"policy-381966\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\n \"s3:ListAllMyBuckets\", \n \"s3:ListBucket\", \n \"s3:HeadBucket\"\n )),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .managedPolicyArns( \n policyOne.arn(),\n policyTwo.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n managedPolicyArns:\n - ${policyOne.arn}\n - ${policyTwo.arn}\n policyOne:\n type: aws:iam:Policy\n name: policy_one\n properties:\n name: policy-618033\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n policyTwo:\n type: aws:iam:Policy\n name: policy_two\n properties:\n name: policy-381966\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - s3:ListAllMyBuckets\n - s3:ListBucket\n - s3:HeadBucket\n effect: Allow\n resource: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Removing Managed Policies\n\nThis example creates an IAM role with an empty `managed_policy_arns` argument. If someone attaches a policy out-of-band, on the next apply, this provider will detach that policy.\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: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n managedPolicyArns: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n managed_policy_arns=[])\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.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n ManagedPolicyArns = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{},\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 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(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .managedPolicyArns()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n managedPolicyArns: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Roles using the `name`. For example:\n\n```sh\n$ pulumi import aws:iam/role:Role developer developer_name\n```\n", + "description": "Provides an IAM role.\n\n\u003e **NOTE:** If policies are attached to the role via the `aws.iam.PolicyAttachment` resource and you are modifying the role `name` or `path`, the `force_detach_policies` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `aws.iam.RolePolicyAttachment` resource (recommended) does not have this requirement.\n\n\u003e **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n\n## Example Usage\n\n### Basic Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testRole = new aws.iam.Role(\"test_role\", {\n name: \"test_role\",\n assumeRolePolicy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: \"sts:AssumeRole\",\n effect: \"Allow\",\n sid: \"\",\n principal: {\n service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags: {\n \"tag-key\": \"tag-value\",\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"test_role\",\n name=\"test_role\",\n assume_role_policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": \"sts:AssumeRole\",\n \"effect\": \"Allow\",\n \"sid\": \"\",\n \"principal\": {\n \"service\": \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags={\n \"tag-key\": \"tag-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 testRole = new Aws.Iam.Role(\"test_role\", new()\n {\n Name = \"test_role\",\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\"] = \"sts:AssumeRole\",\n [\"effect\"] = \"Allow\",\n [\"sid\"] = \"\",\n [\"principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n Tags = \n {\n { \"tag-key\", \"tag-value\" },\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/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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"effect\": \"Allow\",\n\t\t\t\t\t\"sid\": \"\",\n\t\t\t\t\t\"principal\": map[string]interface{}{\n\t\t\t\t\t\t\"service\": \"ec2.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\t_, err = iam.NewRole(ctx, \"test_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag-key\": pulumi.String(\"tag-value\"),\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 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 testRole = new Role(\"testRole\", RoleArgs.builder() \n .name(\"test_role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", \"sts:AssumeRole\"),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"sid\", \"\"),\n jsonProperty(\"principal\", jsonObject(\n jsonProperty(\"service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .tags(Map.of(\"tag-key\", \"tag-value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testRole:\n type: aws:iam:Role\n name: test_role\n properties:\n name: test_role\n assumeRolePolicy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action: sts:AssumeRole\n effect: Allow\n sid:\n principal:\n service: ec2.amazonaws.com\n tags:\n tag-key: tag-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Using Data Source for Assume Role Policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst instanceAssumeRolePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n }],\n});\nconst instance = new aws.iam.Role(\"instance\", {\n name: \"instance_role\",\n path: \"/system/\",\n assumeRolePolicy: instanceAssumeRolePolicy.then(instanceAssumeRolePolicy =\u003e instanceAssumeRolePolicy.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ninstance_assume_role_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n)])\ninstance = aws.iam.Role(\"instance\",\n name=\"instance_role\",\n path=\"/system/\",\n assume_role_policy=instance_assume_role_policy.json)\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 instanceAssumeRolePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var instance = new Aws.Iam.Role(\"instance\", new()\n {\n Name = \"instance_role\",\n Path = \"/system/\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\tinstanceAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.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},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"instance\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"instance_role\"),\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(instanceAssumeRolePolicy.Json),\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.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\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 instanceAssumeRolePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var instance = new Role(\"instance\", RoleArgs.builder() \n .name(\"instance_role\")\n .path(\"/system/\")\n .assumeRolePolicy(instanceAssumeRolePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: aws:iam:Role\n properties:\n name: instance_role\n path: /system/\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\nvariables:\n instanceAssumeRolePolicy:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Exclusive Inline Policies\n\nThis example creates an IAM role with two inline IAM policies. If someone adds another inline policy out-of-band, on the next apply, this provider will remove that policy. If someone deletes these policies out-of-band, this provider will recreate them.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst inlinePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"ec2:DescribeAccountAttributes\"],\n resources: [\"*\"],\n }],\n});\nconst example = new aws.iam.Role(\"example\", {\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n inlinePolicies: [\n {\n name: \"my_inline_policy\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n },\n {\n name: \"policy-8675309\",\n policy: inlinePolicy.then(inlinePolicy =\u003e inlinePolicy.json),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ninline_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"ec2:DescribeAccountAttributes\"],\n resources=[\"*\"],\n)])\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n inline_policies=[\n aws.iam.RoleInlinePolicyArgs(\n name=\"my_inline_policy\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }),\n ),\n aws.iam.RoleInlinePolicyArgs(\n name=\"policy-8675309\",\n policy=inline_policy.json,\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 inlinePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"ec2:DescribeAccountAttributes\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"my_inline_policy\",\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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n },\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"policy-8675309\",\n Policy = inlinePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/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\tinlinePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"ec2:DescribeAccountAttributes\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"my_inline_policy\"),\n\t\t\t\t\tPolicy: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"policy-8675309\"),\n\t\t\t\t\tPolicy: pulumi.String(inlinePolicy.Json),\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.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\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 final var inlinePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"ec2:DescribeAccountAttributes\")\n .resources(\"*\")\n .build())\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .inlinePolicies( \n RoleInlinePolicyArgs.builder()\n .name(\"my_inline_policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build(),\n RoleInlinePolicyArgs.builder()\n .name(\"policy-8675309\")\n .policy(inlinePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n inlinePolicies:\n - name: my_inline_policy\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n - name: policy-8675309\n policy: ${inlinePolicy.json}\nvariables:\n inlinePolicy:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - ec2:DescribeAccountAttributes\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Removing Inline Policies\n\nThis example creates an IAM role with what appears to be empty IAM `inline_policy` argument instead of using `inline_policy` as a configuration block. The result is that if someone were to add an inline policy out-of-band, on the next apply, this provider will remove that policy.\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 inlinePolicies: [{}],\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n inline_policies=[aws.iam.RoleInlinePolicyArgs()],\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"])\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.Iam.Role(\"example\", new()\n {\n InlinePolicies = new[]\n {\n null,\n },\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\tnil,\n\t\t\t},\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\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 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 .inlinePolicies()\n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n inlinePolicies:\n - {}\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Exclusive Managed Policies\n\nThis example creates an IAM role and attaches two managed IAM policies. If someone attaches another managed policy out-of-band, on the next apply, this provider will detach that policy. If someone detaches these policies out-of-band, this provider will attach them again.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst policyOne = new aws.iam.Policy(\"policy_one\", {\n name: \"policy-618033\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst policyTwo = new aws.iam.Policy(\"policy_two\", {\n name: \"policy-381966\",\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst example = new aws.iam.Role(\"example\", {\n name: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n managedPolicyArns: [\n policyOne.arn,\n policyTwo.arn,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy_one = aws.iam.Policy(\"policy_one\",\n name=\"policy-618033\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\npolicy_two = aws.iam.Policy(\"policy_two\",\n name=\"policy-381966\",\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n managed_policy_arns=[\n policy_one.arn,\n policy_two.arn,\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 policyOne = new Aws.Iam.Policy(\"policy_one\", new()\n {\n Name = \"policy-618033\",\n PolicyDocument = 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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var policyTwo = new Aws.Iam.Policy(\"policy_two\", new()\n {\n Name = \"policy-381966\",\n PolicyDocument = 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 \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n ManagedPolicyArns = new[]\n {\n policyOne.Arn,\n policyTwo.Arn,\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/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\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\tpolicyOne, err := iam.NewPolicy(ctx, \"policy_one\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"policy-618033\"),\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\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\"s3:ListAllMyBuckets\",\n\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\"s3:HeadBucket\",\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\tpolicyTwo, err := iam.NewPolicy(ctx, \"policy_two\", \u0026iam.PolicyArgs{\n\t\t\tName: pulumi.String(\"policy-381966\"),\n\t\t\tPolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpolicyOne.Arn,\n\t\t\t\tpolicyTwo.Arn,\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.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\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 policyOne = new Policy(\"policyOne\", PolicyArgs.builder() \n .name(\"policy-618033\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var policyTwo = new Policy(\"policyTwo\", PolicyArgs.builder() \n .name(\"policy-381966\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\n \"s3:ListAllMyBuckets\", \n \"s3:ListBucket\", \n \"s3:HeadBucket\"\n )),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .name(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .managedPolicyArns( \n policyOne.arn(),\n policyTwo.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n managedPolicyArns:\n - ${policyOne.arn}\n - ${policyTwo.arn}\n policyOne:\n type: aws:iam:Policy\n name: policy_one\n properties:\n name: policy-618033\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n policyTwo:\n type: aws:iam:Policy\n name: policy_two\n properties:\n name: policy-381966\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - s3:ListAllMyBuckets\n - s3:ListBucket\n - s3:HeadBucket\n effect: Allow\n resource: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of Removing Managed Policies\n\nThis example creates an IAM role with an empty `managed_policy_arns` argument. If someone attaches a policy out-of-band, on the next apply, this provider will detach that policy.\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: \"yak_role\",\n assumeRolePolicy: instanceAssumeRolePolicy.json,\n managedPolicyArns: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n name=\"yak_role\",\n assume_role_policy=instance_assume_role_policy[\"json\"],\n managed_policy_arns=[])\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.Iam.Role(\"example\", new()\n {\n Name = \"yak_role\",\n AssumeRolePolicy = instanceAssumeRolePolicy.Json,\n ManagedPolicyArns = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\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\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"yak_role\"),\n\t\t\tAssumeRolePolicy: pulumi.Any(instanceAssumeRolePolicy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{},\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 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(\"yak_role\")\n .assumeRolePolicy(instanceAssumeRolePolicy.json())\n .managedPolicyArns()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n name: yak_role\n assumeRolePolicy: ${instanceAssumeRolePolicy.json}\n managedPolicyArns: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Roles using the `name`. For example:\n\n```sh\n$ pulumi import aws:iam/role:Role developer developer_name\n```\n", "properties": { "arn": { "type": "string", @@ -254563,7 +255230,7 @@ } }, "aws:iam/rolePolicy:RolePolicy": { - "description": "Provides an IAM role inline policy.\n\n\u003e **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference.\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 testRole = new aws.iam.Role(\"test_role\", {\n name: \"test_role\",\n assumeRolePolicy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: \"sts:AssumeRole\",\n effect: \"Allow\",\n sid: \"\",\n principal: {\n service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst testPolicy = new aws.iam.RolePolicy(\"test_policy\", {\n name: \"test_policy\",\n role: testRole.id,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"test_role\",\n name=\"test_role\",\n assume_role_policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": \"sts:AssumeRole\",\n \"effect\": \"Allow\",\n \"sid\": \"\",\n \"principal\": {\n \"service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\ntest_policy = aws.iam.RolePolicy(\"test_policy\",\n name=\"test_policy\",\n role=test_role.id,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 testRole = new Aws.Iam.Role(\"test_role\", new()\n {\n Name = \"test_role\",\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\"] = \"sts:AssumeRole\",\n [\"effect\"] = \"Allow\",\n [\"sid\"] = \"\",\n [\"principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var testPolicy = new Aws.Iam.RolePolicy(\"test_policy\", new()\n {\n Name = \"test_policy\",\n Role = testRole.Id,\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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"effect\": \"Allow\",\n\t\t\t\t\t\"sid\": \"\",\n\t\t\t\t\t\"principal\": map[string]interface{}{\n\t\t\t\t\t\t\"service\": \"ec2.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\ttestRole, err := iam.NewRole(ctx, \"test_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\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\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\"ec2:Describe*\",\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\t_, err = iam.NewRolePolicy(ctx, \"test_policy\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"test_policy\"),\n\t\t\tRole: testRole.ID(),\n\t\t\tPolicy: pulumi.String(json1),\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.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\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 testRole = new Role(\"testRole\", RoleArgs.builder() \n .name(\"test_role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", \"sts:AssumeRole\"),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"sid\", \"\"),\n jsonProperty(\"principal\", jsonObject(\n jsonProperty(\"service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var testPolicy = new RolePolicy(\"testPolicy\", RolePolicyArgs.builder() \n .name(\"test_policy\")\n .role(testRole.id())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testPolicy:\n type: aws:iam:RolePolicy\n name: test_policy\n properties:\n name: test_policy\n role: ${testRole.id}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n testRole:\n type: aws:iam:Role\n name: test_role\n properties:\n name: test_role\n assumeRolePolicy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action: sts:AssumeRole\n effect: Allow\n sid:\n principal:\n service: ec2.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Role Policies using the `role_name:role_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/rolePolicy:RolePolicy mypolicy role_of_mypolicy_name:mypolicy_name\n```\n", + "description": "Provides an IAM role inline policy.\n\n\u003e **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 testRole = new aws.iam.Role(\"test_role\", {\n name: \"test_role\",\n assumeRolePolicy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: \"sts:AssumeRole\",\n effect: \"Allow\",\n sid: \"\",\n principal: {\n service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n});\nconst testPolicy = new aws.iam.RolePolicy(\"test_policy\", {\n name: \"test_policy\",\n role: testRole.id,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"test_role\",\n name=\"test_role\",\n assume_role_policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": \"sts:AssumeRole\",\n \"effect\": \"Allow\",\n \"sid\": \"\",\n \"principal\": {\n \"service\": \"ec2.amazonaws.com\",\n },\n }],\n }))\ntest_policy = aws.iam.RolePolicy(\"test_policy\",\n name=\"test_policy\",\n role=test_role.id,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\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 testRole = new Aws.Iam.Role(\"test_role\", new()\n {\n Name = \"test_role\",\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\"] = \"sts:AssumeRole\",\n [\"effect\"] = \"Allow\",\n [\"sid\"] = \"\",\n [\"principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n });\n\n var testPolicy = new Aws.Iam.RolePolicy(\"test_policy\", new()\n {\n Name = \"test_policy\",\n Role = testRole.Id,\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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\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/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\": \"sts:AssumeRole\",\n\t\t\t\t\t\"effect\": \"Allow\",\n\t\t\t\t\t\"sid\": \"\",\n\t\t\t\t\t\"principal\": map[string]interface{}{\n\t\t\t\t\t\t\"service\": \"ec2.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\ttestRole, err := iam.NewRole(ctx, \"test_role\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"test_role\"),\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\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\"ec2:Describe*\",\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\t_, err = iam.NewRolePolicy(ctx, \"test_policy\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"test_policy\"),\n\t\t\tRole: testRole.ID(),\n\t\t\tPolicy: pulumi.String(json1),\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.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\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 testRole = new Role(\"testRole\", RoleArgs.builder() \n .name(\"test_role\")\n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", \"sts:AssumeRole\"),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"sid\", \"\"),\n jsonProperty(\"principal\", jsonObject(\n jsonProperty(\"service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .build());\n\n var testPolicy = new RolePolicy(\"testPolicy\", RolePolicyArgs.builder() \n .name(\"test_policy\")\n .role(testRole.id())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testPolicy:\n type: aws:iam:RolePolicy\n name: test_policy\n properties:\n name: test_policy\n role: ${testRole.id}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n testRole:\n type: aws:iam:Role\n name: test_role\n properties:\n name: test_role\n assumeRolePolicy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action: sts:AssumeRole\n effect: Allow\n sid:\n principal:\n service: ec2.amazonaws.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM Role Policies using the `role_name:role_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/rolePolicy:RolePolicy mypolicy role_of_mypolicy_name:mypolicy_name\n```\n", "properties": { "name": { "type": "string", @@ -255731,7 +256398,7 @@ } }, "aws:iam/userPolicy:UserPolicy": { - "description": "Provides an IAM policy attached to a user.\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 lb = new aws.iam.User(\"lb\", {\n name: \"loadbalancer\",\n path: \"/system/\",\n});\nconst lbRo = new aws.iam.UserPolicy(\"lb_ro\", {\n name: \"test\",\n user: lb.name,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst lbAccessKey = new aws.iam.AccessKey(\"lb\", {user: lb.name});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nlb = aws.iam.User(\"lb\",\n name=\"loadbalancer\",\n path=\"/system/\")\nlb_ro = aws.iam.UserPolicy(\"lb_ro\",\n name=\"test\",\n user=lb.name,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\nlb_access_key = aws.iam.AccessKey(\"lb\", user=lb.name)\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 lb = new Aws.Iam.User(\"lb\", new()\n {\n Name = \"loadbalancer\",\n Path = \"/system/\",\n });\n\n var lbRo = new Aws.Iam.UserPolicy(\"lb_ro\", new()\n {\n Name = \"test\",\n User = lb.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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var lbAccessKey = new Aws.Iam.AccessKey(\"lb\", new()\n {\n User = lb.Name,\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/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\tlb, err := iam.NewUser(ctx, \"lb\", \u0026iam.UserArgs{\n\t\t\tName: pulumi.String(\"loadbalancer\"),\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t})\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewUserPolicy(ctx, \"lb_ro\", \u0026iam.UserPolicyArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tUser: lb.Name,\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewAccessKey(ctx, \"lb\", \u0026iam.AccessKeyArgs{\n\t\t\tUser: lb.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.iam.User;\nimport com.pulumi.aws.iam.UserArgs;\nimport com.pulumi.aws.iam.UserPolicy;\nimport com.pulumi.aws.iam.UserPolicyArgs;\nimport com.pulumi.aws.iam.AccessKey;\nimport com.pulumi.aws.iam.AccessKeyArgs;\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 lb = new User(\"lb\", UserArgs.builder() \n .name(\"loadbalancer\")\n .path(\"/system/\")\n .build());\n\n var lbRo = new UserPolicy(\"lbRo\", UserPolicyArgs.builder() \n .name(\"test\")\n .user(lb.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var lbAccessKey = new AccessKey(\"lbAccessKey\", AccessKeyArgs.builder() \n .user(lb.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lbRo:\n type: aws:iam:UserPolicy\n name: lb_ro\n properties:\n name: test\n user: ${lb.name}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n lb:\n type: aws:iam:User\n properties:\n name: loadbalancer\n path: /system/\n lbAccessKey:\n type: aws:iam:AccessKey\n name: lb\n properties:\n user: ${lb.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM User Policies using the `user_name:user_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/userPolicy:UserPolicy mypolicy user_of_mypolicy_name:mypolicy_name\n```\n", + "description": "Provides an IAM policy attached to a user.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\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 lb = new aws.iam.User(\"lb\", {\n name: \"loadbalancer\",\n path: \"/system/\",\n});\nconst lbRo = new aws.iam.UserPolicy(\"lb_ro\", {\n name: \"test\",\n user: lb.name,\n policy: JSON.stringify({\n version: \"2012-10-17\",\n statement: [{\n action: [\"ec2:Describe*\"],\n effect: \"Allow\",\n resource: \"*\",\n }],\n }),\n});\nconst lbAccessKey = new aws.iam.AccessKey(\"lb\", {user: lb.name});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nlb = aws.iam.User(\"lb\",\n name=\"loadbalancer\",\n path=\"/system/\")\nlb_ro = aws.iam.UserPolicy(\"lb_ro\",\n name=\"test\",\n user=lb.name,\n policy=json.dumps({\n \"version\": \"2012-10-17\",\n \"statement\": [{\n \"action\": [\"ec2:Describe*\"],\n \"effect\": \"Allow\",\n \"resource\": \"*\",\n }],\n }))\nlb_access_key = aws.iam.AccessKey(\"lb\", user=lb.name)\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 lb = new Aws.Iam.User(\"lb\", new()\n {\n Name = \"loadbalancer\",\n Path = \"/system/\",\n });\n\n var lbRo = new Aws.Iam.UserPolicy(\"lb_ro\", new()\n {\n Name = \"test\",\n User = lb.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 \"ec2:Describe*\",\n },\n [\"effect\"] = \"Allow\",\n [\"resource\"] = \"*\",\n },\n },\n }),\n });\n\n var lbAccessKey = new Aws.Iam.AccessKey(\"lb\", new()\n {\n User = lb.Name,\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/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\tlb, err := iam.NewUser(ctx, \"lb\", \u0026iam.UserArgs{\n\t\t\tName: pulumi.String(\"loadbalancer\"),\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t})\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\tmap[string]interface{}{\n\t\t\t\t\t\"action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewUserPolicy(ctx, \"lb_ro\", \u0026iam.UserPolicyArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tUser: lb.Name,\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewAccessKey(ctx, \"lb\", \u0026iam.AccessKeyArgs{\n\t\t\tUser: lb.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.iam.User;\nimport com.pulumi.aws.iam.UserArgs;\nimport com.pulumi.aws.iam.UserPolicy;\nimport com.pulumi.aws.iam.UserPolicyArgs;\nimport com.pulumi.aws.iam.AccessKey;\nimport com.pulumi.aws.iam.AccessKeyArgs;\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 lb = new User(\"lb\", UserArgs.builder() \n .name(\"loadbalancer\")\n .path(\"/system/\")\n .build());\n\n var lbRo = new UserPolicy(\"lbRo\", UserPolicyArgs.builder() \n .name(\"test\")\n .user(lb.name())\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"version\", \"2012-10-17\"),\n jsonProperty(\"statement\", jsonArray(jsonObject(\n jsonProperty(\"action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"effect\", \"Allow\"),\n jsonProperty(\"resource\", \"*\")\n )))\n )))\n .build());\n\n var lbAccessKey = new AccessKey(\"lbAccessKey\", AccessKeyArgs.builder() \n .user(lb.name())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lbRo:\n type: aws:iam:UserPolicy\n name: lb_ro\n properties:\n name: test\n user: ${lb.name}\n policy:\n fn::toJSON:\n version: 2012-10-17\n statement:\n - action:\n - ec2:Describe*\n effect: Allow\n resource: '*'\n lb:\n type: aws:iam:User\n properties:\n name: loadbalancer\n path: /system/\n lbAccessKey:\n type: aws:iam:AccessKey\n name: lb\n properties:\n user: ${lb.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import IAM User Policies using the `user_name:user_policy_name`. For example:\n\n```sh\n$ pulumi import aws:iam/userPolicy:UserPolicy mypolicy user_of_mypolicy_name:mypolicy_name\n```\n", "properties": { "name": { "type": "string", @@ -263987,7 +264654,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`.\n" + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n" }, "serviceExecutionRole": { "type": "string", @@ -264058,7 +264725,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`.\n", + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n", "willReplaceOnChanges": true }, "serviceExecutionRole": { @@ -264120,7 +264787,7 @@ }, "runtimeEnvironment": { "type": "string", - "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`.\n", + "description": "The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.\n", "willReplaceOnChanges": true }, "serviceExecutionRole": { @@ -266123,6 +266790,88 @@ "type": "object" } }, + "aws:lakeformation/resourceLfTag:ResourceLfTag": { + "description": "Resource for managing an AWS Lake Formation Resource LF Tag.\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.lakeformation.ResourceLfTag(\"example\", {\n database: {\n name: exampleAwsGlueCatalogDatabase.name,\n },\n lfTag: {\n key: exampleAwsLakeformationLfTag.key,\n value: \"stowe\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.ResourceLfTag(\"example\",\n database=aws.lakeformation.ResourceLfTagDatabaseArgs(\n name=example_aws_glue_catalog_database[\"name\"],\n ),\n lf_tag=aws.lakeformation.ResourceLfTagLfTagArgs(\n key=example_aws_lakeformation_lf_tag[\"key\"],\n value=\"stowe\",\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.LakeFormation.ResourceLfTag(\"example\", new()\n {\n Database = new Aws.LakeFormation.Inputs.ResourceLfTagDatabaseArgs\n {\n Name = exampleAwsGlueCatalogDatabase.Name,\n },\n LfTag = new Aws.LakeFormation.Inputs.ResourceLfTagLfTagArgs\n {\n Key = exampleAwsLakeformationLfTag.Key,\n Value = \"stowe\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\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 := lakeformation.NewResourceLfTag(ctx, \"example\", \u0026lakeformation.ResourceLfTagArgs{\n\t\t\tDatabase: \u0026lakeformation.ResourceLfTagDatabaseArgs{\n\t\t\t\tName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name),\n\t\t\t},\n\t\t\tLfTag: \u0026lakeformation.ResourceLfTagLfTagArgs{\n\t\t\t\tKey: pulumi.Any(exampleAwsLakeformationLfTag.Key),\n\t\t\t\tValue: pulumi.String(\"stowe\"),\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.lakeformation.ResourceLfTag;\nimport com.pulumi.aws.lakeformation.ResourceLfTagArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagDatabaseArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagLfTagArgs;\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 ResourceLfTag(\"example\", ResourceLfTagArgs.builder() \n .database(ResourceLfTagDatabaseArgs.builder()\n .name(exampleAwsGlueCatalogDatabase.name())\n .build())\n .lfTag(ResourceLfTagLfTagArgs.builder()\n .key(exampleAwsLakeformationLfTag.key())\n .value(\"stowe\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:ResourceLfTag\n properties:\n database:\n name: ${exampleAwsGlueCatalogDatabase.name}\n lfTag:\n key: ${exampleAwsLakeformationLfTag.key}\n value: stowe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import this resource.\n\n", + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.\n" + }, + "database": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagDatabase:ResourceLfTagDatabase", + "description": "Configuration block for a database resource. See Database for more details.\n" + }, + "lfTag": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagLfTag:ResourceLfTagLfTag", + "description": "Set of LF-tags to attach to the resource. See LF Tag for more details.\n\nExactly one of the following is required:\n" + }, + "table": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTable:ResourceLfTagTable", + "description": "Configuration block for a table resource. See Table for more details.\n" + }, + "tableWithColumns": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTableWithColumns:ResourceLfTagTableWithColumns", + "description": "Configuration block for a table with columns resource. See Table With Columns for more details.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTimeouts:ResourceLfTagTimeouts" + } + }, + "inputProperties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.\n" + }, + "database": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagDatabase:ResourceLfTagDatabase", + "description": "Configuration block for a database resource. See Database for more details.\n" + }, + "lfTag": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagLfTag:ResourceLfTagLfTag", + "description": "Set of LF-tags to attach to the resource. See LF Tag for more details.\n\nExactly one of the following is required:\n" + }, + "table": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTable:ResourceLfTagTable", + "description": "Configuration block for a table resource. See Table for more details.\n" + }, + "tableWithColumns": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTableWithColumns:ResourceLfTagTableWithColumns", + "description": "Configuration block for a table with columns resource. See Table With Columns for more details.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTimeouts:ResourceLfTagTimeouts" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering ResourceLfTag resources.\n", + "properties": { + "catalogId": { + "type": "string", + "description": "Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment.\n" + }, + "database": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagDatabase:ResourceLfTagDatabase", + "description": "Configuration block for a database resource. See Database for more details.\n" + }, + "lfTag": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagLfTag:ResourceLfTagLfTag", + "description": "Set of LF-tags to attach to the resource. See LF Tag for more details.\n\nExactly one of the following is required:\n" + }, + "table": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTable:ResourceLfTagTable", + "description": "Configuration block for a table resource. See Table for more details.\n" + }, + "tableWithColumns": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTableWithColumns:ResourceLfTagTableWithColumns", + "description": "Configuration block for a table with columns resource. See Table With Columns for more details.\n\nThe following arguments are optional:\n" + }, + "timeouts": { + "$ref": "#/types/aws:lakeformation/ResourceLfTagTimeouts:ResourceLfTagTimeouts" + } + }, + "type": "object" + } + }, "aws:lakeformation/resourceLfTags:ResourceLfTags": { "description": "Manages an attachment between one or more existing LF-tags and an existing Lake Formation resource.\n\n## Example Usage\n\n### Database Example\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.lakeformation.LfTag(\"example\", {\n key: \"right\",\n values: [\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n ],\n});\nconst exampleResourceLfTags = new aws.lakeformation.ResourceLfTags(\"example\", {\n database: {\n name: exampleAwsGlueCatalogDatabase.name,\n },\n lfTags: [{\n key: example.key,\n value: \"stowe\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.LfTag(\"example\",\n key=\"right\",\n values=[\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n ])\nexample_resource_lf_tags = aws.lakeformation.ResourceLfTags(\"example\",\n database=aws.lakeformation.ResourceLfTagsDatabaseArgs(\n name=example_aws_glue_catalog_database[\"name\"],\n ),\n lf_tags=[aws.lakeformation.ResourceLfTagsLfTagArgs(\n key=example.key,\n value=\"stowe\",\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.LakeFormation.LfTag(\"example\", new()\n {\n Key = \"right\",\n Values = new[]\n {\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n },\n });\n\n var exampleResourceLfTags = new Aws.LakeFormation.ResourceLfTags(\"example\", new()\n {\n Database = new Aws.LakeFormation.Inputs.ResourceLfTagsDatabaseArgs\n {\n Name = exampleAwsGlueCatalogDatabase.Name,\n },\n LfTags = new[]\n {\n new Aws.LakeFormation.Inputs.ResourceLfTagsLfTagArgs\n {\n Key = example.Key,\n Value = \"stowe\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\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 := lakeformation.NewLfTag(ctx, \"example\", \u0026lakeformation.LfTagArgs{\n\t\t\tKey: pulumi.String(\"right\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"abbey\"),\n\t\t\t\tpulumi.String(\"village\"),\n\t\t\t\tpulumi.String(\"luffield\"),\n\t\t\t\tpulumi.String(\"woodcote\"),\n\t\t\t\tpulumi.String(\"copse\"),\n\t\t\t\tpulumi.String(\"chapel\"),\n\t\t\t\tpulumi.String(\"stowe\"),\n\t\t\t\tpulumi.String(\"club\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewResourceLfTags(ctx, \"example\", \u0026lakeformation.ResourceLfTagsArgs{\n\t\t\tDatabase: \u0026lakeformation.ResourceLfTagsDatabaseArgs{\n\t\t\t\tName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name),\n\t\t\t},\n\t\t\tLfTags: lakeformation.ResourceLfTagsLfTagArray{\n\t\t\t\t\u0026lakeformation.ResourceLfTagsLfTagArgs{\n\t\t\t\t\tKey: example.Key,\n\t\t\t\t\tValue: pulumi.String(\"stowe\"),\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.lakeformation.LfTag;\nimport com.pulumi.aws.lakeformation.LfTagArgs;\nimport com.pulumi.aws.lakeformation.ResourceLfTags;\nimport com.pulumi.aws.lakeformation.ResourceLfTagsArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagsDatabaseArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagsLfTagArgs;\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 LfTag(\"example\", LfTagArgs.builder() \n .key(\"right\")\n .values( \n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\")\n .build());\n\n var exampleResourceLfTags = new ResourceLfTags(\"exampleResourceLfTags\", ResourceLfTagsArgs.builder() \n .database(ResourceLfTagsDatabaseArgs.builder()\n .name(exampleAwsGlueCatalogDatabase.name())\n .build())\n .lfTags(ResourceLfTagsLfTagArgs.builder()\n .key(example.key())\n .value(\"stowe\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:LfTag\n properties:\n key: right\n values:\n - abbey\n - village\n - luffield\n - woodcote\n - copse\n - chapel\n - stowe\n - club\n exampleResourceLfTags:\n type: aws:lakeformation:ResourceLfTags\n name: example\n properties:\n database:\n name: ${exampleAwsGlueCatalogDatabase.name}\n lfTags:\n - key: ${example.key}\n value: stowe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple Tags Example\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.lakeformation.LfTag(\"example\", {\n key: \"right\",\n values: [\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n ],\n});\nconst example2 = new aws.lakeformation.LfTag(\"example2\", {\n key: \"left\",\n values: [\n \"farm\",\n \"theloop\",\n \"aintree\",\n \"brooklands\",\n \"maggotts\",\n \"becketts\",\n \"vale\",\n ],\n});\nconst exampleResourceLfTags = new aws.lakeformation.ResourceLfTags(\"example\", {\n database: {\n name: exampleAwsGlueCatalogDatabase.name,\n },\n lfTags: [\n {\n key: \"right\",\n value: \"luffield\",\n },\n {\n key: \"left\",\n value: \"aintree\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.lakeformation.LfTag(\"example\",\n key=\"right\",\n values=[\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n ])\nexample2 = aws.lakeformation.LfTag(\"example2\",\n key=\"left\",\n values=[\n \"farm\",\n \"theloop\",\n \"aintree\",\n \"brooklands\",\n \"maggotts\",\n \"becketts\",\n \"vale\",\n ])\nexample_resource_lf_tags = aws.lakeformation.ResourceLfTags(\"example\",\n database=aws.lakeformation.ResourceLfTagsDatabaseArgs(\n name=example_aws_glue_catalog_database[\"name\"],\n ),\n lf_tags=[\n aws.lakeformation.ResourceLfTagsLfTagArgs(\n key=\"right\",\n value=\"luffield\",\n ),\n aws.lakeformation.ResourceLfTagsLfTagArgs(\n key=\"left\",\n value=\"aintree\",\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.LakeFormation.LfTag(\"example\", new()\n {\n Key = \"right\",\n Values = new[]\n {\n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\",\n },\n });\n\n var example2 = new Aws.LakeFormation.LfTag(\"example2\", new()\n {\n Key = \"left\",\n Values = new[]\n {\n \"farm\",\n \"theloop\",\n \"aintree\",\n \"brooklands\",\n \"maggotts\",\n \"becketts\",\n \"vale\",\n },\n });\n\n var exampleResourceLfTags = new Aws.LakeFormation.ResourceLfTags(\"example\", new()\n {\n Database = new Aws.LakeFormation.Inputs.ResourceLfTagsDatabaseArgs\n {\n Name = exampleAwsGlueCatalogDatabase.Name,\n },\n LfTags = new[]\n {\n new Aws.LakeFormation.Inputs.ResourceLfTagsLfTagArgs\n {\n Key = \"right\",\n Value = \"luffield\",\n },\n new Aws.LakeFormation.Inputs.ResourceLfTagsLfTagArgs\n {\n Key = \"left\",\n Value = \"aintree\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation\"\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 := lakeformation.NewLfTag(ctx, \"example\", \u0026lakeformation.LfTagArgs{\n\t\t\tKey: pulumi.String(\"right\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"abbey\"),\n\t\t\t\tpulumi.String(\"village\"),\n\t\t\t\tpulumi.String(\"luffield\"),\n\t\t\t\tpulumi.String(\"woodcote\"),\n\t\t\t\tpulumi.String(\"copse\"),\n\t\t\t\tpulumi.String(\"chapel\"),\n\t\t\t\tpulumi.String(\"stowe\"),\n\t\t\t\tpulumi.String(\"club\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewLfTag(ctx, \"example2\", \u0026lakeformation.LfTagArgs{\n\t\t\tKey: pulumi.String(\"left\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"farm\"),\n\t\t\t\tpulumi.String(\"theloop\"),\n\t\t\t\tpulumi.String(\"aintree\"),\n\t\t\t\tpulumi.String(\"brooklands\"),\n\t\t\t\tpulumi.String(\"maggotts\"),\n\t\t\t\tpulumi.String(\"becketts\"),\n\t\t\t\tpulumi.String(\"vale\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lakeformation.NewResourceLfTags(ctx, \"example\", \u0026lakeformation.ResourceLfTagsArgs{\n\t\t\tDatabase: \u0026lakeformation.ResourceLfTagsDatabaseArgs{\n\t\t\t\tName: pulumi.Any(exampleAwsGlueCatalogDatabase.Name),\n\t\t\t},\n\t\t\tLfTags: lakeformation.ResourceLfTagsLfTagArray{\n\t\t\t\t\u0026lakeformation.ResourceLfTagsLfTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"right\"),\n\t\t\t\t\tValue: pulumi.String(\"luffield\"),\n\t\t\t\t},\n\t\t\t\t\u0026lakeformation.ResourceLfTagsLfTagArgs{\n\t\t\t\t\tKey: pulumi.String(\"left\"),\n\t\t\t\t\tValue: pulumi.String(\"aintree\"),\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.lakeformation.LfTag;\nimport com.pulumi.aws.lakeformation.LfTagArgs;\nimport com.pulumi.aws.lakeformation.ResourceLfTags;\nimport com.pulumi.aws.lakeformation.ResourceLfTagsArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagsDatabaseArgs;\nimport com.pulumi.aws.lakeformation.inputs.ResourceLfTagsLfTagArgs;\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 LfTag(\"example\", LfTagArgs.builder() \n .key(\"right\")\n .values( \n \"abbey\",\n \"village\",\n \"luffield\",\n \"woodcote\",\n \"copse\",\n \"chapel\",\n \"stowe\",\n \"club\")\n .build());\n\n var example2 = new LfTag(\"example2\", LfTagArgs.builder() \n .key(\"left\")\n .values( \n \"farm\",\n \"theloop\",\n \"aintree\",\n \"brooklands\",\n \"maggotts\",\n \"becketts\",\n \"vale\")\n .build());\n\n var exampleResourceLfTags = new ResourceLfTags(\"exampleResourceLfTags\", ResourceLfTagsArgs.builder() \n .database(ResourceLfTagsDatabaseArgs.builder()\n .name(exampleAwsGlueCatalogDatabase.name())\n .build())\n .lfTags( \n ResourceLfTagsLfTagArgs.builder()\n .key(\"right\")\n .value(\"luffield\")\n .build(),\n ResourceLfTagsLfTagArgs.builder()\n .key(\"left\")\n .value(\"aintree\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:lakeformation:LfTag\n properties:\n key: right\n values:\n - abbey\n - village\n - luffield\n - woodcote\n - copse\n - chapel\n - stowe\n - club\n example2:\n type: aws:lakeformation:LfTag\n properties:\n key: left\n values:\n - farm\n - theloop\n - aintree\n - brooklands\n - maggotts\n - becketts\n - vale\n exampleResourceLfTags:\n type: aws:lakeformation:ResourceLfTags\n name: example\n properties:\n database:\n name: ${exampleAwsGlueCatalogDatabase.name}\n lfTags:\n - key: right\n value: luffield\n - key: left\n value: aintree\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { @@ -269590,7 +270339,7 @@ ] }, "aws:lb/targetGroupAttachment:TargetGroupAttachment": { - "description": "Provides the ability to register instances and containers with an Application Load Balancer (ALB) or Network Load Balancer (NLB) target group. For attaching resources with Elastic Load Balancer (ELB), see the `aws.elb.Attachment` resource.\n\n\u003e **Note:** `aws.alb.TargetGroupAttachment` is known as `aws.lb.TargetGroupAttachment`. 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 testTargetGroup = new aws.lb.TargetGroup(\"test\", {});\nconst testInstance = new aws.ec2.Instance(\"test\", {});\nconst test = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: testTargetGroup.arn,\n targetId: testInstance.id,\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_target_group = aws.lb.TargetGroup(\"test\")\ntest_instance = aws.ec2.Instance(\"test\")\ntest = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test_target_group.arn,\n target_id=test_instance.id,\n port=80)\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 testTargetGroup = new Aws.LB.TargetGroup(\"test\");\n\n var testInstance = new Aws.Ec2.Instance(\"test\");\n\n var test = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = testTargetGroup.Arn,\n TargetId = testInstance.Id,\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\ttestTargetGroup, err := lb.NewTargetGroup(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: testTargetGroup.Arn,\n\t\t\tTargetId: testInstance.ID(),\n\t\t\tPort: pulumi.Int(80),\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.TargetGroup;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 testTargetGroup = new TargetGroup(\"testTargetGroup\");\n\n var testInstance = new Instance(\"testInstance\");\n\n var test = new TargetGroupAttachment(\"test\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(testTargetGroup.arn())\n .targetId(testInstance.id())\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroupAttachment\n properties:\n targetGroupArn: ${testTargetGroup.arn}\n targetId: ${testInstance.id}\n port: 80\n testTargetGroup:\n type: aws:lb:TargetGroup\n name: test\n testInstance:\n type: aws:ec2:Instance\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target\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.lb.TargetGroup(\"test\", {\n name: \"test\",\n targetType: \"lambda\",\n});\nconst testFunction = new aws.lambda.Function(\"test\", {});\nconst withLb = new aws.lambda.Permission(\"with_lb\", {\n statementId: \"AllowExecutionFromlb\",\n action: \"lambda:InvokeFunction\",\n \"function\": testFunction.name,\n principal: \"elasticloadbalancing.amazonaws.com\",\n sourceArn: test.arn,\n});\nconst testTargetGroupAttachment = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: test.arn,\n targetId: testFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lb.TargetGroup(\"test\",\n name=\"test\",\n target_type=\"lambda\")\ntest_function = aws.lambda_.Function(\"test\")\nwith_lb = aws.lambda_.Permission(\"with_lb\",\n statement_id=\"AllowExecutionFromlb\",\n action=\"lambda:InvokeFunction\",\n function=test_function.name,\n principal=\"elasticloadbalancing.amazonaws.com\",\n source_arn=test.arn)\ntest_target_group_attachment = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test.arn,\n target_id=test_function.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 test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"test\",\n TargetType = \"lambda\",\n });\n\n var testFunction = new Aws.Lambda.Function(\"test\");\n\n var withLb = new Aws.Lambda.Permission(\"with_lb\", new()\n {\n StatementId = \"AllowExecutionFromlb\",\n Action = \"lambda:InvokeFunction\",\n Function = testFunction.Name,\n Principal = \"elasticloadbalancing.amazonaws.com\",\n SourceArn = test.Arn,\n });\n\n var testTargetGroupAttachment = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = test.Arn,\n TargetId = testFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\ttest, err := lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestFunction, err := lambda.NewFunction(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_lb\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromlb\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"elasticloadbalancing.amazonaws.com\"),\n\t\t\tSourceArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: test.Arn,\n\t\t\tTargetId: testFunction.Arn,\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.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 TargetGroup(\"test\", TargetGroupArgs.builder() \n .name(\"test\")\n .targetType(\"lambda\")\n .build());\n\n var testFunction = new Function(\"testFunction\");\n\n var withLb = new Permission(\"withLb\", PermissionArgs.builder() \n .statementId(\"AllowExecutionFromlb\")\n .action(\"lambda:InvokeFunction\")\n .function(testFunction.name())\n .principal(\"elasticloadbalancing.amazonaws.com\")\n .sourceArn(test.arn())\n .build());\n\n var testTargetGroupAttachment = new TargetGroupAttachment(\"testTargetGroupAttachment\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(test.arn())\n .targetId(testFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withLb:\n type: aws:lambda:Permission\n name: with_lb\n properties:\n statementId: AllowExecutionFromlb\n action: lambda:InvokeFunction\n function: ${testFunction.name}\n principal: elasticloadbalancing.amazonaws.com\n sourceArn: ${test.arn}\n test:\n type: aws:lb:TargetGroup\n properties:\n name: test\n targetType: lambda\n testFunction:\n type: aws:lambda:Function\n name: test\n testTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: test\n properties:\n targetGroupArn: ${test.arn}\n targetId: ${testFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Registering Multiple Targets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.ec2.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n example.push(new aws.ec2.Instance(`example-${range.value}`, {}));\n}\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = [];\npulumi.all(example.map((v, k) =\u003e [k, v]).reduce((__obj, [, ]) =\u003e ({ ...__obj, [v.id]: v }))).apply(rangeBody =\u003e {\n for (const range of Object.entries(rangeBody).map(([k, v]) =\u003e ({key: k, value: v}))) {\n exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, {\n targetGroupArn: exampleTargetGroup.arn,\n targetId: range.value.id,\n port: 80,\n }));\n }\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example.append(aws.ec2.Instance(f\"example-{range['value']}\"))\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_target_group_attachment = []\ndef create_example(range_body):\n for range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(range_body)]:\n example_target_group_attachment.append(aws.lb.TargetGroupAttachment(f\"example-{range['key']}\",\n target_group_arn=example_target_group.arn,\n target_id=range[\"value\"],\n port=80))\n\npulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0]))\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 List\u003cAws.Ec2.Instance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Ec2.Instance($\"example-{range.Value}\", new()\n {\n }));\n }\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleTargetGroupAttachment = new List\u003cAws.LB.TargetGroupAttachment\u003e();\n foreach (var range in example.Select((value, i) =\u003e new { Key = i.ToString(), Value = pair.Value }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n exampleTargetGroupAttachment.Add(new Aws.LB.TargetGroupAttachment($\"example-{range.Key}\", new()\n {\n TargetGroupArn = exampleTargetGroup.Arn,\n TargetId = range.Value.Id,\n Port = 80,\n }));\n }\n});\n```\n```yaml\nresources:\n example:\n type: aws:ec2:Instance\n options: {}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: example\n properties:\n targetGroupArn: ${exampleTargetGroup.arn}\n targetId: ${range.value.id}\n port: 80\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import Target Group Attachments.\n\n", + "description": "Provides the ability to register instances and containers with an Application Load Balancer (ALB) or Network Load Balancer (NLB) target group. For attaching resources with Elastic Load Balancer (ELB), see the `aws.elb.Attachment` resource.\n\n\u003e **Note:** `aws.alb.TargetGroupAttachment` is known as `aws.lb.TargetGroupAttachment`. 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 testTargetGroup = new aws.lb.TargetGroup(\"test\", {});\nconst testInstance = new aws.ec2.Instance(\"test\", {});\nconst test = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: testTargetGroup.arn,\n targetId: testInstance.id,\n port: 80,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_target_group = aws.lb.TargetGroup(\"test\")\ntest_instance = aws.ec2.Instance(\"test\")\ntest = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test_target_group.arn,\n target_id=test_instance.id,\n port=80)\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 testTargetGroup = new Aws.LB.TargetGroup(\"test\");\n\n var testInstance = new Aws.Ec2.Instance(\"test\");\n\n var test = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = testTargetGroup.Arn,\n TargetId = testInstance.Id,\n Port = 80,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\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\ttestTargetGroup, err := lb.NewTargetGroup(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestInstance, err := ec2.NewInstance(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: testTargetGroup.Arn,\n\t\t\tTargetId: testInstance.ID(),\n\t\t\tPort: pulumi.Int(80),\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.TargetGroup;\nimport com.pulumi.aws.ec2.Instance;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 testTargetGroup = new TargetGroup(\"testTargetGroup\");\n\n var testInstance = new Instance(\"testInstance\");\n\n var test = new TargetGroupAttachment(\"test\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(testTargetGroup.arn())\n .targetId(testInstance.id())\n .port(80)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroupAttachment\n properties:\n targetGroupArn: ${testTargetGroup.arn}\n targetId: ${testInstance.id}\n port: 80\n testTargetGroup:\n type: aws:lb:TargetGroup\n name: test\n testInstance:\n type: aws:ec2:Instance\n name: test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Lambda Target\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.lb.TargetGroup(\"test\", {\n name: \"test\",\n targetType: \"lambda\",\n});\nconst testFunction = new aws.lambda.Function(\"test\", {});\nconst withLb = new aws.lambda.Permission(\"with_lb\", {\n statementId: \"AllowExecutionFromlb\",\n action: \"lambda:InvokeFunction\",\n \"function\": testFunction.name,\n principal: \"elasticloadbalancing.amazonaws.com\",\n sourceArn: test.arn,\n});\nconst testTargetGroupAttachment = new aws.lb.TargetGroupAttachment(\"test\", {\n targetGroupArn: test.arn,\n targetId: testFunction.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.lb.TargetGroup(\"test\",\n name=\"test\",\n target_type=\"lambda\")\ntest_function = aws.lambda_.Function(\"test\")\nwith_lb = aws.lambda_.Permission(\"with_lb\",\n statement_id=\"AllowExecutionFromlb\",\n action=\"lambda:InvokeFunction\",\n function=test_function.name,\n principal=\"elasticloadbalancing.amazonaws.com\",\n source_arn=test.arn)\ntest_target_group_attachment = aws.lb.TargetGroupAttachment(\"test\",\n target_group_arn=test.arn,\n target_id=test_function.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 test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Name = \"test\",\n TargetType = \"lambda\",\n });\n\n var testFunction = new Aws.Lambda.Function(\"test\");\n\n var withLb = new Aws.Lambda.Permission(\"with_lb\", new()\n {\n StatementId = \"AllowExecutionFromlb\",\n Action = \"lambda:InvokeFunction\",\n Function = testFunction.Name,\n Principal = \"elasticloadbalancing.amazonaws.com\",\n SourceArn = test.Arn,\n });\n\n var testTargetGroupAttachment = new Aws.LB.TargetGroupAttachment(\"test\", new()\n {\n TargetGroupArn = test.Arn,\n TargetId = testFunction.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda\"\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\ttest, err := lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestFunction, err := lambda.NewFunction(ctx, \"test\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lambda.NewPermission(ctx, \"with_lb\", \u0026lambda.PermissionArgs{\n\t\t\tStatementId: pulumi.String(\"AllowExecutionFromlb\"),\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: testFunction.Name,\n\t\t\tPrincipal: pulumi.String(\"elasticloadbalancing.amazonaws.com\"),\n\t\t\tSourceArn: test.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroupAttachment(ctx, \"test\", \u0026lb.TargetGroupAttachmentArgs{\n\t\t\tTargetGroupArn: test.Arn,\n\t\t\tTargetId: testFunction.Arn,\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.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.lb.TargetGroupAttachment;\nimport com.pulumi.aws.lb.TargetGroupAttachmentArgs;\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 TargetGroup(\"test\", TargetGroupArgs.builder() \n .name(\"test\")\n .targetType(\"lambda\")\n .build());\n\n var testFunction = new Function(\"testFunction\");\n\n var withLb = new Permission(\"withLb\", PermissionArgs.builder() \n .statementId(\"AllowExecutionFromlb\")\n .action(\"lambda:InvokeFunction\")\n .function(testFunction.name())\n .principal(\"elasticloadbalancing.amazonaws.com\")\n .sourceArn(test.arn())\n .build());\n\n var testTargetGroupAttachment = new TargetGroupAttachment(\"testTargetGroupAttachment\", TargetGroupAttachmentArgs.builder() \n .targetGroupArn(test.arn())\n .targetId(testFunction.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n withLb:\n type: aws:lambda:Permission\n name: with_lb\n properties:\n statementId: AllowExecutionFromlb\n action: lambda:InvokeFunction\n function: ${testFunction.name}\n principal: elasticloadbalancing.amazonaws.com\n sourceArn: ${test.arn}\n test:\n type: aws:lb:TargetGroup\n properties:\n name: test\n targetType: lambda\n testFunction:\n type: aws:lambda:Function\n name: test\n testTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: test\n properties:\n targetGroupArn: ${test.arn}\n targetId: ${testFunction.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Registering Multiple Targets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example: aws.ec2.Instance[] = [];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n example.push(new aws.ec2.Instance(`example-${range.value}`, {}));\n}\nconst exampleTargetGroup = new aws.lb.TargetGroup(\"example\", {});\nconst exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = [];\npulumi.all(example.map((v, k) =\u003e [k, v]).reduce((__obj, [, ]) =\u003e ({ ...__obj, [k]: v }))).apply(rangeBody =\u003e {\n for (const range of Object.entries(rangeBody).map(([k, v]) =\u003e ({key: k, value: v}))) {\n exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, {\n targetGroupArn: exampleTargetGroup.arn,\n targetId: range.value.id,\n port: 80,\n }));\n }\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example.append(aws.ec2.Instance(f\"example-{range['value']}\"))\nexample_target_group = aws.lb.TargetGroup(\"example\")\nexample_target_group_attachment = []\ndef create_example(range_body):\n for range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(range_body)]:\n example_target_group_attachment.append(aws.lb.TargetGroupAttachment(f\"example-{range['key']}\",\n target_group_arn=example_target_group.arn,\n target_id=range[\"value\"],\n port=80))\n\npulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0]))\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 List\u003cAws.Ec2.Instance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Ec2.Instance($\"example-{range.Value}\", new()\n {\n }));\n }\n var exampleTargetGroup = new Aws.LB.TargetGroup(\"example\");\n\n var exampleTargetGroupAttachment = new List\u003cAws.LB.TargetGroupAttachment\u003e();\n foreach (var range in example.Select((value, i) =\u003e new { Key = i.ToString(), Value = pair.Value }).Select(pair =\u003e new { pair.Key, pair.Value }))\n {\n exampleTargetGroupAttachment.Add(new Aws.LB.TargetGroupAttachment($\"example-{range.Key}\", new()\n {\n TargetGroupArn = exampleTargetGroup.Arn,\n TargetId = range.Value.Id,\n Port = 80,\n }));\n }\n});\n```\n```yaml\nresources:\n example:\n type: aws:ec2:Instance\n options: {}\n exampleTargetGroup:\n type: aws:lb:TargetGroup\n name: example\n exampleTargetGroupAttachment:\n type: aws:lb:TargetGroupAttachment\n name: example\n properties:\n targetGroupArn: ${exampleTargetGroup.arn}\n targetId: ${range.value.id}\n port: 80\n options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou cannot import Target Group Attachments.\n\n", "properties": { "availabilityZone": { "type": "string", @@ -275591,6 +276340,543 @@ "type": "object" } }, + "aws:m2/application:Application": { + "description": "Resource for managing an [AWS Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html).\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.m2.Application(\"example\", {\n name: \"Example\",\n engineType: \"bluage\",\n definition: {\n content: `{\n \"definition\": {\n \"listeners\": [\n {\n \"port\": 8196,\n \"type\": \"http\"\n }\n ],\n \"ba-application\": {\n \"app-location\": \"${s3_source}/PlanetsDemo-v1.zip\"\n }\n },\n \"source-locations\": [\n {\n \"source-id\": \"s3-source\",\n \"source-type\": \"s3\",\n \"properties\": {\n \"s3-bucket\": \"example-bucket\",\n \"s3-key-prefix\": \"v1\"\n }\n }\n ],\n \"template-version\": \"2.0\"\n}\n\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.m2.Application(\"example\",\n name=\"Example\",\n engine_type=\"bluage\",\n definition=aws.m2.ApplicationDefinitionArgs(\n content=f\"\"\"{{\n \"definition\": {{\n \"listeners\": [\n {{\n \"port\": 8196,\n \"type\": \"http\"\n }}\n ],\n \"ba-application\": {{\n \"app-location\": \"{s3_source}/PlanetsDemo-v1.zip\"\n }}\n }},\n \"source-locations\": [\n {{\n \"source-id\": \"s3-source\",\n \"source-type\": \"s3\",\n \"properties\": {{\n \"s3-bucket\": \"example-bucket\",\n \"s3-key-prefix\": \"v1\"\n }}\n }}\n ],\n \"template-version\": \"2.0\"\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 example = new Aws.M2.Application(\"example\", new()\n {\n Name = \"Example\",\n EngineType = \"bluage\",\n Definition = new Aws.M2.Inputs.ApplicationDefinitionArgs\n {\n Content = @$\"{{\n \"\"definition\"\": {{\n \"\"listeners\"\": [\n {{\n \"\"port\"\": 8196,\n \"\"type\"\": \"\"http\"\"\n }}\n ],\n \"\"ba-application\"\": {{\n \"\"app-location\"\": \"\"{s3_source}/PlanetsDemo-v1.zip\"\"\n }}\n }},\n \"\"source-locations\"\": [\n {{\n \"\"source-id\"\": \"\"s3-source\"\",\n \"\"source-type\"\": \"\"s3\"\",\n \"\"properties\"\": {{\n \"\"s3-bucket\"\": \"\"example-bucket\"\",\n \"\"s3-key-prefix\"\": \"\"v1\"\"\n }}\n }}\n ],\n \"\"template-version\"\": \"\"2.0\"\"\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/m2\"\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 := m2.NewApplication(ctx, \"example\", \u0026m2.ApplicationArgs{\n\t\t\tName: pulumi.String(\"Example\"),\n\t\t\tEngineType: pulumi.String(\"bluage\"),\n\t\t\tDefinition: \u0026m2.ApplicationDefinitionArgs{\n\t\t\t\tContent: pulumi.String(fmt.Sprintf(`{\n \"definition\": {\n \"listeners\": [\n {\n \"port\": 8196,\n \"type\": \"http\"\n }\n ],\n \"ba-application\": {\n \"app-location\": \"%v/PlanetsDemo-v1.zip\"\n }\n },\n \"source-locations\": [\n {\n \"source-id\": \"s3-source\",\n \"source-type\": \"s3\",\n \"properties\": {\n \"s3-bucket\": \"example-bucket\",\n \"s3-key-prefix\": \"v1\"\n }\n }\n ],\n \"template-version\": \"2.0\"\n}\n\n`, s3_source)),\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.m2.Application;\nimport com.pulumi.aws.m2.ApplicationArgs;\nimport com.pulumi.aws.m2.inputs.ApplicationDefinitionArgs;\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 Application(\"example\", ApplicationArgs.builder() \n .name(\"Example\")\n .engineType(\"bluage\")\n .definition(ApplicationDefinitionArgs.builder()\n .content(\"\"\"\n{\n \"definition\": {\n \"listeners\": [\n {\n \"port\": 8196,\n \"type\": \"http\"\n }\n ],\n \"ba-application\": {\n \"app-location\": \"%s/PlanetsDemo-v1.zip\"\n }\n },\n \"source-locations\": [\n {\n \"source-id\": \"s3-source\",\n \"source-type\": \"s3\",\n \"properties\": {\n \"s3-bucket\": \"example-bucket\",\n \"s3-key-prefix\": \"v1\"\n }\n }\n ],\n \"template-version\": \"2.0\"\n}\n\n\", s3_source))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:m2:Application\n properties:\n name: Example\n engineType: bluage\n definition:\n content: |+\n {\n \"definition\": {\n \"listeners\": [\n {\n \"port\": 8196,\n \"type\": \"http\"\n }\n ],\n \"ba-application\": {\n \"app-location\": \"${[\"s3-source\"]}/PlanetsDemo-v1.zip\"\n }\n },\n \"source-locations\": [\n {\n \"source-id\": \"s3-source\",\n \"source-type\": \"s3\",\n \"properties\": {\n \"s3-bucket\": \"example-bucket\",\n \"s3-key-prefix\": \"v1\"\n }\n }\n ],\n \"template-version\": \"2.0\"\n }\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example:\n\n```sh\n$ pulumi import aws:m2/application:Application example 01234567890abcdef012345678\n```\n", + "properties": { + "applicationId": { + "type": "string", + "description": "Id of the Application.\n" + }, + "arn": { + "type": "string", + "description": "ARN of the Application.\n" + }, + "currentVersion": { + "type": "integer", + "description": "Current version of the application deployed.\n" + }, + "definition": { + "$ref": "#/types/aws:m2/ApplicationDefinition:ApplicationDefinition", + "description": "The application definition for this application. You can specify either inline JSON or an S3 bucket location.\n" + }, + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus | bluage`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS Key to use for the Application.\n" + }, + "name": { + "type": "string", + "description": "Unique identifier of the application.\n\nThe following arguments are optional:\n" + }, + "roleArn": { + "type": "string", + "description": "ARN of role for application to use to access AWS resources.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the WorkSpaces Connection Alias. 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": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:m2/ApplicationTimeouts:ApplicationTimeouts" + } + }, + "required": [ + "applicationId", + "arn", + "currentVersion", + "engineType", + "name", + "tagsAll" + ], + "inputProperties": { + "definition": { + "$ref": "#/types/aws:m2/ApplicationDefinition:ApplicationDefinition", + "description": "The application definition for this application. You can specify either inline JSON or an S3 bucket location.\n" + }, + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus | bluage`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS Key to use for the Application.\n" + }, + "name": { + "type": "string", + "description": "Unique identifier of the application.\n\nThe following arguments are optional:\n" + }, + "roleArn": { + "type": "string", + "description": "ARN of role for application to use to access AWS resources.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the WorkSpaces Connection Alias. 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:m2/ApplicationTimeouts:ApplicationTimeouts" + } + }, + "requiredInputs": [ + "engineType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Application resources.\n", + "properties": { + "applicationId": { + "type": "string", + "description": "Id of the Application.\n" + }, + "arn": { + "type": "string", + "description": "ARN of the Application.\n" + }, + "currentVersion": { + "type": "integer", + "description": "Current version of the application deployed.\n" + }, + "definition": { + "$ref": "#/types/aws:m2/ApplicationDefinition:ApplicationDefinition", + "description": "The application definition for this application. You can specify either inline JSON or an S3 bucket location.\n" + }, + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus | bluage`.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "KMS Key to use for the Application.\n" + }, + "name": { + "type": "string", + "description": "Unique identifier of the application.\n\nThe following arguments are optional:\n" + }, + "roleArn": { + "type": "string", + "description": "ARN of role for application to use to access AWS resources.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the WorkSpaces Connection Alias. 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": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n", + "deprecationMessage": "Please use `tags` instead." + }, + "timeouts": { + "$ref": "#/types/aws:m2/ApplicationTimeouts:ApplicationTimeouts" + } + }, + "type": "object" + } + }, + "aws:m2/deployment:Deployment": { + "description": "Resource for managing an [AWS Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html)\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.m2.Deployment(\"test\", {\n environmentId: \"01234567890abcdef012345678\",\n applicationId: \"34567890abcdef012345678012\",\n applicationVersion: 1,\n start: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.m2.Deployment(\"test\",\n environment_id=\"01234567890abcdef012345678\",\n application_id=\"34567890abcdef012345678012\",\n application_version=1,\n start=True)\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.M2.Deployment(\"test\", new()\n {\n EnvironmentId = \"01234567890abcdef012345678\",\n ApplicationId = \"34567890abcdef012345678012\",\n ApplicationVersion = 1,\n Start = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/m2\"\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 := m2.NewDeployment(ctx, \"test\", \u0026m2.DeploymentArgs{\n\t\t\tEnvironmentId: pulumi.String(\"01234567890abcdef012345678\"),\n\t\t\tApplicationId: pulumi.String(\"34567890abcdef012345678012\"),\n\t\t\tApplicationVersion: pulumi.Int(1),\n\t\t\tStart: pulumi.Bool(true),\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.m2.Deployment;\nimport com.pulumi.aws.m2.DeploymentArgs;\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 Deployment(\"test\", DeploymentArgs.builder() \n .environmentId(\"01234567890abcdef012345678\")\n .applicationId(\"34567890abcdef012345678012\")\n .applicationVersion(1)\n .start(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:m2:Deployment\n properties:\n environmentId: 01234567890abcdef012345678\n applicationId: 34567890abcdef012345678012\n applicationVersion: 1\n start: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example:\n\n```sh\n$ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID\n```\n", + "properties": { + "applicationId": { + "type": "string", + "description": "Application to deploy.\n" + }, + "applicationVersion": { + "type": "integer", + "description": "Version to application to deploy\n" + }, + "deploymentId": { + "type": "string" + }, + "environmentId": { + "type": "string", + "description": "Environment to deploy application to.\n" + }, + "forceStop": { + "type": "boolean" + }, + "start": { + "type": "boolean", + "description": "Start the application once deployed.\n" + }, + "timeouts": { + "$ref": "#/types/aws:m2/DeploymentTimeouts:DeploymentTimeouts" + } + }, + "required": [ + "applicationId", + "applicationVersion", + "deploymentId", + "environmentId", + "start" + ], + "inputProperties": { + "applicationId": { + "type": "string", + "description": "Application to deploy.\n" + }, + "applicationVersion": { + "type": "integer", + "description": "Version to application to deploy\n" + }, + "environmentId": { + "type": "string", + "description": "Environment to deploy application to.\n" + }, + "forceStop": { + "type": "boolean" + }, + "start": { + "type": "boolean", + "description": "Start the application once deployed.\n" + }, + "timeouts": { + "$ref": "#/types/aws:m2/DeploymentTimeouts:DeploymentTimeouts" + } + }, + "requiredInputs": [ + "applicationId", + "applicationVersion", + "environmentId", + "start" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Deployment resources.\n", + "properties": { + "applicationId": { + "type": "string", + "description": "Application to deploy.\n" + }, + "applicationVersion": { + "type": "integer", + "description": "Version to application to deploy\n" + }, + "deploymentId": { + "type": "string" + }, + "environmentId": { + "type": "string", + "description": "Environment to deploy application to.\n" + }, + "forceStop": { + "type": "boolean" + }, + "start": { + "type": "boolean", + "description": "Start the application once deployed.\n" + }, + "timeouts": { + "$ref": "#/types/aws:m2/DeploymentTimeouts:DeploymentTimeouts" + } + }, + "type": "object" + } + }, + "aws:m2/environment:Environment": { + "description": "Resource for managing an [AWS Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html).\n\n## Example Usage\n\n### Basic 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.m2.Environment;\nimport com.pulumi.aws.m2.EnvironmentArgs;\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 Environment(\"test\", EnvironmentArgs.builder() \n .name(\"test-env\")\n .engineType(\"bluage\")\n .instanceType(\"M2.m5.large\")\n .securityGroups(\"sg-01234567890abcdef\")\n .subnetIds( \n \"subnet-01234567890abcdef\",\n \"subnet-01234567890abcdea\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:m2:Environment\n properties:\n name: test-env\n engineType: bluage\n instanceType: M2.m5.large\n securityGroups:\n - sg-01234567890abcdef\n subnetIds:\n - subnet-01234567890abcdef\n - subnet-01234567890abcdea\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### High Availability\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.m2.Environment;\nimport com.pulumi.aws.m2.EnvironmentArgs;\nimport com.pulumi.aws.m2.inputs.EnvironmentHighAvailabilityConfigArgs;\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 Environment(\"test\", EnvironmentArgs.builder() \n .name(\"test-env\")\n .engineType(\"bluage\")\n .instanceType(\"M2.m5.large\")\n .securityGroups(\"sg-01234567890abcdef\")\n .subnetIds( \n \"subnet-01234567890abcdef\",\n \"subnet-01234567890abcdea\")\n .highAvailabilityConfig(EnvironmentHighAvailabilityConfigArgs.builder()\n .desiredCapacity(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:m2:Environment\n properties:\n name: test-env\n engineType: bluage\n instanceType: M2.m5.large\n securityGroups:\n - sg-01234567890abcdef\n subnetIds:\n - subnet-01234567890abcdef\n - subnet-01234567890abcdea\n highAvailabilityConfig:\n desiredCapacity: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### EFS Filesystem\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.m2.Environment;\nimport com.pulumi.aws.m2.EnvironmentArgs;\nimport com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs;\nimport com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationEfsArgs;\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 Environment(\"test\", EnvironmentArgs.builder() \n .name(\"test-env\")\n .engineType(\"bluage\")\n .instanceType(\"M2.m5.large\")\n .securityGroups(\"sg-01234567890abcdef\")\n .subnetIds( \n \"subnet-01234567890abcdef\",\n \"subnet-01234567890abcdea\")\n .storageConfiguration(EnvironmentStorageConfigurationArgs.builder()\n .efs(EnvironmentStorageConfigurationEfsArgs.builder()\n .fileSystemId(\"fs-01234567890abcdef\")\n .mountPoint(\"/m2/mount/example\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:m2:Environment\n properties:\n name: test-env\n engineType: bluage\n instanceType: M2.m5.large\n securityGroups:\n - sg-01234567890abcdef\n subnetIds:\n - subnet-01234567890abcdef\n - subnet-01234567890abcdea\n storageConfiguration:\n efs:\n fileSystemId: fs-01234567890abcdef\n mountPoint: /m2/mount/example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### FSX Filesystem\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.m2.Environment;\nimport com.pulumi.aws.m2.EnvironmentArgs;\nimport com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs;\nimport com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationFsxArgs;\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 Environment(\"test\", EnvironmentArgs.builder() \n .name(\"test-env\")\n .engineType(\"bluage\")\n .instanceType(\"M2.m5.large\")\n .securityGroups(\"sg-01234567890abcdef\")\n .subnetIds( \n \"subnet-01234567890abcdef\",\n \"subnet-01234567890abcdea\")\n .storageConfiguration(EnvironmentStorageConfigurationArgs.builder()\n .fsx(EnvironmentStorageConfigurationFsxArgs.builder()\n .fileSystemId(\"fs-01234567890abcdef\")\n .mountPoint(\"/m2/mount/example\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:m2:Environment\n properties:\n name: test-env\n engineType: bluage\n instanceType: M2.m5.large\n securityGroups:\n - sg-01234567890abcdef\n subnetIds:\n - subnet-01234567890abcdef\n - subnet-01234567890abcdea\n storageConfiguration:\n fsx:\n fileSystemId: fs-01234567890abcdef\n mountPoint: /m2/mount/example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example:\n\n```sh\n$ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678\n```\n", + "properties": { + "applyChangesDuringMaintenanceWindow": { + "type": "boolean" + }, + "arn": { + "type": "string", + "description": "ARN of the Environment.\n" + }, + "description": { + "type": "string" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus` or `bluage`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The specific version of the engine for the Environment.\n" + }, + "environmentId": { + "type": "string", + "description": "The id of the Environment.\n" + }, + "forceUpdate": { + "type": "boolean", + "description": "Force update the environment even if applications are running.\n" + }, + "highAvailabilityConfig": { + "$ref": "#/types/aws:m2/EnvironmentHighAvailabilityConfig:EnvironmentHighAvailabilityConfig" + }, + "instanceType": { + "type": "string", + "description": "M2 Instance Type.\n\nThe following arguments are optional:\n" + }, + "kmsKeyId": { + "type": "string", + "description": "ARN of the KMS key to use for the Environment.\n" + }, + "loadBalancerArn": { + "type": "string", + "description": "ARN of the load balancer created by the Environment.\n" + }, + "name": { + "type": "string", + "description": "Name of the runtime environment. Must be unique within the account.\n" + }, + "preferredMaintenanceWindow": { + "type": "string", + "description": "Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used.\n" + }, + "publiclyAccessible": { + "type": "boolean", + "description": "Allow applications deployed to this environment to be publicly accessible.\n" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group ids.\n" + }, + "storageConfiguration": { + "$ref": "#/types/aws:m2/EnvironmentStorageConfiguration:EnvironmentStorageConfiguration" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet ids to deploy environment to.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the place index. 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:m2/EnvironmentTimeouts:EnvironmentTimeouts" + } + }, + "required": [ + "arn", + "engineType", + "engineVersion", + "environmentId", + "instanceType", + "loadBalancerArn", + "name", + "preferredMaintenanceWindow", + "publiclyAccessible", + "securityGroupIds", + "subnetIds", + "tagsAll" + ], + "inputProperties": { + "applyChangesDuringMaintenanceWindow": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus` or `bluage`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The specific version of the engine for the Environment.\n" + }, + "forceUpdate": { + "type": "boolean", + "description": "Force update the environment even if applications are running.\n" + }, + "highAvailabilityConfig": { + "$ref": "#/types/aws:m2/EnvironmentHighAvailabilityConfig:EnvironmentHighAvailabilityConfig" + }, + "instanceType": { + "type": "string", + "description": "M2 Instance Type.\n\nThe following arguments are optional:\n" + }, + "kmsKeyId": { + "type": "string", + "description": "ARN of the KMS key to use for the Environment.\n" + }, + "name": { + "type": "string", + "description": "Name of the runtime environment. Must be unique within the account.\n" + }, + "preferredMaintenanceWindow": { + "type": "string", + "description": "Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used.\n" + }, + "publiclyAccessible": { + "type": "boolean", + "description": "Allow applications deployed to this environment to be publicly accessible.\n" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group ids.\n" + }, + "storageConfiguration": { + "$ref": "#/types/aws:m2/EnvironmentStorageConfiguration:EnvironmentStorageConfiguration" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet ids to deploy environment to.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the place index. 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:m2/EnvironmentTimeouts:EnvironmentTimeouts" + } + }, + "requiredInputs": [ + "engineType", + "instanceType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Environment resources.\n", + "properties": { + "applyChangesDuringMaintenanceWindow": { + "type": "boolean" + }, + "arn": { + "type": "string", + "description": "ARN of the Environment.\n" + }, + "description": { + "type": "string" + }, + "engineType": { + "type": "string", + "description": "Engine type must be `microfocus` or `bluage`.\n" + }, + "engineVersion": { + "type": "string", + "description": "The specific version of the engine for the Environment.\n" + }, + "environmentId": { + "type": "string", + "description": "The id of the Environment.\n" + }, + "forceUpdate": { + "type": "boolean", + "description": "Force update the environment even if applications are running.\n" + }, + "highAvailabilityConfig": { + "$ref": "#/types/aws:m2/EnvironmentHighAvailabilityConfig:EnvironmentHighAvailabilityConfig" + }, + "instanceType": { + "type": "string", + "description": "M2 Instance Type.\n\nThe following arguments are optional:\n" + }, + "kmsKeyId": { + "type": "string", + "description": "ARN of the KMS key to use for the Environment.\n" + }, + "loadBalancerArn": { + "type": "string", + "description": "ARN of the load balancer created by the Environment.\n" + }, + "name": { + "type": "string", + "description": "Name of the runtime environment. Must be unique within the account.\n" + }, + "preferredMaintenanceWindow": { + "type": "string", + "description": "Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used.\n" + }, + "publiclyAccessible": { + "type": "boolean", + "description": "Allow applications deployed to this environment to be publicly accessible.\n" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group ids.\n" + }, + "storageConfiguration": { + "$ref": "#/types/aws:m2/EnvironmentStorageConfiguration:EnvironmentStorageConfiguration" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet ids to deploy environment to.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value tags for the place index. 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:m2/EnvironmentTimeouts:EnvironmentTimeouts" + } + }, + "type": "object" + } + }, "aws:macie/customDataIdentifier:CustomDataIdentifier": { "description": "Provides a resource to manage an [AWS Macie Custom Data Identifier](https://docs.aws.amazon.com/macie/latest/APIReference/custom-data-identifiers-id.html).\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.macie2.Account(\"example\", {});\nconst exampleCustomDataIdentifier = new aws.macie.CustomDataIdentifier(\"example\", {\n name: \"NAME OF CUSTOM DATA IDENTIFIER\",\n regex: \"[0-9]{3}-[0-9]{2}-[0-9]{4}\",\n description: \"DESCRIPTION\",\n maximumMatchDistance: 10,\n keywords: [\"keyword\"],\n ignoreWords: [\"ignore\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.macie2.Account(\"example\")\nexample_custom_data_identifier = aws.macie.CustomDataIdentifier(\"example\",\n name=\"NAME OF CUSTOM DATA IDENTIFIER\",\n regex=\"[0-9]{3}-[0-9]{2}-[0-9]{4}\",\n description=\"DESCRIPTION\",\n maximum_match_distance=10,\n keywords=[\"keyword\"],\n ignore_words=[\"ignore\"])\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.Macie2.Account(\"example\");\n\n var exampleCustomDataIdentifier = new Aws.Macie.CustomDataIdentifier(\"example\", new()\n {\n Name = \"NAME OF CUSTOM DATA IDENTIFIER\",\n Regex = \"[0-9]{3}-[0-9]{2}-[0-9]{4}\",\n Description = \"DESCRIPTION\",\n MaximumMatchDistance = 10,\n Keywords = new[]\n {\n \"keyword\",\n },\n IgnoreWords = new[]\n {\n \"ignore\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/macie\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/macie2\"\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 := macie2.NewAccount(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = macie.NewCustomDataIdentifier(ctx, \"example\", \u0026macie.CustomDataIdentifierArgs{\n\t\t\tName: pulumi.String(\"NAME OF CUSTOM DATA IDENTIFIER\"),\n\t\t\tRegex: pulumi.String(\"[0-9]{3}-[0-9]{2}-[0-9]{4}\"),\n\t\t\tDescription: pulumi.String(\"DESCRIPTION\"),\n\t\t\tMaximumMatchDistance: pulumi.Int(10),\n\t\t\tKeywords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"keyword\"),\n\t\t\t},\n\t\t\tIgnoreWords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ignore\"),\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.macie2.Account;\nimport com.pulumi.aws.macie.CustomDataIdentifier;\nimport com.pulumi.aws.macie.CustomDataIdentifierArgs;\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 Account(\"example\");\n\n var exampleCustomDataIdentifier = new CustomDataIdentifier(\"exampleCustomDataIdentifier\", CustomDataIdentifierArgs.builder() \n .name(\"NAME OF CUSTOM DATA IDENTIFIER\")\n .regex(\"[0-9]{3}-[0-9]{2}-[0-9]{4}\")\n .description(\"DESCRIPTION\")\n .maximumMatchDistance(10)\n .keywords(\"keyword\")\n .ignoreWords(\"ignore\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:macie2:Account\n exampleCustomDataIdentifier:\n type: aws:macie:CustomDataIdentifier\n name: example\n properties:\n name: NAME OF CUSTOM DATA IDENTIFIER\n regex: '[0-9]{3}-[0-9]{2}-[0-9]{4}'\n description: DESCRIPTION\n maximumMatchDistance: 10\n keywords:\n - keyword\n ignoreWords:\n - ignore\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_macie2_custom_data_identifier` using the id. For example:\n\n```sh\n$ pulumi import aws:macie/customDataIdentifier:CustomDataIdentifier example abcd1\n```\n", "properties": { @@ -277665,7 +278951,7 @@ } }, "aws:mediastore/containerPolicy:ContainerPolicy": { - "description": "Provides a MediaStore Container Policy.\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 current = aws.getRegion({});\nconst currentGetCallerIdentity = aws.getCallerIdentity({});\nconst exampleContainer = new aws.mediastore.Container(\"example\", {name: \"example\"});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [{\n sid: \"MediaStoreFullAccess\",\n effect: \"Allow\",\n principals: [{\n type: \"AWS\",\n identifiers: [currentGetCallerIdentity.then(currentGetCallerIdentity =\u003e `arn:aws:iam::${currentGetCallerIdentity.accountId}:root`)],\n }],\n actions: [\"mediastore:*\"],\n resources: [pulumi.all([current, currentGetCallerIdentity, exampleContainer.name]).apply(([current, currentGetCallerIdentity, name]) =\u003e `arn:aws:mediastore:${current.name}:${currentGetCallerIdentity.accountId}:container/${name}/*`)],\n conditions: [{\n test: \"Bool\",\n variable: \"aws:SecureTransport\",\n values: [\"true\"],\n }],\n }],\n});\nconst exampleContainerPolicy = new aws.mediastore.ContainerPolicy(\"example\", {\n containerName: exampleContainer.name,\n policy: example.apply(example =\u003e example.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ncurrent_get_caller_identity = aws.get_caller_identity()\nexample_container = aws.mediastore.Container(\"example\", name=\"example\")\nexample = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n sid=\"MediaStoreFullAccess\",\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"AWS\",\n identifiers=[f\"arn:aws:iam::{current_get_caller_identity.account_id}:root\"],\n )],\n actions=[\"mediastore:*\"],\n resources=[example_container.name.apply(lambda name: f\"arn:aws:mediastore:{current.name}:{current_get_caller_identity.account_id}:container/{name}/*\")],\n conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs(\n test=\"Bool\",\n variable=\"aws:SecureTransport\",\n values=[\"true\"],\n )],\n)])\nexample_container_policy = aws.mediastore.ContainerPolicy(\"example\",\n container_name=example_container.name,\n policy=example.json)\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 current = Aws.GetRegion.Invoke();\n\n var currentGetCallerIdentity = Aws.GetCallerIdentity.Invoke();\n\n var exampleContainer = new Aws.MediaStore.Container(\"example\", new()\n {\n Name = \"example\",\n });\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"MediaStoreFullAccess\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"AWS\",\n Identifiers = new[]\n {\n $\"arn:aws:iam::{currentGetCallerIdentity.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:root\",\n },\n },\n },\n Actions = new[]\n {\n \"mediastore:*\",\n },\n Resources = new[]\n {\n $\"arn:aws:mediastore:{current.Apply(getRegionResult =\u003e getRegionResult.Name)}:{currentGetCallerIdentity.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:container/{exampleContainer.Name}/*\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"Bool\",\n Variable = \"aws:SecureTransport\",\n Values = new[]\n {\n \"true\",\n },\n },\n },\n },\n },\n });\n\n var exampleContainerPolicy = new Aws.MediaStore.ContainerPolicy(\"example\", new()\n {\n ContainerName = exampleContainer.Name,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mediastore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := mediastore.NewContainer(ctx, \"example\", \u0026mediastore.ContainerArgs{\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\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(\"MediaStoreFullAccess\"),\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(\"AWS\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(fmt.Sprintf(\"arn:aws:iam::%v:root\", currentGetCallerIdentity.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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mediastore:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleContainer.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"arn:aws:mediastore:%v:%v:container/%v/*\", current.Name, currentGetCallerIdentity.AccountId, name), 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(\"Bool\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SecureTransport\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"true\"),\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\t_, err = mediastore.NewContainerPolicy(ctx, \"example\", \u0026mediastore.ContainerPolicyArgs{\n\t\t\tContainerName: exampleContainer.Name,\n\t\t\tPolicy: 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\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.GetRegionArgs;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.mediastore.Container;\nimport com.pulumi.aws.mediastore.ContainerArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.mediastore.ContainerPolicy;\nimport com.pulumi.aws.mediastore.ContainerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();\n\n var exampleContainer = new Container(\"exampleContainer\", ContainerArgs.builder() \n .name(\"example\")\n .build());\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .sid(\"MediaStoreFullAccess\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"AWS\")\n .identifiers(String.format(\"arn:aws:iam::%s:root\", currentGetCallerIdentity.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .actions(\"mediastore:*\")\n .resources(exampleContainer.name().applyValue(name -\u003e String.format(\"arn:aws:mediastore:%s:%s:container/%s/*\", current.applyValue(getRegionResult -\u003e getRegionResult.name()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()),name)))\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"Bool\")\n .variable(\"aws:SecureTransport\")\n .values(\"true\")\n .build())\n .build())\n .build());\n\n var exampleContainerPolicy = new ContainerPolicy(\"exampleContainerPolicy\", ContainerPolicyArgs.builder() \n .containerName(exampleContainer.name())\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleContainer:\n type: aws:mediastore:Container\n name: example\n properties:\n name: example\n exampleContainerPolicy:\n type: aws:mediastore:ContainerPolicy\n name: example\n properties:\n containerName: ${exampleContainer.name}\n policy: ${example.json}\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n currentGetCallerIdentity:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: MediaStoreFullAccess\n effect: Allow\n principals:\n - type: AWS\n identifiers:\n - arn:aws:iam::${currentGetCallerIdentity.accountId}:root\n actions:\n - mediastore:*\n resources:\n - arn:aws:mediastore:${current.name}:${currentGetCallerIdentity.accountId}:container/${exampleContainer.name}/*\n conditions:\n - test: Bool\n variable: aws:SecureTransport\n values:\n - 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MediaStore Container Policy using the MediaStore Container Name. For example:\n\n```sh\n$ pulumi import aws:mediastore/containerPolicy:ContainerPolicy example example\n```\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getRegion({});\nconst currentGetCallerIdentity = aws.getCallerIdentity({});\nconst exampleContainer = new aws.mediastore.Container(\"example\", {name: \"example\"});\nconst example = aws.iam.getPolicyDocumentOutput({\n statements: [{\n sid: \"MediaStoreFullAccess\",\n effect: \"Allow\",\n principals: [{\n type: \"AWS\",\n identifiers: [currentGetCallerIdentity.then(currentGetCallerIdentity =\u003e `arn:aws:iam::${currentGetCallerIdentity.accountId}:root`)],\n }],\n actions: [\"mediastore:*\"],\n resources: [pulumi.all([current, currentGetCallerIdentity, exampleContainer.name]).apply(([current, currentGetCallerIdentity, name]) =\u003e `arn:aws:mediastore:${current.name}:${currentGetCallerIdentity.accountId}:container/${name}/*`)],\n conditions: [{\n test: \"Bool\",\n variable: \"aws:SecureTransport\",\n values: [\"true\"],\n }],\n }],\n});\nconst exampleContainerPolicy = new aws.mediastore.ContainerPolicy(\"example\", {\n containerName: exampleContainer.name,\n policy: example.apply(example =\u003e example.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ncurrent_get_caller_identity = aws.get_caller_identity()\nexample_container = aws.mediastore.Container(\"example\", name=\"example\")\nexample = aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n sid=\"MediaStoreFullAccess\",\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"AWS\",\n identifiers=[f\"arn:aws:iam::{current_get_caller_identity.account_id}:root\"],\n )],\n actions=[\"mediastore:*\"],\n resources=[example_container.name.apply(lambda name: f\"arn:aws:mediastore:{current.name}:{current_get_caller_identity.account_id}:container/{name}/*\")],\n conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs(\n test=\"Bool\",\n variable=\"aws:SecureTransport\",\n values=[\"true\"],\n )],\n)])\nexample_container_policy = aws.mediastore.ContainerPolicy(\"example\",\n container_name=example_container.name,\n policy=example.json)\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 current = Aws.GetRegion.Invoke();\n\n var currentGetCallerIdentity = Aws.GetCallerIdentity.Invoke();\n\n var exampleContainer = new Aws.MediaStore.Container(\"example\", new()\n {\n Name = \"example\",\n });\n\n var example = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"MediaStoreFullAccess\",\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"AWS\",\n Identifiers = new[]\n {\n $\"arn:aws:iam::{currentGetCallerIdentity.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:root\",\n },\n },\n },\n Actions = new[]\n {\n \"mediastore:*\",\n },\n Resources = new[]\n {\n $\"arn:aws:mediastore:{current.Apply(getRegionResult =\u003e getRegionResult.Name)}:{currentGetCallerIdentity.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId)}:container/{exampleContainer.Name}/*\",\n },\n Conditions = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs\n {\n Test = \"Bool\",\n Variable = \"aws:SecureTransport\",\n Values = new[]\n {\n \"true\",\n },\n },\n },\n },\n },\n });\n\n var exampleContainerPolicy = new Aws.MediaStore.ContainerPolicy(\"example\", new()\n {\n ContainerName = exampleContainer.Name,\n Policy = example.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/mediastore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrentGetCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContainer, err := mediastore.NewContainer(ctx, \"example\", \u0026mediastore.ContainerArgs{\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\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(\"MediaStoreFullAccess\"),\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(\"AWS\"),\n\t\t\t\t\t\t\tIdentifiers: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(fmt.Sprintf(\"arn:aws:iam::%v:root\", currentGetCallerIdentity.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\tActions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"mediastore:*\"),\n\t\t\t\t\t},\n\t\t\t\t\tResources: pulumi.StringArray{\n\t\t\t\t\t\texampleContainer.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"arn:aws:mediastore:%v:%v:container/%v/*\", current.Name, currentGetCallerIdentity.AccountId, name), 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(\"Bool\"),\n\t\t\t\t\t\t\tVariable: pulumi.String(\"aws:SecureTransport\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"true\"),\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\t_, err = mediastore.NewContainerPolicy(ctx, \"example\", \u0026mediastore.ContainerPolicyArgs{\n\t\t\tContainerName: exampleContainer.Name,\n\t\t\tPolicy: 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\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.GetRegionArgs;\nimport com.pulumi.aws.inputs.GetCallerIdentityArgs;\nimport com.pulumi.aws.mediastore.Container;\nimport com.pulumi.aws.mediastore.ContainerArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.mediastore.ContainerPolicy;\nimport com.pulumi.aws.mediastore.ContainerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();\n\n var exampleContainer = new Container(\"exampleContainer\", ContainerArgs.builder() \n .name(\"example\")\n .build());\n\n final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .sid(\"MediaStoreFullAccess\")\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"AWS\")\n .identifiers(String.format(\"arn:aws:iam::%s:root\", currentGetCallerIdentity.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId())))\n .build())\n .actions(\"mediastore:*\")\n .resources(exampleContainer.name().applyValue(name -\u003e String.format(\"arn:aws:mediastore:%s:%s:container/%s/*\", current.applyValue(getRegionResult -\u003e getRegionResult.name()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()),name)))\n .conditions(GetPolicyDocumentStatementConditionArgs.builder()\n .test(\"Bool\")\n .variable(\"aws:SecureTransport\")\n .values(\"true\")\n .build())\n .build())\n .build());\n\n var exampleContainerPolicy = new ContainerPolicy(\"exampleContainerPolicy\", ContainerPolicyArgs.builder() \n .containerName(exampleContainer.name())\n .policy(example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult).applyValue(example -\u003e example.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json())))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleContainer:\n type: aws:mediastore:Container\n name: example\n properties:\n name: example\n exampleContainerPolicy:\n type: aws:mediastore:ContainerPolicy\n name: example\n properties:\n containerName: ${exampleContainer.name}\n policy: ${example.json}\nvariables:\n current:\n fn::invoke:\n Function: aws:getRegion\n Arguments: {}\n currentGetCallerIdentity:\n fn::invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n example:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: MediaStoreFullAccess\n effect: Allow\n principals:\n - type: AWS\n identifiers:\n - arn:aws:iam::${currentGetCallerIdentity.accountId}:root\n actions:\n - mediastore:*\n resources:\n - arn:aws:mediastore:${current.name}:${currentGetCallerIdentity.accountId}:container/${exampleContainer.name}/*\n conditions:\n - test: Bool\n variable: aws:SecureTransport\n values:\n - 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import MediaStore Container Policy using the MediaStore Container Name. For example:\n\n```sh\n$ pulumi import aws:mediastore/containerPolicy:ContainerPolicy example example\n```\n", "properties": { "containerName": { "type": "string", @@ -308731,6 +310017,74 @@ "type": "object" } }, + "aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation": { + "description": "Resource for managing an AWS Redshift Serverless Custom Domain Association.\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.acm.Certificate(\"example\", {domainName: \"example.com\"});\nconst exampleNamespace = new aws.redshiftserverless.Namespace(\"example\", {namespaceName: \"example-namespace\"});\nconst exampleWorkgroup = new aws.redshiftserverless.Workgroup(\"example\", {\n workgroupName: \"example-workgroup\",\n namespaceName: exampleNamespace.namespaceName,\n});\nconst exampleCustomDomainAssociation = new aws.redshiftserverless.CustomDomainAssociation(\"example\", {\n workgroupName: exampleWorkgroup.workgroupName,\n customDomainName: \"example.com\",\n customDomainCertificateArn: example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.acm.Certificate(\"example\", domain_name=\"example.com\")\nexample_namespace = aws.redshiftserverless.Namespace(\"example\", namespace_name=\"example-namespace\")\nexample_workgroup = aws.redshiftserverless.Workgroup(\"example\",\n workgroup_name=\"example-workgroup\",\n namespace_name=example_namespace.namespace_name)\nexample_custom_domain_association = aws.redshiftserverless.CustomDomainAssociation(\"example\",\n workgroup_name=example_workgroup.workgroup_name,\n custom_domain_name=\"example.com\",\n custom_domain_certificate_arn=example.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.Acm.Certificate(\"example\", new()\n {\n DomainName = \"example.com\",\n });\n\n var exampleNamespace = new Aws.RedshiftServerless.Namespace(\"example\", new()\n {\n NamespaceName = \"example-namespace\",\n });\n\n var exampleWorkgroup = new Aws.RedshiftServerless.Workgroup(\"example\", new()\n {\n WorkgroupName = \"example-workgroup\",\n NamespaceName = exampleNamespace.NamespaceName,\n });\n\n var exampleCustomDomainAssociation = new Aws.RedshiftServerless.CustomDomainAssociation(\"example\", new()\n {\n WorkgroupName = exampleWorkgroup.WorkgroupName,\n CustomDomainName = \"example.com\",\n CustomDomainCertificateArn = example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshiftserverless\"\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 := acm.NewCertificate(ctx, \"example\", \u0026acm.CertificateArgs{\n\t\t\tDomainName: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNamespace, err := redshiftserverless.NewNamespace(ctx, \"example\", \u0026redshiftserverless.NamespaceArgs{\n\t\t\tNamespaceName: pulumi.String(\"example-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkgroup, err := redshiftserverless.NewWorkgroup(ctx, \"example\", \u0026redshiftserverless.WorkgroupArgs{\n\t\t\tWorkgroupName: pulumi.String(\"example-workgroup\"),\n\t\t\tNamespaceName: exampleNamespace.NamespaceName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redshiftserverless.NewCustomDomainAssociation(ctx, \"example\", \u0026redshiftserverless.CustomDomainAssociationArgs{\n\t\t\tWorkgroupName: exampleWorkgroup.WorkgroupName,\n\t\t\tCustomDomainName: pulumi.String(\"example.com\"),\n\t\t\tCustomDomainCertificateArn: example.Arn,\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.acm.Certificate;\nimport com.pulumi.aws.acm.CertificateArgs;\nimport com.pulumi.aws.redshiftserverless.Namespace;\nimport com.pulumi.aws.redshiftserverless.NamespaceArgs;\nimport com.pulumi.aws.redshiftserverless.Workgroup;\nimport com.pulumi.aws.redshiftserverless.WorkgroupArgs;\nimport com.pulumi.aws.redshiftserverless.CustomDomainAssociation;\nimport com.pulumi.aws.redshiftserverless.CustomDomainAssociationArgs;\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 Certificate(\"example\", CertificateArgs.builder() \n .domainName(\"example.com\")\n .build());\n\n var exampleNamespace = new Namespace(\"exampleNamespace\", NamespaceArgs.builder() \n .namespaceName(\"example-namespace\")\n .build());\n\n var exampleWorkgroup = new Workgroup(\"exampleWorkgroup\", WorkgroupArgs.builder() \n .workgroupName(\"example-workgroup\")\n .namespaceName(exampleNamespace.namespaceName())\n .build());\n\n var exampleCustomDomainAssociation = new CustomDomainAssociation(\"exampleCustomDomainAssociation\", CustomDomainAssociationArgs.builder() \n .workgroupName(exampleWorkgroup.workgroupName())\n .customDomainName(\"example.com\")\n .customDomainCertificateArn(example.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:acm:Certificate\n properties:\n domainName: example.com\n exampleNamespace:\n type: aws:redshiftserverless:Namespace\n name: example\n properties:\n namespaceName: example-namespace\n exampleWorkgroup:\n type: aws:redshiftserverless:Workgroup\n name: example\n properties:\n workgroupName: example-workgroup\n namespaceName: ${exampleNamespace.namespaceName}\n exampleCustomDomainAssociation:\n type: aws:redshiftserverless:CustomDomainAssociation\n name: example\n properties:\n workgroupName: ${exampleWorkgroup.workgroupName}\n customDomainName: example.com\n customDomainCertificateArn: ${example.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example:\n\n```sh\n$ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com\n```\n", + "properties": { + "customDomainCertificateArn": { + "type": "string", + "description": "ARN of the certificate for the custom domain association.\n" + }, + "customDomainCertificateExpiryTime": { + "type": "string", + "description": "Expiration time for the certificate.\n" + }, + "customDomainName": { + "type": "string", + "description": "Custom domain to associate with the workgroup.\n" + }, + "workgroupName": { + "type": "string", + "description": "Name of the workgroup.\n" + } + }, + "required": [ + "customDomainCertificateArn", + "customDomainCertificateExpiryTime", + "customDomainName", + "workgroupName" + ], + "inputProperties": { + "customDomainCertificateArn": { + "type": "string", + "description": "ARN of the certificate for the custom domain association.\n" + }, + "customDomainName": { + "type": "string", + "description": "Custom domain to associate with the workgroup.\n" + }, + "workgroupName": { + "type": "string", + "description": "Name of the workgroup.\n" + } + }, + "requiredInputs": [ + "customDomainCertificateArn", + "customDomainName", + "workgroupName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CustomDomainAssociation resources.\n", + "properties": { + "customDomainCertificateArn": { + "type": "string", + "description": "ARN of the certificate for the custom domain association.\n" + }, + "customDomainCertificateExpiryTime": { + "type": "string", + "description": "Expiration time for the certificate.\n" + }, + "customDomainName": { + "type": "string", + "description": "Custom domain to associate with the workgroup.\n" + }, + "workgroupName": { + "type": "string", + "description": "Name of the workgroup.\n" + } + }, + "type": "object" + } + }, "aws:redshiftserverless/endpointAccess:EndpointAccess": { "description": "Creates a new Amazon Redshift Serverless Endpoint Access.\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.redshiftserverless.EndpointAccess(\"example\", {\n endpointName: \"example\",\n workgroupName: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.redshiftserverless.EndpointAccess(\"example\",\n endpoint_name=\"example\",\n workgroup_name=\"example\")\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.RedshiftServerless.EndpointAccess(\"example\", new()\n {\n EndpointName = \"example\",\n WorkgroupName = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshiftserverless\"\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 := redshiftserverless.NewEndpointAccess(ctx, \"example\", \u0026redshiftserverless.EndpointAccessArgs{\n\t\t\tEndpointName: pulumi.String(\"example\"),\n\t\t\tWorkgroupName: pulumi.String(\"example\"),\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.redshiftserverless.EndpointAccess;\nimport com.pulumi.aws.redshiftserverless.EndpointAccessArgs;\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 EndpointAccess(\"example\", EndpointAccessArgs.builder() \n .endpointName(\"example\")\n .workgroupName(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:redshiftserverless:EndpointAccess\n properties:\n endpointName: example\n workgroupName: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Redshift Serverless Endpoint Access using the `endpoint_name`. For example:\n\n```sh\n$ pulumi import aws:redshiftserverless/endpointAccess:EndpointAccess example example\n```\n", "properties": { @@ -324932,7 +326286,7 @@ }, "secretBinary": { "type": "string", - "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64.\n", + "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64.\n", "secret": true }, "secretId": { @@ -324941,7 +326295,7 @@ }, "secretString": { "type": "string", - "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set.\n", + "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set.\n", "secret": true }, "versionId": { @@ -324965,7 +326319,7 @@ "inputProperties": { "secretBinary": { "type": "string", - "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64.\n", + "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64.\n", "secret": true, "willReplaceOnChanges": true }, @@ -324976,7 +326330,7 @@ }, "secretString": { "type": "string", - "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set.\n", + "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set.\n", "secret": true, "willReplaceOnChanges": true }, @@ -325000,7 +326354,7 @@ }, "secretBinary": { "type": "string", - "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64.\n", + "description": "Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64.\n", "secret": true, "willReplaceOnChanges": true }, @@ -325011,7 +326365,7 @@ }, "secretString": { "type": "string", - "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set.\n", + "description": "Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set.\n", "secret": true, "willReplaceOnChanges": true }, @@ -326628,6 +327982,55 @@ "type": "object" } }, + "aws:servicecatalog/appregistryApplication:AppregistryApplication": { + "description": "Resource for managing an AWS Service Catalog AppRegistry Application.\n\n\u003e An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under \"MyApplications\".\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.servicecatalog.AppregistryApplication(\"example\", {name: \"example-app\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.AppregistryApplication(\"example\", name=\"example-app\")\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.ServiceCatalog.AppregistryApplication(\"example\", new()\n {\n Name = \"example-app\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\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 := servicecatalog.NewAppregistryApplication(ctx, \"example\", \u0026servicecatalog.AppregistryApplicationArgs{\n\t\t\tName: pulumi.String(\"example-app\"),\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.servicecatalog.AppregistryApplication;\nimport com.pulumi.aws.servicecatalog.AppregistryApplicationArgs;\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 AppregistryApplication(\"example\", AppregistryApplicationArgs.builder() \n .name(\"example-app\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicecatalog:AppregistryApplication\n properties:\n name: example-app\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Connecting Resources\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.servicecatalog.AppregistryApplication(\"example\", {name: \"example-app\"});\nconst bucket = new aws.s3.BucketV2(\"bucket\", {\n bucket: \"example-bucket\",\n tags: {\n awsApplication: example.arn,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.AppregistryApplication(\"example\", name=\"example-app\")\nbucket = aws.s3.BucketV2(\"bucket\",\n bucket=\"example-bucket\",\n tags={\n \"awsApplication\": example.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.ServiceCatalog.AppregistryApplication(\"example\", new()\n {\n Name = \"example-app\",\n });\n\n var bucket = new Aws.S3.BucketV2(\"bucket\", new()\n {\n Bucket = \"example-bucket\",\n Tags = \n {\n { \"awsApplication\", example.Arn },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\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 := servicecatalog.NewAppregistryApplication(ctx, \"example\", \u0026servicecatalog.AppregistryApplicationArgs{\n\t\t\tName: pulumi.String(\"example-app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketV2(ctx, \"bucket\", \u0026s3.BucketV2Args{\n\t\t\tBucket: pulumi.String(\"example-bucket\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"awsApplication\": example.Arn,\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.servicecatalog.AppregistryApplication;\nimport com.pulumi.aws.servicecatalog.AppregistryApplicationArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\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 AppregistryApplication(\"example\", AppregistryApplicationArgs.builder() \n .name(\"example-app\")\n .build());\n\n var bucket = new BucketV2(\"bucket\", BucketV2Args.builder() \n .bucket(\"example-bucket\")\n .tags(Map.of(\"awsApplication\", example.arn()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicecatalog:AppregistryApplication\n properties:\n name: example-app\n bucket:\n type: aws:s3:BucketV2\n properties:\n bucket: example-bucket\n tags:\n awsApplication: ${example.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example:\n\n```sh\n$ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678\n```\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN (Amazon Resource Name) of the application.\n" + }, + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "name": { + "type": "string", + "description": "Name of the application. The name must be unique within an AWS region.\n\nThe following arguments are optional:\n" + } + }, + "required": [ + "arn", + "name" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "name": { + "type": "string", + "description": "Name of the application. The name must be unique within an AWS region.\n\nThe following arguments are optional:\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering AppregistryApplication resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "ARN (Amazon Resource Name) of the application.\n" + }, + "description": { + "type": "string", + "description": "Description of the application.\n" + }, + "name": { + "type": "string", + "description": "Name of the application. The name must be unique within an AWS region.\n\nThe following arguments are optional:\n" + } + }, + "type": "object" + } + }, "aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation": { "description": "Manages a Service Catalog Budget Resource Association.\n\n\u003e **Tip:** A \"resource\" is either a Service Catalog portfolio or product.\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.servicecatalog.BudgetResourceAssociation(\"example\", {\n budgetName: \"budget-pjtvyakdlyo3m\",\n resourceId: \"prod-dnigbtea24ste\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.BudgetResourceAssociation(\"example\",\n budget_name=\"budget-pjtvyakdlyo3m\",\n resource_id=\"prod-dnigbtea24ste\")\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.ServiceCatalog.BudgetResourceAssociation(\"example\", new()\n {\n BudgetName = \"budget-pjtvyakdlyo3m\",\n ResourceId = \"prod-dnigbtea24ste\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\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 := servicecatalog.NewBudgetResourceAssociation(ctx, \"example\", \u0026servicecatalog.BudgetResourceAssociationArgs{\n\t\t\tBudgetName: pulumi.String(\"budget-pjtvyakdlyo3m\"),\n\t\t\tResourceId: pulumi.String(\"prod-dnigbtea24ste\"),\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.servicecatalog.BudgetResourceAssociation;\nimport com.pulumi.aws.servicecatalog.BudgetResourceAssociationArgs;\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 BudgetResourceAssociation(\"example\", BudgetResourceAssociationArgs.builder() \n .budgetName(\"budget-pjtvyakdlyo3m\")\n .resourceId(\"prod-dnigbtea24ste\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicecatalog:BudgetResourceAssociation\n properties:\n budgetName: budget-pjtvyakdlyo3m\n resourceId: prod-dnigbtea24ste\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import `aws_servicecatalog_budget_resource_association` using the budget name and resource ID. For example:\n\n```sh\n$ pulumi import aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation example budget-pjtvyakdlyo3m:prod-dnigbtea24ste\n```\n", "properties": { @@ -335401,7 +336804,8 @@ }, "dataType": { "type": "string", - "description": "Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).\n" + "description": "Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).\n", + "willReplaceOnChanges": true }, "description": { "type": "string", @@ -335471,7 +336875,8 @@ }, "dataType": { "type": "string", - "description": "Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).\n" + "description": "Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).\n", + "willReplaceOnChanges": true }, "description": { "type": "string", @@ -337307,7 +338712,7 @@ } }, "aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy": { - "description": "Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource\n\n\u003e **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `aws.ssoadmin.PermissionSet` resource.\nCreating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts.\n\n## Import\n\nUsing `pulumi import`, import SSO Permission Set Inline Policies using the `permission_set_arn` and `instance_arn` separated by a comma (`,`). For example:\n\n```sh\n$ pulumi import aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy example arn:aws:sso:::permissionSet/ssoins-2938j0x8920sbj72/ps-80383020jr9302rk,arn:aws:sso:::instance/ssoins-2938j0x8920sbj72\n```\n", + "description": "## Example Usage\n\n## Import\n\nUsing `pulumi import`, import SSO Permission Set Inline Policies using the `permission_set_arn` and `instance_arn` separated by a comma (`,`). For example:\n\n```sh\n$ pulumi import aws:ssoadmin/permissionSetInlinePolicy:PermissionSetInlinePolicy example arn:aws:sso:::permissionSet/ssoins-2938j0x8920sbj72/ps-80383020jr9302rk,arn:aws:sso:::instance/ssoins-2938j0x8920sbj72\n```\n", "properties": { "inlinePolicy": { "type": "string", @@ -340944,7 +342349,7 @@ } }, "aws:transfer/access:Access": { - "description": "Provides a AWS Transfer Access resource.\n\n## Example Usage\n\n### Basic 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.transfer.Access(\"example\", {\n externalId: \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n serverId: exampleAwsTransferServer.id,\n role: exampleAwsIamRole.arn,\n homeDirectory: `/${exampleAwsS3Bucket.id}/`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Access(\"example\",\n external_id=\"S-1-1-12-1234567890-123456789-1234567890-1234\",\n server_id=example_aws_transfer_server[\"id\"],\n role=example_aws_iam_role[\"arn\"],\n home_directory=f\"/{example_aws_s3_bucket['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 example = new Aws.Transfer.Access(\"example\", new()\n {\n ExternalId = \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n ServerId = exampleAwsTransferServer.Id,\n Role = exampleAwsIamRole.Arn,\n HomeDirectory = $\"/{exampleAwsS3Bucket.Id}/\",\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/transfer\"\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 := transfer.NewAccess(ctx, \"example\", \u0026transfer.AccessArgs{\n\t\t\tExternalId: pulumi.String(\"S-1-1-12-1234567890-123456789-1234567890-1234\"),\n\t\t\tServerId: pulumi.Any(exampleAwsTransferServer.Id),\n\t\t\tRole: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tHomeDirectory: pulumi.String(fmt.Sprintf(\"/%v/\", exampleAwsS3Bucket.Id)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Access;\nimport com.pulumi.aws.transfer.AccessArgs;\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 Access(\"example\", AccessArgs.builder() \n .externalId(\"S-1-1-12-1234567890-123456789-1234567890-1234\")\n .serverId(exampleAwsTransferServer.id())\n .role(exampleAwsIamRole.arn())\n .homeDirectory(String.format(\"/%s/\", exampleAwsS3Bucket.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Access\n properties:\n externalId: S-1-1-12-1234567890-123456789-1234567890-1234\n serverId: ${exampleAwsTransferServer.id}\n role: ${exampleAwsIamRole.arn}\n homeDirectory: /${exampleAwsS3Bucket.id}/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic EFS\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.transfer.Access(\"test\", {\n externalId: \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n serverId: testAwsTransferServer.id,\n role: testAwsIamRole.arn,\n homeDirectory: `/${testAwsEfsFileSystem.id}/`,\n posixProfile: {\n gid: 1000,\n uid: 1000,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.transfer.Access(\"test\",\n external_id=\"S-1-1-12-1234567890-123456789-1234567890-1234\",\n server_id=test_aws_transfer_server[\"id\"],\n role=test_aws_iam_role[\"arn\"],\n home_directory=f\"/{test_aws_efs_file_system['id']}/\",\n posix_profile=aws.transfer.AccessPosixProfileArgs(\n gid=1000,\n uid=1000,\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.Transfer.Access(\"test\", new()\n {\n ExternalId = \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n ServerId = testAwsTransferServer.Id,\n Role = testAwsIamRole.Arn,\n HomeDirectory = $\"/{testAwsEfsFileSystem.Id}/\",\n PosixProfile = new Aws.Transfer.Inputs.AccessPosixProfileArgs\n {\n Gid = 1000,\n Uid = 1000,\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/transfer\"\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 := transfer.NewAccess(ctx, \"test\", \u0026transfer.AccessArgs{\n\t\t\tExternalId: pulumi.String(\"S-1-1-12-1234567890-123456789-1234567890-1234\"),\n\t\t\tServerId: pulumi.Any(testAwsTransferServer.Id),\n\t\t\tRole: pulumi.Any(testAwsIamRole.Arn),\n\t\t\tHomeDirectory: pulumi.String(fmt.Sprintf(\"/%v/\", testAwsEfsFileSystem.Id)),\n\t\t\tPosixProfile: \u0026transfer.AccessPosixProfileArgs{\n\t\t\t\tGid: pulumi.Int(1000),\n\t\t\t\tUid: pulumi.Int(1000),\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.transfer.Access;\nimport com.pulumi.aws.transfer.AccessArgs;\nimport com.pulumi.aws.transfer.inputs.AccessPosixProfileArgs;\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 Access(\"test\", AccessArgs.builder() \n .externalId(\"S-1-1-12-1234567890-123456789-1234567890-1234\")\n .serverId(testAwsTransferServer.id())\n .role(testAwsIamRole.arn())\n .homeDirectory(String.format(\"/%s/\", testAwsEfsFileSystem.id()))\n .posixProfile(AccessPosixProfileArgs.builder()\n .gid(1000)\n .uid(1000)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:transfer:Access\n properties:\n externalId: S-1-1-12-1234567890-123456789-1234567890-1234\n serverId: ${testAwsTransferServer.id}\n role: ${testAwsIamRole.arn}\n homeDirectory: /${testAwsEfsFileSystem.id}/\n posixProfile:\n gid: 1000\n uid: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Transfer Accesses using the `server_id` and `external_id`. For example:\n\n```sh\n$ pulumi import aws:transfer/access:Access example s-12345678/S-1-1-12-1234567890-123456789-1234567890-1234\n```\n", + "description": "Provides a AWS Transfer Access resource.\n\n\u003e **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n\n## Example Usage\n\n### Basic 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.transfer.Access(\"example\", {\n externalId: \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n serverId: exampleAwsTransferServer.id,\n role: exampleAwsIamRole.arn,\n homeDirectory: `/${exampleAwsS3Bucket.id}/`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Access(\"example\",\n external_id=\"S-1-1-12-1234567890-123456789-1234567890-1234\",\n server_id=example_aws_transfer_server[\"id\"],\n role=example_aws_iam_role[\"arn\"],\n home_directory=f\"/{example_aws_s3_bucket['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 example = new Aws.Transfer.Access(\"example\", new()\n {\n ExternalId = \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n ServerId = exampleAwsTransferServer.Id,\n Role = exampleAwsIamRole.Arn,\n HomeDirectory = $\"/{exampleAwsS3Bucket.Id}/\",\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/transfer\"\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 := transfer.NewAccess(ctx, \"example\", \u0026transfer.AccessArgs{\n\t\t\tExternalId: pulumi.String(\"S-1-1-12-1234567890-123456789-1234567890-1234\"),\n\t\t\tServerId: pulumi.Any(exampleAwsTransferServer.Id),\n\t\t\tRole: pulumi.Any(exampleAwsIamRole.Arn),\n\t\t\tHomeDirectory: pulumi.String(fmt.Sprintf(\"/%v/\", exampleAwsS3Bucket.Id)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Access;\nimport com.pulumi.aws.transfer.AccessArgs;\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 Access(\"example\", AccessArgs.builder() \n .externalId(\"S-1-1-12-1234567890-123456789-1234567890-1234\")\n .serverId(exampleAwsTransferServer.id())\n .role(exampleAwsIamRole.arn())\n .homeDirectory(String.format(\"/%s/\", exampleAwsS3Bucket.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Access\n properties:\n externalId: S-1-1-12-1234567890-123456789-1234567890-1234\n serverId: ${exampleAwsTransferServer.id}\n role: ${exampleAwsIamRole.arn}\n homeDirectory: /${exampleAwsS3Bucket.id}/\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic EFS\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.transfer.Access(\"test\", {\n externalId: \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n serverId: testAwsTransferServer.id,\n role: testAwsIamRole.arn,\n homeDirectory: `/${testAwsEfsFileSystem.id}/`,\n posixProfile: {\n gid: 1000,\n uid: 1000,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.transfer.Access(\"test\",\n external_id=\"S-1-1-12-1234567890-123456789-1234567890-1234\",\n server_id=test_aws_transfer_server[\"id\"],\n role=test_aws_iam_role[\"arn\"],\n home_directory=f\"/{test_aws_efs_file_system['id']}/\",\n posix_profile=aws.transfer.AccessPosixProfileArgs(\n gid=1000,\n uid=1000,\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.Transfer.Access(\"test\", new()\n {\n ExternalId = \"S-1-1-12-1234567890-123456789-1234567890-1234\",\n ServerId = testAwsTransferServer.Id,\n Role = testAwsIamRole.Arn,\n HomeDirectory = $\"/{testAwsEfsFileSystem.Id}/\",\n PosixProfile = new Aws.Transfer.Inputs.AccessPosixProfileArgs\n {\n Gid = 1000,\n Uid = 1000,\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/transfer\"\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 := transfer.NewAccess(ctx, \"test\", \u0026transfer.AccessArgs{\n\t\t\tExternalId: pulumi.String(\"S-1-1-12-1234567890-123456789-1234567890-1234\"),\n\t\t\tServerId: pulumi.Any(testAwsTransferServer.Id),\n\t\t\tRole: pulumi.Any(testAwsIamRole.Arn),\n\t\t\tHomeDirectory: pulumi.String(fmt.Sprintf(\"/%v/\", testAwsEfsFileSystem.Id)),\n\t\t\tPosixProfile: \u0026transfer.AccessPosixProfileArgs{\n\t\t\t\tGid: pulumi.Int(1000),\n\t\t\t\tUid: pulumi.Int(1000),\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.transfer.Access;\nimport com.pulumi.aws.transfer.AccessArgs;\nimport com.pulumi.aws.transfer.inputs.AccessPosixProfileArgs;\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 Access(\"test\", AccessArgs.builder() \n .externalId(\"S-1-1-12-1234567890-123456789-1234567890-1234\")\n .serverId(testAwsTransferServer.id())\n .role(testAwsIamRole.arn())\n .homeDirectory(String.format(\"/%s/\", testAwsEfsFileSystem.id()))\n .posixProfile(AccessPosixProfileArgs.builder()\n .gid(1000)\n .uid(1000)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:transfer:Access\n properties:\n externalId: S-1-1-12-1234567890-123456789-1234567890-1234\n serverId: ${testAwsTransferServer.id}\n role: ${testAwsIamRole.arn}\n homeDirectory: /${testAwsEfsFileSystem.id}/\n posixProfile:\n gid: 1000\n uid: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Transfer Accesses using the `server_id` and `external_id`. For example:\n\n```sh\n$ pulumi import aws:transfer/access:Access example s-12345678/S-1-1-12-1234567890-123456789-1234567890-1234\n```\n", "properties": { "externalId": { "type": "string", @@ -342145,7 +343550,7 @@ } }, "aws:transfer/user:User": { - "description": "Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` 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 fooServer = new aws.transfer.Server(\"foo\", {\n identityProviderType: \"SERVICE_MANAGED\",\n tags: {\n NAME: \"tf-acc-test-transfer-server\",\n },\n});\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"transfer.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst fooRole = new aws.iam.Role(\"foo\", {\n name: \"tf-test-transfer-user-iam-role\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst foo = aws.iam.getPolicyDocument({\n statements: [{\n sid: \"AllowFullAccesstoS3\",\n effect: \"Allow\",\n actions: [\"s3:*\"],\n resources: [\"*\"],\n }],\n});\nconst fooRolePolicy = new aws.iam.RolePolicy(\"foo\", {\n name: \"tf-test-transfer-user-iam-policy\",\n role: fooRole.id,\n policy: foo.then(foo =\u003e foo.json),\n});\nconst fooUser = new aws.transfer.User(\"foo\", {\n serverId: fooServer.id,\n userName: \"tftestuser\",\n role: fooRole.arn,\n homeDirectoryType: \"LOGICAL\",\n homeDirectoryMappings: [{\n entry: \"/test.pdf\",\n target: \"/bucket3/test-path/tftestuser.pdf\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_server = aws.transfer.Server(\"foo\",\n identity_provider_type=\"SERVICE_MANAGED\",\n tags={\n \"NAME\": \"tf-acc-test-transfer-server\",\n })\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"transfer.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nfoo_role = aws.iam.Role(\"foo\",\n name=\"tf-test-transfer-user-iam-role\",\n assume_role_policy=assume_role.json)\nfoo = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n sid=\"AllowFullAccesstoS3\",\n effect=\"Allow\",\n actions=[\"s3:*\"],\n resources=[\"*\"],\n)])\nfoo_role_policy = aws.iam.RolePolicy(\"foo\",\n name=\"tf-test-transfer-user-iam-policy\",\n role=foo_role.id,\n policy=foo.json)\nfoo_user = aws.transfer.User(\"foo\",\n server_id=foo_server.id,\n user_name=\"tftestuser\",\n role=foo_role.arn,\n home_directory_type=\"LOGICAL\",\n home_directory_mappings=[aws.transfer.UserHomeDirectoryMappingArgs(\n entry=\"/test.pdf\",\n target=\"/bucket3/test-path/tftestuser.pdf\",\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 fooServer = new Aws.Transfer.Server(\"foo\", new()\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n Tags = \n {\n { \"NAME\", \"tf-acc-test-transfer-server\" },\n },\n });\n\n var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"transfer.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var fooRole = new Aws.Iam.Role(\"foo\", new()\n {\n Name = \"tf-test-transfer-user-iam-role\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var foo = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AllowFullAccesstoS3\",\n Effect = \"Allow\",\n Actions = new[]\n {\n \"s3:*\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var fooRolePolicy = new Aws.Iam.RolePolicy(\"foo\", new()\n {\n Name = \"tf-test-transfer-user-iam-policy\",\n Role = fooRole.Id,\n Policy = foo.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var fooUser = new Aws.Transfer.User(\"foo\", new()\n {\n ServerId = fooServer.Id,\n UserName = \"tftestuser\",\n Role = fooRole.Arn,\n HomeDirectoryType = \"LOGICAL\",\n HomeDirectoryMappings = new[]\n {\n new Aws.Transfer.Inputs.UserHomeDirectoryMappingArgs\n {\n Entry = \"/test.pdf\",\n Target = \"/bucket3/test-path/tftestuser.pdf\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooServer, err := transfer.NewServer(ctx, \"foo\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"SERVICE_MANAGED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"NAME\": pulumi.String(\"tf-acc-test-transfer-server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"transfer.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: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRole, err := iam.NewRole(ctx, \"foo\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"tf-test-transfer-user-iam-role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tSid: pulumi.StringRef(\"AllowFullAccesstoS3\"),\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"s3:*\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"foo\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"tf-test-transfer-user-iam-policy\"),\n\t\t\tRole: fooRole.ID(),\n\t\t\tPolicy: pulumi.String(foo.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewUser(ctx, \"foo\", \u0026transfer.UserArgs{\n\t\t\tServerId: fooServer.ID(),\n\t\t\tUserName: pulumi.String(\"tftestuser\"),\n\t\t\tRole: fooRole.Arn,\n\t\t\tHomeDirectoryType: pulumi.String(\"LOGICAL\"),\n\t\t\tHomeDirectoryMappings: transfer.UserHomeDirectoryMappingArray{\n\t\t\t\t\u0026transfer.UserHomeDirectoryMappingArgs{\n\t\t\t\t\tEntry: pulumi.String(\"/test.pdf\"),\n\t\t\t\t\tTarget: pulumi.String(\"/bucket3/test-path/tftestuser.pdf\"),\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.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.transfer.User;\nimport com.pulumi.aws.transfer.UserArgs;\nimport com.pulumi.aws.transfer.inputs.UserHomeDirectoryMappingArgs;\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 fooServer = new Server(\"fooServer\", ServerArgs.builder() \n .identityProviderType(\"SERVICE_MANAGED\")\n .tags(Map.of(\"NAME\", \"tf-acc-test-transfer-server\"))\n .build());\n\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"transfer.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var fooRole = new Role(\"fooRole\", RoleArgs.builder() \n .name(\"tf-test-transfer-user-iam-role\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var foo = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .sid(\"AllowFullAccesstoS3\")\n .effect(\"Allow\")\n .actions(\"s3:*\")\n .resources(\"*\")\n .build())\n .build());\n\n var fooRolePolicy = new RolePolicy(\"fooRolePolicy\", RolePolicyArgs.builder() \n .name(\"tf-test-transfer-user-iam-policy\")\n .role(fooRole.id())\n .policy(foo.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var fooUser = new User(\"fooUser\", UserArgs.builder() \n .serverId(fooServer.id())\n .userName(\"tftestuser\")\n .role(fooRole.arn())\n .homeDirectoryType(\"LOGICAL\")\n .homeDirectoryMappings(UserHomeDirectoryMappingArgs.builder()\n .entry(\"/test.pdf\")\n .target(\"/bucket3/test-path/tftestuser.pdf\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooServer:\n type: aws:transfer:Server\n name: foo\n properties:\n identityProviderType: SERVICE_MANAGED\n tags:\n NAME: tf-acc-test-transfer-server\n fooRole:\n type: aws:iam:Role\n name: foo\n properties:\n name: tf-test-transfer-user-iam-role\n assumeRolePolicy: ${assumeRole.json}\n fooRolePolicy:\n type: aws:iam:RolePolicy\n name: foo\n properties:\n name: tf-test-transfer-user-iam-policy\n role: ${fooRole.id}\n policy: ${foo.json}\n fooUser:\n type: aws:transfer:User\n name: foo\n properties:\n serverId: ${fooServer.id}\n userName: tftestuser\n role: ${fooRole.arn}\n homeDirectoryType: LOGICAL\n homeDirectoryMappings:\n - entry: /test.pdf\n target: /bucket3/test-path/tftestuser.pdf\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - transfer.amazonaws.com\n actions:\n - sts:AssumeRole\n foo:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: AllowFullAccesstoS3\n effect: Allow\n actions:\n - s3:*\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Transfer Users using the `server_id` and `user_name` separated by `/`. For example:\n\n```sh\n$ pulumi import aws:transfer/user:User bar s-12345678/test-username\n```\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooServer = new aws.transfer.Server(\"foo\", {\n identityProviderType: \"SERVICE_MANAGED\",\n tags: {\n NAME: \"tf-acc-test-transfer-server\",\n },\n});\nconst assumeRole = aws.iam.getPolicyDocument({\n statements: [{\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"transfer.amazonaws.com\"],\n }],\n actions: [\"sts:AssumeRole\"],\n }],\n});\nconst fooRole = new aws.iam.Role(\"foo\", {\n name: \"tf-test-transfer-user-iam-role\",\n assumeRolePolicy: assumeRole.then(assumeRole =\u003e assumeRole.json),\n});\nconst foo = aws.iam.getPolicyDocument({\n statements: [{\n sid: \"AllowFullAccesstoS3\",\n effect: \"Allow\",\n actions: [\"s3:*\"],\n resources: [\"*\"],\n }],\n});\nconst fooRolePolicy = new aws.iam.RolePolicy(\"foo\", {\n name: \"tf-test-transfer-user-iam-policy\",\n role: fooRole.id,\n policy: foo.then(foo =\u003e foo.json),\n});\nconst fooUser = new aws.transfer.User(\"foo\", {\n serverId: fooServer.id,\n userName: \"tftestuser\",\n role: fooRole.arn,\n homeDirectoryType: \"LOGICAL\",\n homeDirectoryMappings: [{\n entry: \"/test.pdf\",\n target: \"/bucket3/test-path/tftestuser.pdf\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_server = aws.transfer.Server(\"foo\",\n identity_provider_type=\"SERVICE_MANAGED\",\n tags={\n \"NAME\": \"tf-acc-test-transfer-server\",\n })\nassume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"transfer.amazonaws.com\"],\n )],\n actions=[\"sts:AssumeRole\"],\n)])\nfoo_role = aws.iam.Role(\"foo\",\n name=\"tf-test-transfer-user-iam-role\",\n assume_role_policy=assume_role.json)\nfoo = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n sid=\"AllowFullAccesstoS3\",\n effect=\"Allow\",\n actions=[\"s3:*\"],\n resources=[\"*\"],\n)])\nfoo_role_policy = aws.iam.RolePolicy(\"foo\",\n name=\"tf-test-transfer-user-iam-policy\",\n role=foo_role.id,\n policy=foo.json)\nfoo_user = aws.transfer.User(\"foo\",\n server_id=foo_server.id,\n user_name=\"tftestuser\",\n role=foo_role.arn,\n home_directory_type=\"LOGICAL\",\n home_directory_mappings=[aws.transfer.UserHomeDirectoryMappingArgs(\n entry=\"/test.pdf\",\n target=\"/bucket3/test-path/tftestuser.pdf\",\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 fooServer = new Aws.Transfer.Server(\"foo\", new()\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n Tags = \n {\n { \"NAME\", \"tf-acc-test-transfer-server\" },\n },\n });\n\n var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Effect = \"Allow\",\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"transfer.amazonaws.com\",\n },\n },\n },\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n },\n },\n });\n\n var fooRole = new Aws.Iam.Role(\"foo\", new()\n {\n Name = \"tf-test-transfer-user-iam-role\",\n AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var foo = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Sid = \"AllowFullAccesstoS3\",\n Effect = \"Allow\",\n Actions = new[]\n {\n \"s3:*\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var fooRolePolicy = new Aws.Iam.RolePolicy(\"foo\", new()\n {\n Name = \"tf-test-transfer-user-iam-policy\",\n Role = fooRole.Id,\n Policy = foo.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\n });\n\n var fooUser = new Aws.Transfer.User(\"foo\", new()\n {\n ServerId = fooServer.Id,\n UserName = \"tftestuser\",\n Role = fooRole.Arn,\n HomeDirectoryType = \"LOGICAL\",\n HomeDirectoryMappings = new[]\n {\n new Aws.Transfer.Inputs.UserHomeDirectoryMappingArgs\n {\n Entry = \"/test.pdf\",\n Target = \"/bucket3/test-path/tftestuser.pdf\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooServer, err := transfer.NewServer(ctx, \"foo\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"SERVICE_MANAGED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"NAME\": pulumi.String(\"tf-acc-test-transfer-server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tassumeRole, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"transfer.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: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRole, err := iam.NewRole(ctx, \"foo\", \u0026iam.RoleArgs{\n\t\t\tName: pulumi.String(\"tf-test-transfer-user-iam-role\"),\n\t\t\tAssumeRolePolicy: pulumi.String(assumeRole.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\t{\n\t\t\t\t\tSid: pulumi.StringRef(\"AllowFullAccesstoS3\"),\n\t\t\t\t\tEffect: pulumi.StringRef(\"Allow\"),\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"s3:*\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"foo\", \u0026iam.RolePolicyArgs{\n\t\t\tName: pulumi.String(\"tf-test-transfer-user-iam-policy\"),\n\t\t\tRole: fooRole.ID(),\n\t\t\tPolicy: pulumi.String(foo.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewUser(ctx, \"foo\", \u0026transfer.UserArgs{\n\t\t\tServerId: fooServer.ID(),\n\t\t\tUserName: pulumi.String(\"tftestuser\"),\n\t\t\tRole: fooRole.Arn,\n\t\t\tHomeDirectoryType: pulumi.String(\"LOGICAL\"),\n\t\t\tHomeDirectoryMappings: transfer.UserHomeDirectoryMappingArray{\n\t\t\t\t\u0026transfer.UserHomeDirectoryMappingArgs{\n\t\t\t\t\tEntry: pulumi.String(\"/test.pdf\"),\n\t\t\t\t\tTarget: pulumi.String(\"/bucket3/test-path/tftestuser.pdf\"),\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.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.transfer.User;\nimport com.pulumi.aws.transfer.UserArgs;\nimport com.pulumi.aws.transfer.inputs.UserHomeDirectoryMappingArgs;\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 fooServer = new Server(\"fooServer\", ServerArgs.builder() \n .identityProviderType(\"SERVICE_MANAGED\")\n .tags(Map.of(\"NAME\", \"tf-acc-test-transfer-server\"))\n .build());\n\n final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .effect(\"Allow\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"transfer.amazonaws.com\")\n .build())\n .actions(\"sts:AssumeRole\")\n .build())\n .build());\n\n var fooRole = new Role(\"fooRole\", RoleArgs.builder() \n .name(\"tf-test-transfer-user-iam-role\")\n .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n final var foo = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .sid(\"AllowFullAccesstoS3\")\n .effect(\"Allow\")\n .actions(\"s3:*\")\n .resources(\"*\")\n .build())\n .build());\n\n var fooRolePolicy = new RolePolicy(\"fooRolePolicy\", RolePolicyArgs.builder() \n .name(\"tf-test-transfer-user-iam-policy\")\n .role(fooRole.id())\n .policy(foo.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build());\n\n var fooUser = new User(\"fooUser\", UserArgs.builder() \n .serverId(fooServer.id())\n .userName(\"tftestuser\")\n .role(fooRole.arn())\n .homeDirectoryType(\"LOGICAL\")\n .homeDirectoryMappings(UserHomeDirectoryMappingArgs.builder()\n .entry(\"/test.pdf\")\n .target(\"/bucket3/test-path/tftestuser.pdf\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooServer:\n type: aws:transfer:Server\n name: foo\n properties:\n identityProviderType: SERVICE_MANAGED\n tags:\n NAME: tf-acc-test-transfer-server\n fooRole:\n type: aws:iam:Role\n name: foo\n properties:\n name: tf-test-transfer-user-iam-role\n assumeRolePolicy: ${assumeRole.json}\n fooRolePolicy:\n type: aws:iam:RolePolicy\n name: foo\n properties:\n name: tf-test-transfer-user-iam-policy\n role: ${fooRole.id}\n policy: ${foo.json}\n fooUser:\n type: aws:transfer:User\n name: foo\n properties:\n serverId: ${fooServer.id}\n userName: tftestuser\n role: ${fooRole.arn}\n homeDirectoryType: LOGICAL\n homeDirectoryMappings:\n - entry: /test.pdf\n target: /bucket3/test-path/tftestuser.pdf\nvariables:\n assumeRole:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - effect: Allow\n principals:\n - type: Service\n identifiers:\n - transfer.amazonaws.com\n actions:\n - sts:AssumeRole\n foo:\n fn::invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - sid: AllowFullAccesstoS3\n effect: Allow\n actions:\n - s3:*\n resources:\n - '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsing `pulumi import`, import Transfer Users using the `server_id` and `user_name` separated by `/`. For example:\n\n```sh\n$ pulumi import aws:transfer/user:User bar s-12345678/test-username\n```\n", "properties": { "arn": { "type": "string", @@ -354020,6 +355425,13 @@ "description": "The provider-assigned unique ID for this managed resource.\n", "type": "string" }, + "keyValueStoreAssociations": { + "description": "List of `aws.cloudfront.KeyValueStore` ARNs associated to the function.\n", + "items": { + "type": "string" + }, + "type": "array" + }, "lastModifiedTime": { "description": "When this resource was last modified.\n", "type": "string" @@ -354044,6 +355456,7 @@ "code", "comment", "etag", + "keyValueStoreAssociations", "lastModifiedTime", "name", "runtime", @@ -385069,11 +386482,15 @@ "description": "Provides the option group name for the DB snapshot.\n", "type": "string" }, + "originalSnapshotCreateTime": { + "description": "Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied.\n", + "type": "string" + }, "port": { "type": "integer" }, "snapshotCreateTime": { - "description": "Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC).\n", + "description": "Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied.\n", "type": "string" }, "snapshotType": { @@ -385117,6 +386534,7 @@ "kmsKeyId", "licenseModel", "optionGroupName", + "originalSnapshotCreateTime", "port", "snapshotCreateTime", "sourceDbSnapshotIdentifier", @@ -386016,6 +387434,74 @@ "type": "object" } }, + "aws:resourceexplorer/search:Search": { + "description": "Data source for managing an AWS Resource Explorer Search.\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 = aws.resourceexplorer.Search({\n queryString: \"region:us-west-2\",\n viewArn: test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.resourceexplorer.search(query_string=\"region:us-west-2\",\n view_arn=test[\"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 = Aws.ResourceExplorer.Search.Invoke(new()\n {\n QueryString = \"region:us-west-2\",\n ViewArn = test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourceexplorer\"\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 := resourceexplorer.Search(ctx, \u0026resourceexplorer.SearchArgs{\n\t\t\tQueryString: \"region:us-west-2\",\n\t\t\tViewArn: pulumi.StringRef(test.Arn),\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.resourceexplorer.ResourceexplorerFunctions;\nimport com.pulumi.aws.resourceexplorer.inputs.SearchArgs;\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 example = ResourceexplorerFunctions.Search(SearchArgs.builder()\n .queryString(\"region:us-west-2\")\n .viewArn(test.arn())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:resourceexplorer:Search\n Arguments:\n queryString: region:us-west-2\n viewArn: ${test.arn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking Search.\n", + "properties": { + "queryString": { + "type": "string", + "description": "String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results.\n\nThe following arguments are optional:\n" + }, + "resourceCounts": { + "type": "array", + "items": { + "$ref": "#/types/aws:resourceexplorer/SearchResourceCount:SearchResourceCount" + }, + "description": "Number of resources that match the query. See `resource_count` below.\n" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/types/aws:resourceexplorer/SearchResource:SearchResource" + }, + "description": "List of structures that describe the resources that match the query. See `resources` below.\n" + }, + "viewArn": { + "type": "string", + "description": "Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception.\n" + } + }, + "type": "object", + "required": [ + "queryString" + ] + }, + "outputs": { + "description": "A collection of values returned by Search.\n", + "properties": { + "id": { + "description": "Query String.\n", + "type": "string" + }, + "queryString": { + "type": "string" + }, + "resourceCounts": { + "description": "Number of resources that match the query. See `resource_count` below.\n", + "items": { + "$ref": "#/types/aws:resourceexplorer/SearchResourceCount:SearchResourceCount" + }, + "type": "array" + }, + "resources": { + "description": "List of structures that describe the resources that match the query. See `resources` below.\n", + "items": { + "$ref": "#/types/aws:resourceexplorer/SearchResource:SearchResource" + }, + "type": "array" + }, + "viewArn": { + "type": "string" + } + }, + "required": [ + "id", + "queryString" + ], + "type": "object" + } + }, "aws:resourcegroupstaggingapi/getResources:getResources": { "description": "Provides details about resource tagging.\n\n## Example Usage\n\n### Get All Resource Tag Mappings\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.resourcegroupstaggingapi.getResources({});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.resourcegroupstaggingapi.get_resources()\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.ResourceGroupsTaggingApi.GetResources.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourcegroupstaggingapi\"\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 := resourcegroupstaggingapi.GetResources(ctx, nil, 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.resourcegroupstaggingapi.ResourcegroupstaggingapiFunctions;\nimport com.pulumi.aws.resourcegroupstaggingapi.inputs.GetResourcesArgs;\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 = ResourcegroupstaggingapiFunctions.getResources();\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:resourcegroupstaggingapi:getResources\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter By Tag Key and Value\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.resourcegroupstaggingapi.getResources({\n tagFilters: [{\n key: \"tag-key\",\n values: [\n \"tag-value-1\",\n \"tag-value-2\",\n ],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.resourcegroupstaggingapi.get_resources(tag_filters=[aws.resourcegroupstaggingapi.GetResourcesTagFilterArgs(\n key=\"tag-key\",\n values=[\n \"tag-value-1\",\n \"tag-value-2\",\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 = Aws.ResourceGroupsTaggingApi.GetResources.Invoke(new()\n {\n TagFilters = new[]\n {\n new Aws.ResourceGroupsTaggingApi.Inputs.GetResourcesTagFilterInputArgs\n {\n Key = \"tag-key\",\n Values = new[]\n {\n \"tag-value-1\",\n \"tag-value-2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourcegroupstaggingapi\"\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 := resourcegroupstaggingapi.GetResources(ctx, \u0026resourcegroupstaggingapi.GetResourcesArgs{\n\t\t\tTagFilters: []resourcegroupstaggingapi.GetResourcesTagFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"tag-key\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"tag-value-1\",\n\t\t\t\t\t\t\"tag-value-2\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.resourcegroupstaggingapi.ResourcegroupstaggingapiFunctions;\nimport com.pulumi.aws.resourcegroupstaggingapi.inputs.GetResourcesArgs;\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 = ResourcegroupstaggingapiFunctions.getResources(GetResourcesArgs.builder()\n .tagFilters(GetResourcesTagFilterArgs.builder()\n .key(\"tag-key\")\n .values( \n \"tag-value-1\",\n \"tag-value-2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:resourcegroupstaggingapi:getResources\n Arguments:\n tagFilters:\n - key: tag-key\n values:\n - tag-value-1\n - tag-value-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter By Resource Type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.resourcegroupstaggingapi.getResources({\n resourceTypeFilters: [\"ec2:instance\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.resourcegroupstaggingapi.get_resources(resource_type_filters=[\"ec2:instance\"])\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.ResourceGroupsTaggingApi.GetResources.Invoke(new()\n {\n ResourceTypeFilters = new[]\n {\n \"ec2:instance\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourcegroupstaggingapi\"\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 := resourcegroupstaggingapi.GetResources(ctx, \u0026resourcegroupstaggingapi.GetResourcesArgs{\n\t\t\tResourceTypeFilters: []string{\n\t\t\t\t\"ec2:instance\",\n\t\t\t},\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.resourcegroupstaggingapi.ResourcegroupstaggingapiFunctions;\nimport com.pulumi.aws.resourcegroupstaggingapi.inputs.GetResourcesArgs;\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 = ResourcegroupstaggingapiFunctions.getResources(GetResourcesArgs.builder()\n .resourceTypeFilters(\"ec2:instance\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n fn::invoke:\n Function: aws:resourcegroupstaggingapi:getResources\n Arguments:\n resourceTypeFilters:\n - ec2:instance\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -388332,6 +389818,49 @@ "type": "object" } }, + "aws:servicecatalog/getAppregistryApplication:getAppregistryApplication": { + "description": "Data source for managing an AWS Service Catalog AppRegistry Application.\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 = aws.servicecatalog.getAppregistryApplication({\n id: \"application-1234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.get_appregistry_application(id=\"application-1234\")\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 = Aws.ServiceCatalog.GetAppregistryApplication.Invoke(new()\n {\n Id = \"application-1234\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\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 := servicecatalog.LookupAppregistryApplication(ctx, \u0026servicecatalog.LookupAppregistryApplicationArgs{\n\t\t\tId: \"application-1234\",\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.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs;\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 example = ServicecatalogFunctions.getAppregistryApplication(GetAppregistryApplicationArgs.builder()\n .id(\"application-1234\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:servicecatalog:getAppregistryApplication\n Arguments:\n id: application-1234\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getAppregistryApplication.\n", + "properties": { + "id": { + "type": "string", + "description": "Application identifier.\n" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "outputs": { + "description": "A collection of values returned by getAppregistryApplication.\n", + "properties": { + "arn": { + "description": "ARN (Amazon Resource Name) of the application.\n", + "type": "string" + }, + "description": { + "description": "Description of the application.\n", + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "description": "Name of the application.\n", + "type": "string" + } + }, + "required": [ + "arn", + "description", + "id", + "name" + ], + "type": "object" + } + }, "aws:servicecatalog/getConstraint:getConstraint": { "description": "Provides information on a Service Catalog Constraint.\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 = aws.servicecatalog.getConstraint({\n acceptLanguage: \"en\",\n id: \"cons-hrvy0335\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.get_constraint(accept_language=\"en\",\n id=\"cons-hrvy0335\")\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 = Aws.ServiceCatalog.GetConstraint.Invoke(new()\n {\n AcceptLanguage = \"en\",\n Id = \"cons-hrvy0335\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog\"\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 := servicecatalog.LookupConstraint(ctx, \u0026servicecatalog.LookupConstraintArgs{\n\t\t\tAcceptLanguage: pulumi.StringRef(\"en\"),\n\t\t\tId: \"cons-hrvy0335\",\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.servicecatalog.ServicecatalogFunctions;\nimport com.pulumi.aws.servicecatalog.inputs.GetConstraintArgs;\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 example = ServicecatalogFunctions.getConstraint(GetConstraintArgs.builder()\n .acceptLanguage(\"en\")\n .id(\"cons-hrvy0335\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: aws:servicecatalog:getConstraint\n Arguments:\n acceptLanguage: en\n id: cons-hrvy0335\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index 394ff26593f..09446370592 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -3,7 +3,7 @@ module github.com/pulumi/pulumi-aws/provider/v6 go 1.21.0 require ( - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.50 github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220923175450-ca71523cdc36 @@ -66,12 +66,12 @@ require ( github.com/armon/go-metrics v0.4.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.51.4 // indirect + github.com/aws/aws-sdk-go v1.51.9 // indirect github.com/aws/aws-sdk-go-v2 v1.26.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect - github.com/aws/aws-sdk-go-v2/config v1.27.8 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.8 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.9 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.9 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect @@ -79,6 +79,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.0 // indirect github.com/aws/aws-sdk-go-v2/service/account v1.16.3 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3 // indirect github.com/aws/aws-sdk-go-v2/service/amp v1.25.3 // indirect github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.1 // indirect github.com/aws/aws-sdk-go-v2/service/appfabric v1.7.3 // indirect @@ -86,11 +87,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.3 // indirect github.com/aws/aws-sdk-go-v2/service/athena v1.40.3 // indirect github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3 // indirect - github.com/aws/aws-sdk-go-v2/service/batch v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/batch v1.36.0 // indirect github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3 // indirect - github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0 // indirect github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3 // indirect - github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3 // indirect + github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4 // indirect github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3 // indirect github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloud9 v1.24.3 // indirect @@ -102,8 +103,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.39.1 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3 // indirect github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0 // indirect - github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2 // indirect + github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0 // indirect + github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0 // indirect github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/codedeploy v1.25.3 // indirect @@ -118,26 +119,28 @@ require ( github.com/aws/aws-sdk-go-v2/service/configservice v1.46.3 // indirect github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3 // indirect github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3 // indirect + github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3 // indirect github.com/aws/aws-sdk-go-v2/service/dax v1.19.3 // indirect github.com/aws/aws-sdk-go-v2/service/devopsguru v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/directoryservice v1.24.3 // indirect github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5 // indirect github.com/aws/aws-sdk-go-v2/service/eks v1.41.2 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0 // indirect github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/emr v1.39.3 // indirect github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4 // indirect github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3 // indirect - github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0 // indirect - github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3 // indirect + github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4 // indirect github.com/aws/aws-sdk-go-v2/service/fis v1.24.1 // indirect github.com/aws/aws-sdk-go-v2/service/glacier v1.22.3 // indirect github.com/aws/aws-sdk-go-v2/service/groundstation v1.26.3 // indirect @@ -153,20 +156,20 @@ require ( github.com/aws/aws-sdk-go-v2/service/internetmonitor v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1 // indirect - github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3 // indirect + github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0 // indirect github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.27.5 // indirect github.com/aws/aws-sdk-go-v2/service/lakeformation v1.31.4 // indirect github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3 // indirect github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3 // indirect - github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2 // indirect + github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3 // indirect github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3 // indirect - github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3 // indirect - github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3 // indirect + github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4 // indirect + github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3 // indirect github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.10.1 // indirect github.com/aws/aws-sdk-go-v2/service/mediastore v1.20.3 // indirect @@ -175,10 +178,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/oam v1.9.3 // indirect github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/osis v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3 // indirect github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3 // indirect github.com/aws/aws-sdk-go-v2/service/polly v1.39.5 // indirect - github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3 // indirect + github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0 // indirect github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/service/qldb v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/rbin v1.16.3 // indirect @@ -190,13 +194,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.10.3 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3 // indirect github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3 // indirect - github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4 // indirect + github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0 // indirect github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 // indirect github.com/aws/aws-sdk-go-v2/service/s3control v1.44.3 // indirect github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4 // indirect - github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3 // indirect + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5 // indirect + github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0 // indirect github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2 // indirect github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.26.3 // indirect github.com/aws/aws-sdk-go-v2/service/servicequotas v1.21.3 // indirect @@ -305,7 +309,7 @@ require ( github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.22.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.22.1 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.15.0 // indirect github.com/hashicorp/terraform-plugin-testing v1.7.0 // indirect @@ -420,7 +424,7 @@ require ( google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/grpc v1.62.0 // indirect + google.golang.org/grpc v1.62.1 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect diff --git a/provider/go.sum b/provider/go.sum index 1872a58ba2e..783b910da30 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1361,8 +1361,8 @@ github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.51.4 h1:yOVfGhRJyReBrACK0alLosJl8iXhWkNY1vrePYmhHdw= -github.com/aws/aws-sdk-go v1.51.4/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.9 h1:w6ZlyFX7l4+ZNVPmWw7LwOHSaBDDQuP22l1gh7OYu7w= +github.com/aws/aws-sdk-go v1.51.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= github.com/aws/aws-sdk-go-v2 v1.26.0 h1:/Ce4OCiM3EkpW7Y+xUnfAFpchU78K7/Ug01sZni9PgA= @@ -1371,17 +1371,17 @@ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3/go.mod h1:gNsR5CaXK github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= github.com/aws/aws-sdk-go-v2/config v1.15.15/go.mod h1:A1Lzyy/o21I5/s2FbyX5AevQfSVXpvvIDCoVFD0BC4E= -github.com/aws/aws-sdk-go-v2/config v1.27.8 h1:0r8epOsiJ7YJz65MGcb8i91ehFp4kvvFe2qkq5oYeRI= -github.com/aws/aws-sdk-go-v2/config v1.27.8/go.mod h1:XsmYKxYNuIhLsFddpNds+j9H5XKzjWDdg/SZngiwFio= +github.com/aws/aws-sdk-go-v2/config v1.27.9 h1:gRx/NwpNEFSk+yQlgmk1bmxxvQ5TyJ76CWXs9XScTqg= +github.com/aws/aws-sdk-go-v2/config v1.27.9/go.mod h1:dK1FQfpwpql83kbD873E9vz4FyAxuJtR22wzoXn3qq0= github.com/aws/aws-sdk-go-v2/credentials v1.12.10/go.mod h1:g5eIM5XRs/OzIIK81QMBl+dAuDyoLN0VYaLP+tBqEOk= -github.com/aws/aws-sdk-go-v2/credentials v1.17.8 h1:WUdNLXbyNbU07V/WFrSOBXqZTDgmmMNMgUFzpYOKJhw= -github.com/aws/aws-sdk-go-v2/credentials v1.17.8/go.mod h1:iPZzLpaBIfhyvVS/XGD3JvR1GP3YdHTqpySKDlqkfs8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.9 h1:N8s0/7yW+h8qR8WaRlPQeJ6czVMNQVNtNdUqf6cItao= +github.com/aws/aws-sdk-go-v2/credentials v1.17.9/go.mod h1:446YhIdmSV0Jf/SLafGZalQo+xr2iw7/fzXGDPTU1yQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9/go.mod h1:KDCCm4ONIdHtUloDcFvK2+vshZvx4Zmj7UMDfusuz5s= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4 h1:S+L2QSKhUuShih3aq9P/mkzDBiOO5tTyVg+vXREfsfg= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.4/go.mod h1:nQ3how7DMnFMWiU1SpECohgC82fpn4cKZ875NDMmwtA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0 h1:af5YzcLf80tv4Em4jWVD75lpnOHSBkPUZxZfGkrI3HI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.0/go.mod h1:nQ3how7DMnFMWiU1SpECohgC82fpn4cKZ875NDMmwtA= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12 h1:rfAytUY7OgbOMDkzxdiigZkbTe9SDER2dIpO/Fzi9+0= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.12/go.mod h1:BaY3WWSgUwV/zq0K3HePyXhRYZxGnDATYERkR0f1RTs= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13 h1:F+PUZee9mlfpEJVZdgyewRumKekS9O3fftj8fEMt0rQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.13/go.mod h1:Rl7i2dEWGHGsBIJCpUxlRt7VwK/HyXxICxdvIRssQHE= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.15/go.mod h1:pWrr2OoHlT7M/Pd2y4HV3gJyPb3qj5qMmnPkKSNPYK4= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 h1:0ScVK/4qZ8CIW0k8jOeFVsyS/sAiXpYxRBLolMkuLQM= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4/go.mod h1:84KyjNZdHC6QZW08nfHI6yZgPd+qRgaWcYsyLUo3QY8= @@ -1400,6 +1400,8 @@ github.com/aws/aws-sdk-go-v2/service/account v1.16.3 h1:naZ+3ZZa/j5c7N25vCII8ZHW github.com/aws/aws-sdk-go-v2/service/account v1.16.3/go.mod h1:QBT5/WHp07EA3HgT/Wg3qVpL9baYpqaLl6XWSH18ntk= github.com/aws/aws-sdk-go-v2/service/acm v1.25.3 h1:AH94I88C4CPMp6YOTncdshON5hsyBDWUAM/FBAHHkco= github.com/aws/aws-sdk-go-v2/service/acm v1.25.3/go.mod h1:hFOyylMVlIkhN7YLhv64oBZzVTJoi8bqhJZfkDVlZww= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3 h1:KkkUQXWi8ddsVrmX04FcAOBz/R8dmt+7MNsUoB7XImU= +github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.3/go.mod h1:EfOq2JRfHuaQY21aVXTGYQ7pjF0zW9+xD+u36e1nqTU= github.com/aws/aws-sdk-go-v2/service/amp v1.25.3 h1:GkOnnt0ItVXnvo7xt1/+XJkzB6q1NAa80cLn7KkQd50= github.com/aws/aws-sdk-go-v2/service/amp v1.25.3/go.mod h1:FUrdgK1jyv01Q1DjpW6MWjA/ZEuTRphMLdkqtLTBXq0= github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.1 h1:AtkGG+t4U+Mb7sR2lQj/uvDlbdA7GVAIv8o/AAnS+vk= @@ -1414,16 +1416,16 @@ github.com/aws/aws-sdk-go-v2/service/athena v1.40.3 h1:Q54tyTwpoEyJNmP4WqwT9hdPH github.com/aws/aws-sdk-go-v2/service/athena v1.40.3/go.mod h1:HP/WmaAcHBNMHa6EwxTMPdqCIbV0uCnWR8WNTp2AG5c= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3 h1:Y9Tqv+Pb93GGLpxYoKYdz9ZdwpnT5HP6AFazR3moNlM= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.3/go.mod h1:iKupmNJ2eciB82e13iVV0Yy0RF3rEYwnWvjOFS8gwSo= -github.com/aws/aws-sdk-go-v2/service/batch v1.35.1 h1:0s/EA1gzCbGc3QJPFKtkQSZthqKAtjTQ9KZK8vdq6MY= -github.com/aws/aws-sdk-go-v2/service/batch v1.35.1/go.mod h1:6wZ9nLiDKN23ZIR+JFkBT2ja8ptpN0+GXc468eb6pz8= +github.com/aws/aws-sdk-go-v2/service/batch v1.36.0 h1:XJit21DOKhQKvomQOIE92INP+4mbfhlnx7+8xgv+o1I= +github.com/aws/aws-sdk-go-v2/service/batch v1.36.0/go.mod h1:6wZ9nLiDKN23ZIR+JFkBT2ja8ptpN0+GXc468eb6pz8= github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3 h1:7eWSY1WH9QwOhynO1q7FeTiQmlDuDuA4U3aVnzJuwlI= github.com/aws/aws-sdk-go-v2/service/bedrock v1.7.3/go.mod h1:oKzsmy0T0tnOwivf+uLOQi0HiZMVHFjkvdDSXJgzI6w= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3 h1:PyHPzIUfK0hqgisQStSSv6B6pxMD3u0glzqxX4hpu7E= -github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.4.3/go.mod h1:dZI35YHA0eH/XivJRXI0rh9dtI5W7bfPcbNoo6cxRlw= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0 h1:BBRBOgkG3ydgm4h6dum6gjIfF3G71Szce18CWJ/DUuI= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.5.0/go.mod h1:dZI35YHA0eH/XivJRXI0rh9dtI5W7bfPcbNoo6cxRlw= github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3 h1:8/EAWsRzln7yZ8XjKm4eDizPz+SIaZ83CZRsl4hGsgM= github.com/aws/aws-sdk-go-v2/service/budgets v1.22.3/go.mod h1:tLE9xTrWczkC/4JKSTmoFMdO+sRVOdc78mSLEDdsMd4= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3 h1:cnaPPuP1Vibm0S6NrAw3uLsyUHHTN9MZBifCPiM2KM4= -github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.3/go.mod h1:Bwt+CNMRVQxCEzfqVJB4eJjedEYzyPk7zIkbzG6uxMw= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4 h1:KJ5+G5m4rVZxS1vTUkRsHi+yr7KUTDNICO6nJgTarTw= +github.com/aws/aws-sdk-go-v2/service/chimesdkmediapipelines v1.15.4/go.mod h1:Bwt+CNMRVQxCEzfqVJB4eJjedEYzyPk7zIkbzG6uxMw= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3 h1:mEnRQhdLEDhkd8nxv1OQZtVXw3ebWfUOVcPnXyRNKiQ= github.com/aws/aws-sdk-go-v2/service/chimesdkvoice v1.14.3/go.mod h1:QcyoLDnm8ovYqTHaF/Fuuinxs6gOh2Z8eJIhY2vvR4Y= github.com/aws/aws-sdk-go-v2/service/cleanrooms v1.10.3 h1:f5xS8vcBOOTFOee23wU0nGFO65wwhh7PnBBzF/iYeDg= @@ -1446,10 +1448,10 @@ github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3 h1:l3vM7tnmYWZBdyN1d2Q4g github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.36.3/go.mod h1:xeAHc7vhdOYwpG2t4uXdnGhOvOIpJ8n+A5AHnCkk8iw= github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0 h1:Tpy3mOh9ladwf9bhlAr38OTnZk/Uh9UuN4UNg3MFB/U= github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.35.0/go.mod h1:bIFyamdY1PRTmifPT7uHCq4+af0SooBn9hmK9UW/hmg= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3 h1:W5IOpg9lYLdWLo7AI9nTHiRyDrteLW/z5qphLW6k/qQ= -github.com/aws/aws-sdk-go-v2/service/codeartifact v1.25.3/go.mod h1:SiTynZd9Y6kyyetSwU9wS3PVo8LxVusPlebMU0hzxSY= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2 h1:o9NWkmCGK0BfbXpuiIUGcgv5XlEcrDohqwepyFqrF7U= -github.com/aws/aws-sdk-go-v2/service/codebuild v1.31.2/go.mod h1:r+u4e5jkfeCLiTUKMNunJPiRV3j+uJD9TL5KBRAXy8A= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0 h1:pd4MCOXxIABkJZhnst/sNvjCDXgcT7hqDjhBYDbEmjA= +github.com/aws/aws-sdk-go-v2/service/codeartifact v1.26.0/go.mod h1:SiTynZd9Y6kyyetSwU9wS3PVo8LxVusPlebMU0hzxSY= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0 h1:94+JXltheV33cKZseckFlOEiROlin/3FlgO4Ln9ugaM= +github.com/aws/aws-sdk-go-v2/service/codebuild v1.32.0/go.mod h1:r+u4e5jkfeCLiTUKMNunJPiRV3j+uJD9TL5KBRAXy8A= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3 h1:AJouQBGP960Xv2awBeJ0NgZaatMe3eIP2hCeTT2j544= github.com/aws/aws-sdk-go-v2/service/codecatalyst v1.12.3/go.mod h1:dE9FjOfKWN/Dm8sB1PKV6bz/CPZClhkHybyicrtOqKA= github.com/aws/aws-sdk-go-v2/service/codecommit v1.22.3 h1:JFEGvOVTxk+i56BjRVrICK5N1F0qbsJcSVwbc+M8hJM= @@ -1478,10 +1480,14 @@ github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3 h1:L95GltoDtewMcFq15o/ github.com/aws/aws-sdk-go-v2/service/connectcases v1.15.3/go.mod h1:TyZr6RqRlR3hKsh1y1XfbY7+4NRvp3SgMFzxBk1K3Us= github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3 h1:SG3sGG6K3N6tPMVeJBe98Zx0aXfTZlBDhHn6F0Nqof0= github.com/aws/aws-sdk-go-v2/service/controltower v1.13.3/go.mod h1:/MVyYMNxCYw1fGAIjcMc4N/gmTfJusFugrFKiKrW1Pw= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3 h1:hwFILcm5DB632aqO4NSYIMq+HDJP2+VGA7MeytKuMpE= +github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.3/go.mod h1:OwHPUjPCdGTQGypglHevR5rbpOp2Uq/1fKlsXDbLdiM= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3 h1:nCnaWjpCuKpcvUjnS/xuZTYPNUIWyyDB+br1muzA7Xk= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.3/go.mod h1:GgMyAMEjKSWEMqwTkesHtHygbeh6aKyeGtkJC2XBQNc= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3 h1:8akKwsfPSXuuva2PtFOGEJMS/yBOqzt45a7+fiDStEg= github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.3/go.mod h1:poSn2Rf3sIZq4o9HFUXF9SFIANrNmdMpK5tsCVI5N34= +github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3 h1:7zfDRW2h/V/3Nx5dh0AG1rIWJYpQ7aeCTgl+QHzpUwM= +github.com/aws/aws-sdk-go-v2/service/datazone v1.6.3/go.mod h1:IN3onXQrF2ukCZ9/acQlHZvAaAUJXX7BCBALgYFSOPk= github.com/aws/aws-sdk-go-v2/service/dax v1.19.3 h1:nBFeHXBmuicno0/3gV/QeKEJL2+PKTOk+ISrk7DNNjU= github.com/aws/aws-sdk-go-v2/service/dax v1.19.3/go.mod h1:jPAOa4SFhgbTLdzZ77wuLjXHRjQCobtSZIbAcjttpZ0= github.com/aws/aws-sdk-go-v2/service/devopsguru v1.30.3 h1:GdBBQ5f3MFBlwpOHxHKECfLI879O3jwn/yfsJqPH8ds= @@ -1492,18 +1498,18 @@ github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2 h1:mNuCgv1+9HaWNrU24TVw github.com/aws/aws-sdk-go-v2/service/docdbelastic v1.9.2/go.mod h1:18sgErGtZi/o6ITt8+eWIejU0VyIqOn7eJX6lCl3BnQ= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0 h1:LtsNRZ6+ZYIbJcPiLHcefXeWkw2DZT9iJyXJJQvhvXw= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.0/go.mod h1:ua1eYOCxAAT0PUY3LAi9bUFuKJHC/iAksBLqR1Et7aU= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0 h1:ltCQObuImVYmIrMX65ikB9W83MEun3Ry2Sk11ecZ8Xw= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.152.0/go.mod h1:TeZ9dVQzGaLG+SBIgdLIDbJ6WmfFvksLeG3EHGnNfZM= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0 h1:+OJ9EhHaqjtA4YTTbxxLxMffrWuGWh0qMaBmGJTLSSg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.154.0/go.mod h1:TeZ9dVQzGaLG+SBIgdLIDbJ6WmfFvksLeG3EHGnNfZM= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3 h1:gfgt0D8MGL3gHrJPEv4rcWptA4Nz7uYn25ls8lLiANw= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.3/go.mod h1:O5Fvd41s5KfDG093xLM7FhGiH6EmhmEli5D5MQH3TWw= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3 h1:gaq/4fd2/bQeJ33m4csgL7DJHrrmvGhqnrsxchNr46c= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.3/go.mod h1:vn+Rz9fAFGJtDXbBmYdTc71Q8iF/W/uK1/ec93hinD8= -github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3 h1:lMtV6j7HE9vpJ+rCXbjfKYuM0lVQVWOYGn6zxy0OvEQ= -github.com/aws/aws-sdk-go-v2/service/ecs v1.41.3/go.mod h1:7b5ZXNyT7SjZhy+MOuXwL2XtsrFDl1bOL4Mqrgr5c3k= +github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5 h1:KUB2aLoYzKGZIh2mybcwBqBy7FjwElilVFfoxp8OINE= +github.com/aws/aws-sdk-go-v2/service/ecs v1.41.5/go.mod h1:7b5ZXNyT7SjZhy+MOuXwL2XtsrFDl1bOL4Mqrgr5c3k= github.com/aws/aws-sdk-go-v2/service/eks v1.41.2 h1:0X5g5H8YyW9QVtlp6j+ZGHl/h0ZS58jiLRXabyiB5uw= github.com/aws/aws-sdk-go-v2/service/eks v1.41.2/go.mod h1:T2MBMUUCoSEvHuKPplubyQJbWNghbHhx3ToJpLoipDs= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4 h1:a86Pz2dmS3KwpHTXvipg5hX5wgWtzb1th8t9fAzdZCA= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.37.4/go.mod h1:S/K/QIhqH+2hwikH4SctnR8QhKvaljcPZ6GdcjmFXSk= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0 h1:Ac0ujTSUTLJzYsHi+b8mlTNitU5qMy7sOs5/RCkZh9U= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.38.0/go.mod h1:S/K/QIhqH+2hwikH4SctnR8QhKvaljcPZ6GdcjmFXSk= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3 h1:JJ5sred8R2EHH0wwShEHY1yy7Vl7aYu7RkAw/lmGgNU= github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk v1.23.3/go.mod h1:Q9T8IxdX1JMwax432uDRWaFhG+abLbs20oLtizL2Wxo= github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.30.4 h1:Lq2q/AWzFv5jHVoGJ2Hz1PkxwHYNdGzAB3lbw2g7IEU= @@ -1514,10 +1520,10 @@ github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4 h1:Sel4bhQsqWJpMpS7ph github.com/aws/aws-sdk-go-v2/service/emrserverless v1.17.4/go.mod h1:Lqyi+jrynf2YmFnPAGX/QV0E03GPevxTO4ZF8K+9WKE= github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3 h1:I5aDPbhOCXW1ghm+jVn3w7OyUJ5ibGxJk1Ztn19nzGc= github.com/aws/aws-sdk-go-v2/service/evidently v1.19.3/go.mod h1:OdJAuOKSBvgWd7IPPt1mhFcZMrWKHxvkiaCk1baayl0= -github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0 h1:hzIP5bmFE3zz9fhnOFj9Q8ygOOpQQeZtg7Zsaq5RcFg= -github.com/aws/aws-sdk-go-v2/service/finspace v1.23.0/go.mod h1:jcWNHj8/0TSarVAPO/wMLr4PqVW7wLZ9IklE0JFTgdQ= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3 h1:WitDVXj+2Ljpr9rpcB9PU+rW2cKDNeOEohXcYlq82zk= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.3/go.mod h1:lG0iZ1i9pDmHwZzPwt62ek5F+IURxddbra2KWidu11s= +github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0 h1:0QJDLyACLAIk1C0iYw8hJfNbauvQQnrr/8Hq37w2Az8= +github.com/aws/aws-sdk-go-v2/service/finspace v1.24.0/go.mod h1:jcWNHj8/0TSarVAPO/wMLr4PqVW7wLZ9IklE0JFTgdQ= +github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4 h1:Dex1nY+50qE5pYpPGwGV4LfJ7ANNUaQF7S+gl0R3/DA= +github.com/aws/aws-sdk-go-v2/service/firehose v1.28.4/go.mod h1:lG0iZ1i9pDmHwZzPwt62ek5F+IURxddbra2KWidu11s= github.com/aws/aws-sdk-go-v2/service/fis v1.24.1 h1:jXrNT8HEz8Z2DuXq+aToU9gdVDi5Pw4NwVUvfMOzHoM= github.com/aws/aws-sdk-go-v2/service/fis v1.24.1/go.mod h1:altCNtz8BV8tQDXkT6dlIO2FlFsiwwHkELYDa2o4YCs= github.com/aws/aws-sdk-go-v2/service/glacier v1.22.3 h1:2uNAuva/9zAQpa7nkASJupbhSOa+LLbi1rrM9Z9tfVM= @@ -1552,8 +1558,8 @@ github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3 h1:0iTKT43YbjxkfLWpDy53XNpX github.com/aws/aws-sdk-go-v2/service/ivschat v1.12.3/go.mod h1:9KYRjzfuA+yQ94Z76xtyXijr6IAzSe7c4LPNgJ6RaHE= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1 h1:kgmN23latoCf5DU+se+7yvaLFafN01wcFqH22/xw9xE= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.1/go.mod h1:OdramNEwVCr+Km5x6sY48EZfhMRi63Df3lMiFwq4r2o= -github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3 h1:F40g16YlLu4QQEd75irG17VZBj8g1V7MiGJ7Ucv4DyI= -github.com/aws/aws-sdk-go-v2/service/kendra v1.49.3/go.mod h1:PO/o18WNjfiJ9gwAedE3e7W3YOhOT8uLLP0OZErG4sg= +github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0 h1:dHTivlMnSEFywchDb2od6ZukpbgwPkDH0aJUsTyqnu4= +github.com/aws/aws-sdk-go-v2/service/kendra v1.50.0/go.mod h1:PO/o18WNjfiJ9gwAedE3e7W3YOhOT8uLLP0OZErG4sg= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3 h1:0ZinUG7sHKMNsZ6s6x3ZwjZeBhs1fHpNpvgDp06JSEU= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.3/go.mod h1:eaMHeHF8TbqE03Fbp+6zo4FN2HZWHyRxHfsIFhtUCeQ= github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.3 h1:F6ZNgFuVyS5c5XX/hzZOvCaU1s0lClTBOjALo4YZX+0= @@ -1567,8 +1573,8 @@ github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3 h1:KsKBuL+bIKhY7SMk+MXSBAj8P github.com/aws/aws-sdk-go-v2/service/lambda v1.53.3/go.mod h1:trTURvQC8AJ41JYhFpVrZKY5tfzGgVUcSijVgfmgl8w= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3 h1:1+rqC0UyxvWiqiMI0/K86l/LSMdwUbCCMnkEqqvhZBc= github.com/aws/aws-sdk-go-v2/service/launchwizard v1.3.3/go.mod h1:QI/5bbibfVs8G/DQCwcD5h/SINPE6jIoqX+wyi0cJF8= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2 h1:qIsU6de8m9Q69WkJyIeSCxLnewFUgEk9JoV0eNgVG/U= -github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.2/go.mod h1:xzEn1Vmlgvu4QHbHHNuhKyJsFyoIVVZ0jttnsvjTnHU= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3 h1:dkGBygPJExHD4SC5hRKYysWyuKCr13cLLJIJad58QPU= +github.com/aws/aws-sdk-go-v2/service/lexmodelsv2 v1.43.3/go.mod h1:xzEn1Vmlgvu4QHbHHNuhKyJsFyoIVVZ0jttnsvjTnHU= github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3 h1:Xgmk7IJjeXcCWNC0L2v7qapbDBwg9d8lHaIS01eAKTE= github.com/aws/aws-sdk-go-v2/service/lightsail v1.36.3/go.mod h1:gW5ikkvZZgbdBVQX3O2/5/IYrQl8ncFYHF8tl5tncSg= github.com/aws/aws-sdk-go-v2/service/lookoutmetrics v1.27.3 h1:yTE2NvVx7lIh2i0G8U9q6gZ/6jiqOgGyctvMX5GlhAg= @@ -1577,10 +1583,10 @@ github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3 h1:Lf0n1E8kjrsvSrT/qOQL+RHFSqSFM github.com/aws/aws-sdk-go-v2/service/m2 v1.12.3/go.mod h1:8ZpMmMZVsDy8QVsCypk5XSZYTcX+Ijt7TEz6GGmdQko= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3 h1:/JTpHrZ7WBCWkQk3141wK1tqosN+IrJkdH0YnLK04ng= github.com/aws/aws-sdk-go-v2/service/mediaconnect v1.28.3/go.mod h1:r0aD0u2T/OVQQCLXfsYkMSw3HiulS4JlQq5sccgiTTQ= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3 h1:ZsJdb3QZxxkI+Yu9JK9w/Oc69eOF4Xnn9bcaqWoRUFM= -github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.3/go.mod h1:0gs1QlrbxxEUJKbi2m/ij685F4TT4nTESvta+yfGafE= -github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3 h1:naFLtSvfHpY8AfXXj1WPiW5+3cx8l2lRtclfvgT12tg= -github.com/aws/aws-sdk-go-v2/service/medialive v1.48.3/go.mod h1:G/trfuk73arlR8jln73j+ahGaUSttpNrkW+rSlwVMzQ= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4 h1:FG4iFmYxdlOfMEAqxAzy0EQY6JKCikXmOufX2+pYM1A= +github.com/aws/aws-sdk-go-v2/service/mediaconvert v1.52.4/go.mod h1:0gs1QlrbxxEUJKbi2m/ij685F4TT4nTESvta+yfGafE= +github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1 h1:d6Oxk7Fs/A5vqCVj5rnkKPsPGs8kx+SO089FNArBkKU= +github.com/aws/aws-sdk-go-v2/service/medialive v1.49.1/go.mod h1:G/trfuk73arlR8jln73j+ahGaUSttpNrkW+rSlwVMzQ= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3 h1:YTpocP/tUCenvfYtF0PLnCaiWcBQXlrqOVEjvN8ri88= github.com/aws/aws-sdk-go-v2/service/mediapackage v1.30.3/go.mod h1:zcDHNg37WsXPc+9Bi1an6YagYjZWZnhlTOKvhdKcBWo= github.com/aws/aws-sdk-go-v2/service/mediapackagev2 v1.10.1 h1://PDaerL8FJjBvZ/Yu7CW/6fACKSezrGdF98W8h6Wmw= @@ -1597,14 +1603,16 @@ github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3 h1:Hl+6c8DUmnp github.com/aws/aws-sdk-go-v2/service/opensearchserverless v1.11.3/go.mod h1:SoK8aerBG8p08vK4N1QAPg+743VWbrcTACKCVFnyLFs= github.com/aws/aws-sdk-go-v2/service/osis v1.8.3 h1:fETzs9pAxPp0gkIRJ1olOtN2M1Hi2oVF1QfewEjdr3g= github.com/aws/aws-sdk-go-v2/service/osis v1.8.3/go.mod h1:ixCAnUrXx5eW7WSRm62k8pQ2XvqOi7bMKB9qMEPPPhs= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3 h1:TPQIc4TaooKezlyDMoe9rbKwftOTe6eBoI9fhl3JLe8= +github.com/aws/aws-sdk-go-v2/service/paymentcryptography v1.9.3/go.mod h1:fEeoWuZvJKM5gEg5Ch4T4EzXA+jdNVztidiARUPTgyc= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3 h1:Itfj1epf35aUtsAoSrx1PMulQTrLsh6iidiF7/+07BM= github.com/aws/aws-sdk-go-v2/service/pcaconnectorad v1.5.3/go.mod h1:hw+93RlfeLZueByt54PWQFxqUSD7xTzyHFYc5xBuKR8= github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3 h1:Tbj7OCbZgkhnkByBcObF1B8ZHacttdLlz4jKzWI/JYs= github.com/aws/aws-sdk-go-v2/service/pipes v1.11.3/go.mod h1:FORQ0HOx+V/5WCbSK79ZmX3NozruVMA0l6ySqYlndHQ= github.com/aws/aws-sdk-go-v2/service/polly v1.39.5 h1:gz62DPzkIArtvmuQkGGHlLreLV1v/N1g1CkSHVwQTJk= github.com/aws/aws-sdk-go-v2/service/polly v1.39.5/go.mod h1:1/WA2p90+p1n/COApBzAxN/XxpBbH0iho3HV5hLTzlU= -github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3 h1:Fl50I7+QT9D1QgPsQqqXbo44YKFfGJ6h1ljZu+BGZoE= -github.com/aws/aws-sdk-go-v2/service/pricing v1.27.3/go.mod h1:oB3Na0szArXW5rngmmBdNdJN4jsMvRTFpWZ6sGaqDDk= +github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0 h1:fvHH3/l0qhZs4bEEkNJx/ljs9vpXtfJacUhNAQTS9bE= +github.com/aws/aws-sdk-go-v2/service/pricing v1.28.0/go.mod h1:oB3Na0szArXW5rngmmBdNdJN4jsMvRTFpWZ6sGaqDDk= github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3 h1:QZtPVqOTsJq+wj8K2QB29uZyrO2fWiU/hQZk/KjGm9U= github.com/aws/aws-sdk-go-v2/service/qbusiness v1.4.3/go.mod h1:UFPEBRf7wpsUi4EMg9O4K/xuv39dVuzX+MXpt90mpIE= github.com/aws/aws-sdk-go-v2/service/qldb v1.21.3 h1:b43pgguttg3h/X7urz3pMG2ColT7YC+lH5/FysHOIQU= @@ -1627,8 +1635,8 @@ github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3 h1:ruD/QNzA0SWFYf5v1 github.com/aws/aws-sdk-go-v2/service/resourcegroups v1.21.3/go.mod h1:I+z4BKgG7tu84byzP/3pkU/QbDZuE7R1FphdHMYwUSA= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3 h1:wM7sHeNGJ/TqW5y/IXYAxIGpabxDUMZBiJedm/eX7vU= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.3/go.mod h1:z7I7ESFGZuAaT8gMWZLKGS3h9BWPjW8iFni9eOJWwqs= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4 h1:AuCtFQh5a8Uvi7r21jFFyNoPQt5X+bSa63NbMk7a2mE= -github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.8.4/go.mod h1:JfM0EhP2Z5ArefAfzgeJBkBOaee9mmyXtUqHTxnwZEE= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0 h1:iMQ/A8XGpMsi5KcxJLgftG1d8vySL4fB2OS8BD7MZDs= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.9.0/go.mod h1:JfM0EhP2Z5ArefAfzgeJBkBOaee9mmyXtUqHTxnwZEE= github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3 h1:iuBYHWv0+2pF2qbM+UmnSwvcdOknXRi4yE9KBHhAItQ= github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.3/go.mod h1:Ijqatnvuyx5IE/FmFJWJyWTcUY5XrlXgc6G7z1Fqk6o= github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2/go.mod h1:u+566cosFI+d+motIz3USXEh6sN8Nq4GrNXSg2RXVMo= @@ -1639,10 +1647,10 @@ github.com/aws/aws-sdk-go-v2/service/s3control v1.44.3/go.mod h1:0wQ+7wiAWqWwksg github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3 h1:PDlINUkjxH/eMLVDUMFOQJBMkB3BbTwNjUWKeq2xH8E= github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.3/go.mod h1:vEBdLTVmJesS5DAiryn7zuJPpT2pyYBKsBN0pHb6SxE= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4 h1:5GYToReUFSGP6/zqvG3fv8qNqeetyfsSiPHduHShjAc= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.4/go.mod h1:slgOMs1CQu8UVgwoFqEvCi71L4HVoZgM0r8MtcNP6Mc= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3 h1:0SaKuyc6OumR6eZfD4COFB3rvkgnsXvZhOXfilIBpDI= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.46.3/go.mod h1:RWptadXBwlyIfgDAv7ExErIoLBbfieAkXKHycZXHyLM= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5 h1:1i3Pq5g1NaXI/u8lTHRVMHyCc0HoZzSk2EFmiy14Hbk= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.5/go.mod h1:slgOMs1CQu8UVgwoFqEvCi71L4HVoZgM0r8MtcNP6Mc= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0 h1:lp2W10f/IIIDprGmP/T64P9tx4xV01C3ef4H5gFN7Bk= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.0/go.mod h1:RWptadXBwlyIfgDAv7ExErIoLBbfieAkXKHycZXHyLM= github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2 h1:JZvvXlBglot2ZDgtArByzqDNtF5GLiROPLbn7iIP4B8= github.com/aws/aws-sdk-go-v2/service/securitylake v1.13.2/go.mod h1:b5qhz6hJZiRNRkBkzp+LL+LuxwR5ODvjSvNAPkqPnso= github.com/aws/aws-sdk-go-v2/service/servicecatalogappregistry v1.26.3 h1:DvAKjQG35XV6Ll3dAlSA1+tJAJMNj6k1oZ9QQOd3aGY= @@ -2562,8 +2570,9 @@ github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0 h1:egR4InfakWkg github.com/hashicorp/terraform-plugin-framework-timetypes v0.3.0/go.mod h1:9vjvl36aY1p6KltaA5QCvGC5hdE/9t4YuhGftw6WOgE= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg= -github.com/hashicorp/terraform-plugin-go v0.22.0 h1:1OS1Jk5mO0f5hrziWJGXXIxBrMe2j/B8E+DVGw43Xmc= github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE= +github.com/hashicorp/terraform-plugin-go v0.22.1 h1:iTS7WHNVrn7uhe3cojtvWWn83cm2Z6ryIUDTRO0EV7w= +github.com/hashicorp/terraform-plugin-go v0.22.1/go.mod h1:qrjnqRghvQ6KnDbB12XeZ4FluclYwptntoWCr9QaXTI= github.com/hashicorp/terraform-plugin-mux v0.15.0 h1:+/+lDx0WUsIOpkAmdwBIoFU8UP9o2eZASoOnLsWbKME= github.com/hashicorp/terraform-plugin-mux v0.15.0/go.mod h1:9ezplb1Dyq394zQ+ldB0nvy/qbNAz3mMoHHseMTMaKo= github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= @@ -4510,8 +4519,8 @@ google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= -google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/provider/replacements.json b/provider/replacements.json index 8d2b69086c6..b9822f1e5ec 100644 --- a/provider/replacements.json +++ b/provider/replacements.json @@ -953,12 +953,24 @@ { "old": "* `policy` - (Required) The policy document. This is a JSON formatted string. For more information about building IAM policy documents with Terraform, see the AWS IAM Policy Document Guide", "new": "* `policy` - (Required) The policy document. This is a JSON formatted string." + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" } ], "iam_policy.html.markdown": [ { "old": "* `policy` - (Required) The policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents with Terraform, see the AWS IAM Policy Document Guide", "new": "* `policy` - (Required) The policy document. This is a JSON formatted string." + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" + }, + { + "old": "* `policy` - (Required) Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents with Terraform, see the AWS IAM Policy Document Guide\n", + "new": "* `policy` - (Required) Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide\n" } ], "iam_principal_policy_simulation.html.markdown": [ @@ -999,6 +1011,10 @@ { "old": "~> **NOTE:** Since one empty block (i.e., `inline_policy {}`) is valid syntactically to remove out of band policies on `apply`, `name` and `policy` are technically _optional_. However, they are both _required_ in order to manage actual inline policies. Not including one or the other may not result in Terraform errors but will result in unpredictable and incorrect behavior.", "new": "~> **NOTE:** Since one empty block (i.e., `inline_policy {}`) is valid syntactically to remove out of band policies on `apply`, `name` and `policy` are technically _optional_. However, they are both _required_ in order to manage actual inline policies. Not including one or the other may not result in provider errors but will result in unpredictable and incorrect behavior." + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `assume_role_policy` or `inline_policy.*.policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" } ], "iam_role_policy.html.markdown": [ @@ -1009,6 +1025,10 @@ { "old": "* `policy` - (Required) The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with Terraform, see the AWS IAM Policy Document Guide", "new": "* `policy` - (Required) The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide" + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" } ], "iam_role_policy_attachment.html.markdown": [ @@ -1081,6 +1101,10 @@ { "old": "* `policy` - (Required) The policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents with Terraform, see the AWS IAM Policy Document Guide.", "new": "* `policy` - (Required) The policy document. This is a JSON formatted string." + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" } ], "iam_virtual_mfa_device.html.markdown": [ @@ -2235,6 +2259,10 @@ { "old": "* `policy` - (Optional) An IAM JSON policy document that scopes down user access to portions of their Amazon S3 bucket. IAM variables you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`. Since the IAM variable syntax matches Terraform's interpolation syntax, they must be escaped inside Terraform configuration strings (`$${Transfer:UserName}`). These are evaluated on-the-fly when navigating the bucket.", "new": "* `policy` - (Optional) An IAM JSON policy document that scopes down user access to portions of their Amazon S3 bucket. IAM variables you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`. These are evaluated on-the-fly when navigating the bucket." + }, + { + "old": "~> **NOTE:** We suggest using `jsonencode()` or `aws_iam_policy_document` when assigning a value to `policy`. They seamlessly translate Terraform language into JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n", + "new": "~> **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON.\n" } ], "transfer_tag.html.markdown": [ diff --git a/provider/resources.go b/provider/resources.go index 3508ac290f4..66d3776e3b5 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -165,6 +165,7 @@ const ( licensemanagerMod = "LicenseManager" // License Manager lightsailMod = "LightSail" // LightSail locationMod = "Location" // Location + m2Mod = "M2" // Mainframe Modernisation macieMod = "Macie" // Macie (Classic) macie2Mod = "Macie2" // Macie2 mediaconvertMod = "MediaConvert" // Media Convert @@ -377,6 +378,7 @@ var moduleMap = map[string]string{ "licensemanager": licensemanagerMod, "lightsail": lightsailMod, "location": locationMod, + "m2": m2Mod, "macie": macieMod, "macie2": macie2Mod, "media_convert": mediaconvertMod, @@ -1789,9 +1791,10 @@ func ProviderFromMeta(metaInfo *tfbridge.MetadataInfo) *tfbridge.ProviderInfo { }, }, }, - "aws_internet_gateway": {Tok: awsResource(ec2Mod, "InternetGateway")}, - "aws_internet_gateway_attachment": {Tok: awsResource(ec2Mod, "InternetGatewayAttachment")}, - "aws_ec2_image_block_public_access": {Tok: awsResource(ec2Mod, "ImageBlockPublicAccess")}, + "aws_internet_gateway": {Tok: awsResource(ec2Mod, "InternetGateway")}, + "aws_internet_gateway_attachment": {Tok: awsResource(ec2Mod, "InternetGatewayAttachment")}, + "aws_ec2_image_block_public_access": {Tok: awsResource(ec2Mod, "ImageBlockPublicAccess")}, + "aws_ec2_instance_metadata_defaults": {Tok: awsResource(ec2Mod, "InstanceMetadataDefaults")}, "aws_key_pair": { Tok: awsResource(ec2Mod, "KeyPair"), Fields: map[string]*tfbridge.SchemaInfo{ @@ -5970,6 +5973,11 @@ func ProviderFromMeta(metaInfo *tfbridge.MetadataInfo) *tfbridge.ProviderInfo { // VpcLattice "aws_vpclattice_service": {Tok: awsDataSource(vpclatticeMod, "getService")}, "aws_vpclattice_listener": {Tok: awsDataSource(vpclatticeMod, "getListener")}, + + // Resource Explorer 2 + "aws_resourceexplorer2_search": { + Tok: awsDataSource("ResourceExplorer", "Search"), + }, }, JavaScript: &tfbridge.JavaScriptInfo{ Dependencies: map[string]string{ diff --git a/sdk/dotnet/Acmpca/Certificate.cs b/sdk/dotnet/Acmpca/Certificate.cs index 14794b80be8..3703535f434 100644 --- a/sdk/dotnet/Acmpca/Certificate.cs +++ b/sdk/dotnet/Acmpca/Certificate.cs @@ -19,6 +19,62 @@ namespace Pulumi.Aws.Acmpca /// /// ## Example Usage /// + /// ### Basic + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// using Tls = Pulumi.Tls; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var exampleCertificateAuthority = new Aws.Acmpca.CertificateAuthority("example", new() + /// { + /// CertificateAuthorityConfiguration = new Aws.Acmpca.Inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs + /// { + /// KeyAlgorithm = "RSA_4096", + /// SigningAlgorithm = "SHA512WITHRSA", + /// Subject = new Aws.Acmpca.Inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs + /// { + /// CommonName = "example.com", + /// }, + /// }, + /// PermanentDeletionTimeInDays = 7, + /// }); + /// + /// var key = new Tls.PrivateKey("key", new() + /// { + /// Algorithm = "RSA", + /// }); + /// + /// var csr = new Tls.CertRequest("csr", new() + /// { + /// PrivateKeyPem = key.PrivateKeyPem, + /// Subject = new Tls.Inputs.CertRequestSubjectArgs + /// { + /// CommonName = "example", + /// }, + /// }); + /// + /// var example = new Aws.Acmpca.Certificate("example", new() + /// { + /// CertificateAuthorityArn = exampleCertificateAuthority.Arn, + /// CertificateSigningRequest = csr.CertRequestPem, + /// SigningAlgorithm = "SHA256WITHRSA", + /// Validity = new Aws.Acmpca.Inputs.CertificateValidityArgs + /// { + /// Type = "YEARS", + /// Value = "1", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// /// ## Import /// /// Using `pulumi import`, import ACM PCA Certificates using their ARN. For example: diff --git a/sdk/dotnet/ApiGateway/MethodResponse.cs b/sdk/dotnet/ApiGateway/MethodResponse.cs index ad11fbb24fa..ebdb829d3c9 100644 --- a/sdk/dotnet/ApiGateway/MethodResponse.cs +++ b/sdk/dotnet/ApiGateway/MethodResponse.cs @@ -136,7 +136,7 @@ namespace Pulumi.Aws.ApiGateway /// StatusCode = "200", /// ResponseModels = /// { - /// { "application-json", "MyDemoResponseModel" }, + /// { "application/json", "MyDemoResponseModel" }, /// }, /// ResponseParameters = /// { diff --git a/sdk/dotnet/CloudFront/Function.cs b/sdk/dotnet/CloudFront/Function.cs index f3a9a96a9a9..ec3bea49bdc 100644 --- a/sdk/dotnet/CloudFront/Function.cs +++ b/sdk/dotnet/CloudFront/Function.cs @@ -53,6 +53,12 @@ public partial class Function : global::Pulumi.CustomResource [Output("etag")] public Output Etag { get; private set; } = null!; + /// + /// List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + /// + [Output("keyValueStoreAssociations")] + public Output> KeyValueStoreAssociations { get; private set; } = null!; + /// /// ETag hash of any `LIVE` stage of the function. /// @@ -143,6 +149,18 @@ public sealed class FunctionArgs : global::Pulumi.ResourceArgs [Input("comment")] public Input? Comment { get; set; } + [Input("keyValueStoreAssociations")] + private InputList? _keyValueStoreAssociations; + + /// + /// List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + /// + public InputList KeyValueStoreAssociations + { + get => _keyValueStoreAssociations ?? (_keyValueStoreAssociations = new InputList()); + set => _keyValueStoreAssociations = value; + } + /// /// Unique name for your CloudFront Function. /// @@ -195,6 +213,18 @@ public sealed class FunctionState : global::Pulumi.ResourceArgs [Input("etag")] public Input? Etag { get; set; } + [Input("keyValueStoreAssociations")] + private InputList? _keyValueStoreAssociations; + + /// + /// List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + /// + public InputList KeyValueStoreAssociations + { + get => _keyValueStoreAssociations ?? (_keyValueStoreAssociations = new InputList()); + set => _keyValueStoreAssociations = value; + } + /// /// ETag hash of any `LIVE` stage of the function. /// diff --git a/sdk/dotnet/CloudFront/GetFunction.cs b/sdk/dotnet/CloudFront/GetFunction.cs index 39e280b5b41..d70f7f73d05 100644 --- a/sdk/dotnet/CloudFront/GetFunction.cs +++ b/sdk/dotnet/CloudFront/GetFunction.cs @@ -134,6 +134,10 @@ public sealed class GetFunctionResult /// public readonly string Id; /// + /// List of `aws.cloudfront.KeyValueStore` ARNs associated to the function. + /// + public readonly ImmutableArray KeyValueStoreAssociations; + /// /// When this resource was last modified. /// public readonly string LastModifiedTime; @@ -160,6 +164,8 @@ private GetFunctionResult( string id, + ImmutableArray keyValueStoreAssociations, + string lastModifiedTime, string name, @@ -175,6 +181,7 @@ private GetFunctionResult( Comment = comment; Etag = etag; Id = id; + KeyValueStoreAssociations = keyValueStoreAssociations; LastModifiedTime = lastModifiedTime; Name = name; Runtime = runtime; diff --git a/sdk/dotnet/CloudFront/KeyvaluestoreKey.cs b/sdk/dotnet/CloudFront/KeyvaluestoreKey.cs new file mode 100644 index 00000000000..253903f3ae0 --- /dev/null +++ b/sdk/dotnet/CloudFront/KeyvaluestoreKey.cs @@ -0,0 +1,181 @@ +// *** 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.CloudFront +{ + /// + /// Resource for managing an AWS CloudFront KeyValueStore Key. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.CloudFront.KeyValueStore("example", new() + /// { + /// Name = "ExampleKeyValueStore", + /// Comment = "This is an example key value store", + /// }); + /// + /// var exampleKeyvaluestoreKey = new Aws.CloudFront.KeyvaluestoreKey("example", new() + /// { + /// KeyValueStoreArn = example.Arn, + /// Key = "Test Key", + /// Value = "Test Value", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey + /// ``` + /// + [AwsResourceType("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey")] + public partial class KeyvaluestoreKey : global::Pulumi.CustomResource + { + /// + /// Key to put. + /// + [Output("key")] + public Output Key { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the Key Value Store. + /// + [Output("keyValueStoreArn")] + public Output KeyValueStoreArn { get; private set; } = null!; + + /// + /// Total size of the Key Value Store in bytes. + /// + [Output("totalSizeInBytes")] + public Output TotalSizeInBytes { get; private set; } = null!; + + /// + /// Value to put. + /// + [Output("value")] + public Output Value { get; private set; } = null!; + + + /// + /// Create a KeyvaluestoreKey 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 KeyvaluestoreKey(string name, KeyvaluestoreKeyArgs args, CustomResourceOptions? options = null) + : base("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", name, args ?? new KeyvaluestoreKeyArgs(), MakeResourceOptions(options, "")) + { + } + + private KeyvaluestoreKey(string name, Input id, KeyvaluestoreKeyState? state = null, CustomResourceOptions? options = null) + : base("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", 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 KeyvaluestoreKey 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 KeyvaluestoreKey Get(string name, Input id, KeyvaluestoreKeyState? state = null, CustomResourceOptions? options = null) + { + return new KeyvaluestoreKey(name, id, state, options); + } + } + + public sealed class KeyvaluestoreKeyArgs : global::Pulumi.ResourceArgs + { + /// + /// Key to put. + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the Key Value Store. + /// + [Input("keyValueStoreArn", required: true)] + public Input KeyValueStoreArn { get; set; } = null!; + + /// + /// Value to put. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public KeyvaluestoreKeyArgs() + { + } + public static new KeyvaluestoreKeyArgs Empty => new KeyvaluestoreKeyArgs(); + } + + public sealed class KeyvaluestoreKeyState : global::Pulumi.ResourceArgs + { + /// + /// Key to put. + /// + [Input("key")] + public Input? Key { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Key Value Store. + /// + [Input("keyValueStoreArn")] + public Input? KeyValueStoreArn { get; set; } + + /// + /// Total size of the Key Value Store in bytes. + /// + [Input("totalSizeInBytes")] + public Input? TotalSizeInBytes { get; set; } + + /// + /// Value to put. + /// + [Input("value")] + public Input? Value { get; set; } + + public KeyvaluestoreKeyState() + { + } + public static new KeyvaluestoreKeyState Empty => new KeyvaluestoreKeyState(); + } +} diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index ccf210be860..839c0152342 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -777,6 +777,10 @@ public class Endpoints public string? Datasync { get; set; } = null!; /// /// Use this to override the default service endpoint URL + /// + public string? Datazone { get; set; } = null!; + /// + /// Use this to override the default service endpoint URL /// public string? Dax { get; set; } = null!; /// @@ -1217,6 +1221,10 @@ public class Endpoints public string? Outposts { get; set; } = null!; /// /// Use this to override the default service endpoint URL + /// + public string? Paymentcryptography { get; set; } = null!; + /// + /// Use this to override the default service endpoint URL /// public string? Pcaconnectorad { get; set; } = null!; /// diff --git a/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersArgs.cs b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersArgs.cs new file mode 100644 index 00000000000..9312bcbca1c --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersArgs.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.DevOpsGuru.Inputs +{ + + public sealed class NotificationChannelFiltersArgs : global::Pulumi.ResourceArgs + { + [Input("messageTypes")] + private InputList? _messageTypes; + + /// + /// Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + /// + public InputList MessageTypes + { + get => _messageTypes ?? (_messageTypes = new InputList()); + set => _messageTypes = value; + } + + [Input("severities")] + private InputList? _severities; + + /// + /// Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + /// + public InputList Severities + { + get => _severities ?? (_severities = new InputList()); + set => _severities = value; + } + + public NotificationChannelFiltersArgs() + { + } + public static new NotificationChannelFiltersArgs Empty => new NotificationChannelFiltersArgs(); + } +} diff --git a/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersGetArgs.cs b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersGetArgs.cs new file mode 100644 index 00000000000..65abc9bc7d0 --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelFiltersGetArgs.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.DevOpsGuru.Inputs +{ + + public sealed class NotificationChannelFiltersGetArgs : global::Pulumi.ResourceArgs + { + [Input("messageTypes")] + private InputList? _messageTypes; + + /// + /// Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + /// + public InputList MessageTypes + { + get => _messageTypes ?? (_messageTypes = new InputList()); + set => _messageTypes = value; + } + + [Input("severities")] + private InputList? _severities; + + /// + /// Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + /// + public InputList Severities + { + get => _severities ?? (_severities = new InputList()); + set => _severities = value; + } + + public NotificationChannelFiltersGetArgs() + { + } + public static new NotificationChannelFiltersGetArgs Empty => new NotificationChannelFiltersGetArgs(); + } +} diff --git a/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsArgs.cs b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsArgs.cs new file mode 100644 index 00000000000..24d309614bb --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsArgs.cs @@ -0,0 +1,23 @@ +// *** 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.DevOpsGuru.Inputs +{ + + public sealed class NotificationChannelSnsArgs : global::Pulumi.ResourceArgs + { + [Input("topicArn", required: true)] + public Input TopicArn { get; set; } = null!; + + public NotificationChannelSnsArgs() + { + } + public static new NotificationChannelSnsArgs Empty => new NotificationChannelSnsArgs(); + } +} diff --git a/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsGetArgs.cs b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsGetArgs.cs new file mode 100644 index 00000000000..0cab3819852 --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Inputs/NotificationChannelSnsGetArgs.cs @@ -0,0 +1,23 @@ +// *** 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.DevOpsGuru.Inputs +{ + + public sealed class NotificationChannelSnsGetArgs : global::Pulumi.ResourceArgs + { + [Input("topicArn", required: true)] + public Input TopicArn { get; set; } = null!; + + public NotificationChannelSnsGetArgs() + { + } + public static new NotificationChannelSnsGetArgs Empty => new NotificationChannelSnsGetArgs(); + } +} diff --git a/sdk/dotnet/DevOpsGuru/NotificationChannel.cs b/sdk/dotnet/DevOpsGuru/NotificationChannel.cs new file mode 100644 index 00000000000..559e9e93abe --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/NotificationChannel.cs @@ -0,0 +1,186 @@ +// *** 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.DevOpsGuru +{ + /// + /// Resource for managing an AWS DevOps Guru Notification Channel. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.DevOpsGuru.NotificationChannel("example", new() + /// { + /// Sns = new Aws.DevOpsGuru.Inputs.NotificationChannelSnsArgs + /// { + /// TopicArn = exampleAwsSnsTopic.Arn, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ### Filters + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.DevOpsGuru.NotificationChannel("example", new() + /// { + /// Sns = new Aws.DevOpsGuru.Inputs.NotificationChannelSnsArgs + /// { + /// TopicArn = exampleAwsSnsTopic.Arn, + /// }, + /// Filters = new Aws.DevOpsGuru.Inputs.NotificationChannelFiltersArgs + /// { + /// MessageTypes = new[] + /// { + /// "NEW_INSIGHT", + /// }, + /// Severities = new[] + /// { + /// "HIGH", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 + /// ``` + /// + [AwsResourceType("aws:devopsguru/notificationChannel:NotificationChannel")] + public partial class NotificationChannel : global::Pulumi.CustomResource + { + /// + /// Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + /// + [Output("filters")] + public Output Filters { get; private set; } = null!; + + /// + /// SNS noficiation channel configurations. See the `sns` argument reference below. + /// + /// The following arguments are optional: + /// + [Output("sns")] + public Output Sns { get; private set; } = null!; + + + /// + /// Create a NotificationChannel 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 NotificationChannel(string name, NotificationChannelArgs? args = null, CustomResourceOptions? options = null) + : base("aws:devopsguru/notificationChannel:NotificationChannel", name, args ?? new NotificationChannelArgs(), MakeResourceOptions(options, "")) + { + } + + private NotificationChannel(string name, Input id, NotificationChannelState? state = null, CustomResourceOptions? options = null) + : base("aws:devopsguru/notificationChannel:NotificationChannel", 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 NotificationChannel 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 NotificationChannel Get(string name, Input id, NotificationChannelState? state = null, CustomResourceOptions? options = null) + { + return new NotificationChannel(name, id, state, options); + } + } + + public sealed class NotificationChannelArgs : global::Pulumi.ResourceArgs + { + /// + /// Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + /// + [Input("filters")] + public Input? Filters { get; set; } + + /// + /// SNS noficiation channel configurations. See the `sns` argument reference below. + /// + /// The following arguments are optional: + /// + [Input("sns")] + public Input? Sns { get; set; } + + public NotificationChannelArgs() + { + } + public static new NotificationChannelArgs Empty => new NotificationChannelArgs(); + } + + public sealed class NotificationChannelState : global::Pulumi.ResourceArgs + { + /// + /// Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + /// + [Input("filters")] + public Input? Filters { get; set; } + + /// + /// SNS noficiation channel configurations. See the `sns` argument reference below. + /// + /// The following arguments are optional: + /// + [Input("sns")] + public Input? Sns { get; set; } + + public NotificationChannelState() + { + } + public static new NotificationChannelState Empty => new NotificationChannelState(); + } +} diff --git a/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelFilters.cs b/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelFilters.cs new file mode 100644 index 00000000000..df030b143cd --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelFilters.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.DevOpsGuru.Outputs +{ + + [OutputType] + public sealed class NotificationChannelFilters + { + /// + /// Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + /// + public readonly ImmutableArray MessageTypes; + /// + /// Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + /// + public readonly ImmutableArray Severities; + + [OutputConstructor] + private NotificationChannelFilters( + ImmutableArray messageTypes, + + ImmutableArray severities) + { + MessageTypes = messageTypes; + Severities = severities; + } + } +} diff --git a/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelSns.cs b/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelSns.cs new file mode 100644 index 00000000000..c59e2e4c202 --- /dev/null +++ b/sdk/dotnet/DevOpsGuru/Outputs/NotificationChannelSns.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.DevOpsGuru.Outputs +{ + + [OutputType] + public sealed class NotificationChannelSns + { + public readonly string TopicArn; + + [OutputConstructor] + private NotificationChannelSns(string topicArn) + { + TopicArn = topicArn; + } + } +} diff --git a/sdk/dotnet/DynamoDB/ResourcePolicy.cs b/sdk/dotnet/DynamoDB/ResourcePolicy.cs new file mode 100644 index 00000000000..fb856f1a5c5 --- /dev/null +++ b/sdk/dotnet/DynamoDB/ResourcePolicy.cs @@ -0,0 +1,189 @@ +// *** 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.DynamoDB +{ + /// + /// <!--- + /// TIP: A few guiding principles for writing documentation: + /// 1. Use simple language while avoiding jargon and figures of speech. + /// 2. Focus on brevity and clarity to keep a reader's attention. + /// 3. Use active voice and present tense whenever you can. + /// 4. Document your feature as it exists now; do not mention the future or past if you can help it. + /// 5. Use accessible and inclusive language. + /// --->` + /// + /// Resource for managing an AWS DynamoDB Resource Policy. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.DynamoDB.ResourcePolicy("example", new() + /// { + /// ResourceArn = exampleAwsDynamodbTable.Arn, + /// Policy = test.Json, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: + /// + /// ```sh + /// $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table + /// ``` + /// + [AwsResourceType("aws:dynamodb/resourcePolicy:ResourcePolicy")] + public partial class ResourcePolicy : global::Pulumi.CustomResource + { + /// + /// Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + /// + [Output("confirmRemoveSelfResourceAccess")] + public Output ConfirmRemoveSelfResourceAccess { get; private set; } = null!; + + /// + /// n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + /// + /// The following arguments are optional: + /// + [Output("policy")] + public Output Policy { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + /// + [Output("resourceArn")] + public Output ResourceArn { get; private set; } = null!; + + /// + /// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + /// + [Output("revisionId")] + public Output RevisionId { get; private set; } = null!; + + + /// + /// Create a ResourcePolicy 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 ResourcePolicy(string name, ResourcePolicyArgs args, CustomResourceOptions? options = null) + : base("aws:dynamodb/resourcePolicy:ResourcePolicy", name, args ?? new ResourcePolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private ResourcePolicy(string name, Input id, ResourcePolicyState? state = null, CustomResourceOptions? options = null) + : base("aws:dynamodb/resourcePolicy:ResourcePolicy", 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 ResourcePolicy 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 ResourcePolicy Get(string name, Input id, ResourcePolicyState? state = null, CustomResourceOptions? options = null) + { + return new ResourcePolicy(name, id, state, options); + } + } + + public sealed class ResourcePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + /// + [Input("confirmRemoveSelfResourceAccess")] + public Input? ConfirmRemoveSelfResourceAccess { get; set; } + + /// + /// n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + /// + /// The following arguments are optional: + /// + [Input("policy", required: true)] + public Input Policy { get; set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + /// + [Input("resourceArn", required: true)] + public Input ResourceArn { get; set; } = null!; + + public ResourcePolicyArgs() + { + } + public static new ResourcePolicyArgs Empty => new ResourcePolicyArgs(); + } + + public sealed class ResourcePolicyState : global::Pulumi.ResourceArgs + { + /// + /// Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + /// + [Input("confirmRemoveSelfResourceAccess")] + public Input? ConfirmRemoveSelfResourceAccess { get; set; } + + /// + /// n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + /// + /// The following arguments are optional: + /// + [Input("policy")] + public Input? Policy { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + /// + [Input("resourceArn")] + public Input? ResourceArn { get; set; } + + /// + /// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + /// + [Input("revisionId")] + public Input? RevisionId { get; set; } + + public ResourcePolicyState() + { + } + public static new ResourcePolicyState Empty => new ResourcePolicyState(); + } +} diff --git a/sdk/dotnet/Ec2/InstanceMetadataDefaults.cs b/sdk/dotnet/Ec2/InstanceMetadataDefaults.cs new file mode 100644 index 00000000000..d051cb8f65c --- /dev/null +++ b/sdk/dotnet/Ec2/InstanceMetadataDefaults.cs @@ -0,0 +1,175 @@ +// *** 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.Ec2 +{ + /// + /// Manages regional EC2 instance metadata default settings. + /// More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var enforce_imdsv2 = new Aws.Ec2.InstanceMetadataDefaults("enforce-imdsv2", new() + /// { + /// HttpTokens = "required", + /// HttpPutResponseHopLimit = 1, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// You cannot import this resource. + /// + [AwsResourceType("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults")] + public partial class InstanceMetadataDefaults : global::Pulumi.CustomResource + { + /// + /// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Output("httpEndpoint")] + public Output HttpEndpoint { get; private set; } = null!; + + /// + /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + /// + [Output("httpPutResponseHopLimit")] + public Output HttpPutResponseHopLimit { get; private set; } = null!; + + /// + /// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Output("httpTokens")] + public Output HttpTokens { get; private set; } = null!; + + /// + /// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Output("instanceMetadataTags")] + public Output InstanceMetadataTags { get; private set; } = null!; + + + /// + /// Create a InstanceMetadataDefaults 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 InstanceMetadataDefaults(string name, InstanceMetadataDefaultsArgs? args = null, CustomResourceOptions? options = null) + : base("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, args ?? new InstanceMetadataDefaultsArgs(), MakeResourceOptions(options, "")) + { + } + + private InstanceMetadataDefaults(string name, Input id, InstanceMetadataDefaultsState? state = null, CustomResourceOptions? options = null) + : base("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", 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 InstanceMetadataDefaults 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 InstanceMetadataDefaults Get(string name, Input id, InstanceMetadataDefaultsState? state = null, CustomResourceOptions? options = null) + { + return new InstanceMetadataDefaults(name, id, state, options); + } + } + + public sealed class InstanceMetadataDefaultsArgs : global::Pulumi.ResourceArgs + { + /// + /// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("httpEndpoint")] + public Input? HttpEndpoint { get; set; } + + /// + /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + /// + [Input("httpPutResponseHopLimit")] + public Input? HttpPutResponseHopLimit { get; set; } + + /// + /// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("httpTokens")] + public Input? HttpTokens { get; set; } + + /// + /// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("instanceMetadataTags")] + public Input? InstanceMetadataTags { get; set; } + + public InstanceMetadataDefaultsArgs() + { + } + public static new InstanceMetadataDefaultsArgs Empty => new InstanceMetadataDefaultsArgs(); + } + + public sealed class InstanceMetadataDefaultsState : global::Pulumi.ResourceArgs + { + /// + /// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("httpEndpoint")] + public Input? HttpEndpoint { get; set; } + + /// + /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + /// + [Input("httpPutResponseHopLimit")] + public Input? HttpPutResponseHopLimit { get; set; } + + /// + /// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("httpTokens")] + public Input? HttpTokens { get; set; } + + /// + /// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + /// + [Input("instanceMetadataTags")] + public Input? InstanceMetadataTags { get; set; } + + public InstanceMetadataDefaultsState() + { + } + public static new InstanceMetadataDefaultsState Empty => new InstanceMetadataDefaultsState(); + } +} diff --git a/sdk/dotnet/Ec2/Vpc.cs b/sdk/dotnet/Ec2/Vpc.cs index bdf2befa1db..2a61fa5d3ff 100644 --- a/sdk/dotnet/Ec2/Vpc.cs +++ b/sdk/dotnet/Ec2/Vpc.cs @@ -153,6 +153,9 @@ public partial class Vpc : global::Pulumi.CustomResource [Output("defaultSecurityGroupId")] public Output DefaultSecurityGroupId { get; private set; } = null!; + /// + /// DHCP options id of the desired VPC. + /// [Output("dhcpOptionsId")] public Output DhcpOptionsId { get; private set; } = null!; @@ -422,6 +425,9 @@ public sealed class VpcState : global::Pulumi.ResourceArgs [Input("defaultSecurityGroupId")] public Input? DefaultSecurityGroupId { get; set; } + /// + /// DHCP options id of the desired VPC. + /// [Input("dhcpOptionsId")] public Input? DhcpOptionsId { get; set; } diff --git a/sdk/dotnet/Ec2/VpcIpam.cs b/sdk/dotnet/Ec2/VpcIpam.cs index 07be70947e7..c6afa7ae51f 100644 --- a/sdk/dotnet/Ec2/VpcIpam.cs +++ b/sdk/dotnet/Ec2/VpcIpam.cs @@ -127,6 +127,12 @@ public partial class VpcIpam : global::Pulumi.CustomResource [Output("tagsAll")] public Output> TagsAll { get; private set; } = null!; + /// + /// specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + /// + [Output("tier")] + public Output Tier { get; private set; } = null!; + /// /// Create a VpcIpam resource with the given unique name, arguments, and options. @@ -209,6 +215,12 @@ public InputMap Tags set => _tags = value; } + /// + /// specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + /// + [Input("tier")] + public Input? Tier { get; set; } + public VpcIpamArgs() { } @@ -303,6 +315,12 @@ public InputMap TagsAll set => _tagsAll = value; } + /// + /// specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + /// + [Input("tier")] + public Input? Tier { get; set; } + public VpcIpamState() { } diff --git a/sdk/dotnet/Ec2/VpnConnection.cs b/sdk/dotnet/Ec2/VpnConnection.cs index 2965171c21f..203dcdca592 100644 --- a/sdk/dotnet/Ec2/VpnConnection.cs +++ b/sdk/dotnet/Ec2/VpnConnection.cs @@ -232,7 +232,7 @@ public partial class VpnConnection : global::Pulumi.CustomResource public Output RemoteIpv4NetworkCidr { get; private set; } = null!; /// - /// The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + /// The IPv6 CIDR on the AWS side of the VPN connection. /// [Output("remoteIpv6NetworkCidr")] public Output RemoteIpv6NetworkCidr { get; private set; } = null!; @@ -692,7 +692,7 @@ public sealed class VpnConnectionArgs : global::Pulumi.ResourceArgs public Input? RemoteIpv4NetworkCidr { get; set; } /// - /// The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + /// The IPv6 CIDR on the AWS side of the VPN connection. /// [Input("remoteIpv6NetworkCidr")] public Input? RemoteIpv6NetworkCidr { get; set; } @@ -1168,7 +1168,7 @@ public Input? CustomerGatewayConfiguration public Input? RemoteIpv4NetworkCidr { get; set; } /// - /// The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + /// The IPv6 CIDR on the AWS side of the VPN connection. /// [Input("remoteIpv6NetworkCidr")] public Input? RemoteIpv6NetworkCidr { get; set; } diff --git a/sdk/dotnet/Glacier/VaultLock.cs b/sdk/dotnet/Glacier/VaultLock.cs index 7f5cb64517a..6527463801e 100644 --- a/sdk/dotnet/Glacier/VaultLock.cs +++ b/sdk/dotnet/Glacier/VaultLock.cs @@ -10,12 +10,6 @@ namespace Pulumi.Aws.Glacier { /// - /// Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. - /// - /// > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `complete_lock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `complete_lock` argument to `true`. When changing `complete_lock` to `true`, it is expected the resource will show as recreating. - /// - /// !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignore_deletion_error` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. - /// /// ## Example Usage /// /// ### Testing Glacier Vault Lock Policy diff --git a/sdk/dotnet/Iam/GroupPolicy.cs b/sdk/dotnet/Iam/GroupPolicy.cs index 1233631ba0f..47a4b2cd993 100644 --- a/sdk/dotnet/Iam/GroupPolicy.cs +++ b/sdk/dotnet/Iam/GroupPolicy.cs @@ -12,6 +12,8 @@ namespace Pulumi.Aws.Iam /// /// Provides an IAM policy attached to a group. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/dotnet/Iam/InstanceProfile.cs b/sdk/dotnet/Iam/InstanceProfile.cs index a2eae0630ed..633702ecc34 100644 --- a/sdk/dotnet/Iam/InstanceProfile.cs +++ b/sdk/dotnet/Iam/InstanceProfile.cs @@ -12,6 +12,8 @@ namespace Pulumi.Aws.Iam /// /// Provides an IAM instance profile. /// + /// > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> @@ -90,7 +92,7 @@ public partial class InstanceProfile : global::Pulumi.CustomResource public Output CreateDate { get; private set; } = null!; /// - /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -178,7 +180,7 @@ public static InstanceProfile Get(string name, Input id, InstanceProfile public sealed class InstanceProfileArgs : global::Pulumi.ResourceArgs { /// - /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. /// [Input("name")] public Input? Name { get; set; } @@ -234,7 +236,7 @@ public sealed class InstanceProfileState : global::Pulumi.ResourceArgs public Input? CreateDate { get; set; } /// - /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + /// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Iam/Policy.cs b/sdk/dotnet/Iam/Policy.cs index 158edf59640..8ad6d76442c 100644 --- a/sdk/dotnet/Iam/Policy.cs +++ b/sdk/dotnet/Iam/Policy.cs @@ -12,6 +12,8 @@ namespace Pulumi.Aws.Iam /// /// Provides an IAM policy. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> @@ -63,7 +65,7 @@ namespace Pulumi.Aws.Iam public partial class Policy : global::Pulumi.CustomResource { /// - /// The ARN assigned by AWS to this policy. + /// ARN assigned by AWS to this policy. /// [Output("arn")] public Output Arn { get; private set; } = null!; @@ -75,7 +77,7 @@ public partial class Policy : global::Pulumi.CustomResource public Output Description { get; private set; } = null!; /// - /// The name of the policy. If omitted, the provider will assign a random, unique name. + /// Name of the policy. If omitted, the provider will assign a random, unique name. /// [Output("name")] public Output Name { get; private set; } = null!; @@ -87,20 +89,19 @@ public partial class Policy : global::Pulumi.CustomResource public Output NamePrefix { get; private set; } = null!; /// - /// Path in which to create the policy. - /// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + /// Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. /// [Output("path")] public Output Path { get; private set; } = null!; /// - /// The policy document. This is a JSON formatted string. + /// Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide /// [Output("policy")] public Output PolicyDocument { get; private set; } = null!; /// - /// The policy's ID. + /// Policy's ID. /// [Output("policyId")] public Output PolicyId { get; private set; } = null!; @@ -170,7 +171,7 @@ public sealed class PolicyArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The name of the policy. If omitted, the provider will assign a random, unique name. + /// Name of the policy. If omitted, the provider will assign a random, unique name. /// [Input("name")] public Input? Name { get; set; } @@ -182,14 +183,13 @@ public sealed class PolicyArgs : global::Pulumi.ResourceArgs public Input? NamePrefix { get; set; } /// - /// Path in which to create the policy. - /// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + /// Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. /// [Input("path")] public Input? Path { get; set; } /// - /// The policy document. This is a JSON formatted string. + /// Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide /// [Input("policy", required: true)] public Input PolicyDocument { get; set; } = null!; @@ -215,7 +215,7 @@ public PolicyArgs() public sealed class PolicyState : global::Pulumi.ResourceArgs { /// - /// The ARN assigned by AWS to this policy. + /// ARN assigned by AWS to this policy. /// [Input("arn")] public Input? Arn { get; set; } @@ -227,7 +227,7 @@ public sealed class PolicyState : global::Pulumi.ResourceArgs public Input? Description { get; set; } /// - /// The name of the policy. If omitted, the provider will assign a random, unique name. + /// Name of the policy. If omitted, the provider will assign a random, unique name. /// [Input("name")] public Input? Name { get; set; } @@ -239,20 +239,19 @@ public sealed class PolicyState : global::Pulumi.ResourceArgs public Input? NamePrefix { get; set; } /// - /// Path in which to create the policy. - /// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + /// Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. /// [Input("path")] public Input? Path { get; set; } /// - /// The policy document. This is a JSON formatted string. + /// Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide /// [Input("policy")] public Input? PolicyDocument { get; set; } /// - /// The policy's ID. + /// Policy's ID. /// [Input("policyId")] public Input? PolicyId { get; set; } diff --git a/sdk/dotnet/Iam/Role.cs b/sdk/dotnet/Iam/Role.cs index ece150f0be7..224e5367dc6 100644 --- a/sdk/dotnet/Iam/Role.cs +++ b/sdk/dotnet/Iam/Role.cs @@ -16,6 +16,8 @@ namespace Pulumi.Aws.Iam /// /// > **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// ### Basic Example diff --git a/sdk/dotnet/Iam/RolePolicy.cs b/sdk/dotnet/Iam/RolePolicy.cs index d783256b747..25e3140e24f 100644 --- a/sdk/dotnet/Iam/RolePolicy.cs +++ b/sdk/dotnet/Iam/RolePolicy.cs @@ -14,6 +14,8 @@ namespace Pulumi.Aws.Iam /// /// > **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/dotnet/Iam/UserPolicy.cs b/sdk/dotnet/Iam/UserPolicy.cs index aa3c415981e..b83bfc5aebd 100644 --- a/sdk/dotnet/Iam/UserPolicy.cs +++ b/sdk/dotnet/Iam/UserPolicy.cs @@ -12,6 +12,8 @@ namespace Pulumi.Aws.Iam /// /// Provides an IAM policy attached to a user. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs index e25b7b74522..a82f9bca98d 100644 --- a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs +++ b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs @@ -516,6 +516,12 @@ public sealed class ProviderEndpointArgs : global::Pulumi.ResourceArgs [Input("datasync")] public Input? Datasync { get; set; } + /// + /// Use this to override the default service endpoint URL + /// + [Input("datazone")] + public Input? Datazone { get; set; } + /// /// Use this to override the default service endpoint URL /// @@ -1176,6 +1182,12 @@ public sealed class ProviderEndpointArgs : global::Pulumi.ResourceArgs [Input("outposts")] public Input? Outposts { get; set; } + /// + /// Use this to override the default service endpoint URL + /// + [Input("paymentcryptography")] + public Input? Paymentcryptography { get; set; } + /// /// Use this to override the default service endpoint URL /// diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.cs index e86c7feafe2..ccac418b1af 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.cs @@ -19,7 +19,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConve public Input? OrcSerDe { get; set; } /// - /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. /// [Input("parquetSerDe")] public Input? ParquetSerDe { get; set; } diff --git a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerGetArgs.cs b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerGetArgs.cs index 5baefafede5..0391db892fa 100644 --- a/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerGetArgs.cs +++ b/sdk/dotnet/Kinesis/Inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerGetArgs.cs @@ -19,7 +19,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConve public Input? OrcSerDe { get; set; } /// - /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. /// [Input("parquetSerDe")] public Input? ParquetSerDe { get; set; } diff --git a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer.cs b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer.cs index 13c50dc7056..467ddfe8243 100644 --- a/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer.cs +++ b/sdk/dotnet/Kinesis/Outputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer.cs @@ -18,7 +18,7 @@ public sealed class FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConve /// public readonly Outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDe? OrcSerDe; /// - /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + /// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. /// public readonly Outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe? ParquetSerDe; diff --git a/sdk/dotnet/KinesisAnalyticsV2/Application.cs b/sdk/dotnet/KinesisAnalyticsV2/Application.cs index 2b92e5c622b..aa42da5c4c4 100644 --- a/sdk/dotnet/KinesisAnalyticsV2/Application.cs +++ b/sdk/dotnet/KinesisAnalyticsV2/Application.cs @@ -387,7 +387,7 @@ public partial class Application : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. /// [Output("runtimeEnvironment")] public Output RuntimeEnvironment { get; private set; } = null!; @@ -505,7 +505,7 @@ public sealed class ApplicationArgs : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. /// [Input("runtimeEnvironment", required: true)] public Input RuntimeEnvironment { get; set; } = null!; @@ -591,7 +591,7 @@ public sealed class ApplicationState : global::Pulumi.ResourceArgs public Input? Name { get; set; } /// - /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + /// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. /// [Input("runtimeEnvironment")] public Input? RuntimeEnvironment { get; set; } diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseArgs.cs new file mode 100644 index 00000000000..211e2e53243 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseArgs.cs @@ -0,0 +1,34 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagDatabaseArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Name of the database resource. Unique to the Data Catalog. + /// + /// The following argument is optional: + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public ResourceLfTagDatabaseArgs() + { + } + public static new ResourceLfTagDatabaseArgs Empty => new ResourceLfTagDatabaseArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseGetArgs.cs new file mode 100644 index 00000000000..c32b2b0b4f1 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagDatabaseGetArgs.cs @@ -0,0 +1,34 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagDatabaseGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Name of the database resource. Unique to the Data Catalog. + /// + /// The following argument is optional: + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public ResourceLfTagDatabaseGetArgs() + { + } + public static new ResourceLfTagDatabaseGetArgs Empty => new ResourceLfTagDatabaseGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagArgs.cs new file mode 100644 index 00000000000..cbb40b4bdb8 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagLfTagArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Key name for an existing LF-tag. + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// Value from the possible values for the LF-tag. + /// + /// The following argument is optional: + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ResourceLfTagLfTagArgs() + { + } + public static new ResourceLfTagLfTagArgs Empty => new ResourceLfTagLfTagArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagGetArgs.cs new file mode 100644 index 00000000000..b78a05c4930 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagLfTagGetArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagLfTagGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Key name for an existing LF-tag. + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// Value from the possible values for the LF-tag. + /// + /// The following argument is optional: + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ResourceLfTagLfTagGetArgs() + { + } + public static new ResourceLfTagLfTagGetArgs Empty => new ResourceLfTagLfTagGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableArgs.cs new file mode 100644 index 00000000000..16b675aa727 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableArgs.cs @@ -0,0 +1,46 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Name of the database for the table. Unique to a Data Catalog. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// Name of the table. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Whether to use a wildcard representing every table under a database. Defaults to `false`. + /// + /// The following arguments are optional: + /// + [Input("wildcard")] + public Input? Wildcard { get; set; } + + public ResourceLfTagTableArgs() + { + } + public static new ResourceLfTagTableArgs Empty => new ResourceLfTagTableArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableGetArgs.cs new file mode 100644 index 00000000000..ec8a3df5451 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableGetArgs.cs @@ -0,0 +1,46 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Name of the database for the table. Unique to a Data Catalog. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// Name of the table. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Whether to use a wildcard representing every table under a database. Defaults to `false`. + /// + /// The following arguments are optional: + /// + [Input("wildcard")] + public Input? Wildcard { get; set; } + + public ResourceLfTagTableGetArgs() + { + } + public static new ResourceLfTagTableGetArgs Empty => new ResourceLfTagTableGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsArgs.cs new file mode 100644 index 00000000000..50d45ddeb2e --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsArgs.cs @@ -0,0 +1,58 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableWithColumnsArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + [Input("columnNames")] + private InputList? _columnNames; + + /// + /// Set of column names for the table. + /// + public InputList ColumnNames + { + get => _columnNames ?? (_columnNames = new InputList()); + set => _columnNames = value; + } + + /// + /// Option to add column wildcard. See Column Wildcard for more details. + /// + [Input("columnWildcard")] + public Input? ColumnWildcard { get; set; } + + /// + /// Name of the database for the table with columns resource. Unique to the Data Catalog. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// Name of the table resource. + /// + /// The following arguments are optional: + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public ResourceLfTagTableWithColumnsArgs() + { + } + public static new ResourceLfTagTableWithColumnsArgs Empty => new ResourceLfTagTableWithColumnsArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.cs new file mode 100644 index 00000000000..874b989b01d --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableWithColumnsColumnWildcardArgs : global::Pulumi.ResourceArgs + { + [Input("excludedColumnNames")] + private InputList? _excludedColumnNames; + public InputList ExcludedColumnNames + { + get => _excludedColumnNames ?? (_excludedColumnNames = new InputList()); + set => _excludedColumnNames = value; + } + + public ResourceLfTagTableWithColumnsColumnWildcardArgs() + { + } + public static new ResourceLfTagTableWithColumnsColumnWildcardArgs Empty => new ResourceLfTagTableWithColumnsColumnWildcardArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardGetArgs.cs new file mode 100644 index 00000000000..bca5f06e382 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsColumnWildcardGetArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableWithColumnsColumnWildcardGetArgs : global::Pulumi.ResourceArgs + { + [Input("excludedColumnNames")] + private InputList? _excludedColumnNames; + public InputList ExcludedColumnNames + { + get => _excludedColumnNames ?? (_excludedColumnNames = new InputList()); + set => _excludedColumnNames = value; + } + + public ResourceLfTagTableWithColumnsColumnWildcardGetArgs() + { + } + public static new ResourceLfTagTableWithColumnsColumnWildcardGetArgs Empty => new ResourceLfTagTableWithColumnsColumnWildcardGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsGetArgs.cs new file mode 100644 index 00000000000..1f3246c6d48 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTableWithColumnsGetArgs.cs @@ -0,0 +1,58 @@ +// *** 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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTableWithColumnsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + [Input("columnNames")] + private InputList? _columnNames; + + /// + /// Set of column names for the table. + /// + public InputList ColumnNames + { + get => _columnNames ?? (_columnNames = new InputList()); + set => _columnNames = value; + } + + /// + /// Option to add column wildcard. See Column Wildcard for more details. + /// + [Input("columnWildcard")] + public Input? ColumnWildcard { get; set; } + + /// + /// Name of the database for the table with columns resource. Unique to the Data Catalog. + /// + [Input("databaseName", required: true)] + public Input DatabaseName { get; set; } = null!; + + /// + /// Name of the table resource. + /// + /// The following arguments are optional: + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public ResourceLfTagTableWithColumnsGetArgs() + { + } + public static new ResourceLfTagTableWithColumnsGetArgs Empty => new ResourceLfTagTableWithColumnsGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsArgs.cs new file mode 100644 index 00000000000..e39c6b97e2f --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTimeoutsArgs : 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; } + + public ResourceLfTagTimeoutsArgs() + { + } + public static new ResourceLfTagTimeoutsArgs Empty => new ResourceLfTagTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsGetArgs.cs b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsGetArgs.cs new file mode 100644 index 00000000000..42fbd3c0b8a --- /dev/null +++ b/sdk/dotnet/LakeFormation/Inputs/ResourceLfTagTimeoutsGetArgs.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.LakeFormation.Inputs +{ + + public sealed class ResourceLfTagTimeoutsGetArgs : 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; } + + public ResourceLfTagTimeoutsGetArgs() + { + } + public static new ResourceLfTagTimeoutsGetArgs Empty => new ResourceLfTagTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagDatabase.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagDatabase.cs new file mode 100644 index 00000000000..b57379391d0 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagDatabase.cs @@ -0,0 +1,37 @@ +// *** 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.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagDatabase + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + public readonly string? CatalogId; + /// + /// Name of the database resource. Unique to the Data Catalog. + /// + /// The following argument is optional: + /// + public readonly string Name; + + [OutputConstructor] + private ResourceLfTagDatabase( + string? catalogId, + + string name) + { + CatalogId = catalogId; + Name = name; + } + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagLfTag.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagLfTag.cs new file mode 100644 index 00000000000..64399f10d80 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagLfTag.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.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagLfTag + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + public readonly string? CatalogId; + /// + /// Key name for an existing LF-tag. + /// + public readonly string Key; + /// + /// Value from the possible values for the LF-tag. + /// + /// The following argument is optional: + /// + public readonly string Value; + + [OutputConstructor] + private ResourceLfTagLfTag( + string? catalogId, + + string key, + + string value) + { + CatalogId = catalogId; + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTable.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTable.cs new file mode 100644 index 00000000000..072238c94cd --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTable.cs @@ -0,0 +1,51 @@ +// *** 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.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagTable + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + public readonly string? CatalogId; + /// + /// Name of the database for the table. Unique to a Data Catalog. + /// + public readonly string DatabaseName; + /// + /// Name of the table. + /// + public readonly string? Name; + /// + /// Whether to use a wildcard representing every table under a database. Defaults to `false`. + /// + /// The following arguments are optional: + /// + public readonly bool? Wildcard; + + [OutputConstructor] + private ResourceLfTagTable( + string? catalogId, + + string databaseName, + + string? name, + + bool? wildcard) + { + CatalogId = catalogId; + DatabaseName = databaseName; + Name = name; + Wildcard = wildcard; + } + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumns.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumns.cs new file mode 100644 index 00000000000..af0c29483c8 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumns.cs @@ -0,0 +1,58 @@ +// *** 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.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagTableWithColumns + { + /// + /// Identifier for the Data Catalog. By default, it is the account ID of the caller. + /// + public readonly string? CatalogId; + /// + /// Set of column names for the table. + /// + public readonly ImmutableArray ColumnNames; + /// + /// Option to add column wildcard. See Column Wildcard for more details. + /// + public readonly Outputs.ResourceLfTagTableWithColumnsColumnWildcard? ColumnWildcard; + /// + /// Name of the database for the table with columns resource. Unique to the Data Catalog. + /// + public readonly string DatabaseName; + /// + /// Name of the table resource. + /// + /// The following arguments are optional: + /// + public readonly string Name; + + [OutputConstructor] + private ResourceLfTagTableWithColumns( + string? catalogId, + + ImmutableArray columnNames, + + Outputs.ResourceLfTagTableWithColumnsColumnWildcard? columnWildcard, + + string databaseName, + + string name) + { + CatalogId = catalogId; + ColumnNames = columnNames; + ColumnWildcard = columnWildcard; + DatabaseName = databaseName; + Name = name; + } + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumnsColumnWildcard.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumnsColumnWildcard.cs new file mode 100644 index 00000000000..7987a1319f7 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTableWithColumnsColumnWildcard.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagTableWithColumnsColumnWildcard + { + public readonly ImmutableArray ExcludedColumnNames; + + [OutputConstructor] + private ResourceLfTagTableWithColumnsColumnWildcard(ImmutableArray excludedColumnNames) + { + ExcludedColumnNames = excludedColumnNames; + } + } +} diff --git a/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTimeouts.cs b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTimeouts.cs new file mode 100644 index 00000000000..f1604411405 --- /dev/null +++ b/sdk/dotnet/LakeFormation/Outputs/ResourceLfTagTimeouts.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.LakeFormation.Outputs +{ + + [OutputType] + public sealed class ResourceLfTagTimeouts + { + /// + /// 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; + + [OutputConstructor] + private ResourceLfTagTimeouts( + string? create, + + string? delete) + { + Create = create; + Delete = delete; + } + } +} diff --git a/sdk/dotnet/LakeFormation/ResourceLfTag.cs b/sdk/dotnet/LakeFormation/ResourceLfTag.cs new file mode 100644 index 00000000000..448e0abcb8d --- /dev/null +++ b/sdk/dotnet/LakeFormation/ResourceLfTag.cs @@ -0,0 +1,222 @@ +// *** 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.LakeFormation +{ + /// + /// Resource for managing an AWS Lake Formation Resource LF Tag. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.LakeFormation.ResourceLfTag("example", new() + /// { + /// Database = new Aws.LakeFormation.Inputs.ResourceLfTagDatabaseArgs + /// { + /// Name = exampleAwsGlueCatalogDatabase.Name, + /// }, + /// LfTag = new Aws.LakeFormation.Inputs.ResourceLfTagLfTagArgs + /// { + /// Key = exampleAwsLakeformationLfTag.Key, + /// Value = "stowe", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// You cannot import this resource. + /// + [AwsResourceType("aws:lakeformation/resourceLfTag:ResourceLfTag")] + public partial class ResourceLfTag : global::Pulumi.CustomResource + { + /// + /// Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + /// + [Output("catalogId")] + public Output CatalogId { get; private set; } = null!; + + /// + /// Configuration block for a database resource. See Database for more details. + /// + [Output("database")] + public Output Database { get; private set; } = null!; + + /// + /// Set of LF-tags to attach to the resource. See LF Tag for more details. + /// + /// Exactly one of the following is required: + /// + [Output("lfTag")] + public Output LfTag { get; private set; } = null!; + + /// + /// Configuration block for a table resource. See Table for more details. + /// + [Output("table")] + public Output Table { get; private set; } = null!; + + /// + /// Configuration block for a table with columns resource. See Table With Columns for more details. + /// + /// The following arguments are optional: + /// + [Output("tableWithColumns")] + public Output TableWithColumns { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a ResourceLfTag 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 ResourceLfTag(string name, ResourceLfTagArgs? args = null, CustomResourceOptions? options = null) + : base("aws:lakeformation/resourceLfTag:ResourceLfTag", name, args ?? new ResourceLfTagArgs(), MakeResourceOptions(options, "")) + { + } + + private ResourceLfTag(string name, Input id, ResourceLfTagState? state = null, CustomResourceOptions? options = null) + : base("aws:lakeformation/resourceLfTag:ResourceLfTag", 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 ResourceLfTag 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 ResourceLfTag Get(string name, Input id, ResourceLfTagState? state = null, CustomResourceOptions? options = null) + { + return new ResourceLfTag(name, id, state, options); + } + } + + public sealed class ResourceLfTagArgs : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Configuration block for a database resource. See Database for more details. + /// + [Input("database")] + public Input? Database { get; set; } + + /// + /// Set of LF-tags to attach to the resource. See LF Tag for more details. + /// + /// Exactly one of the following is required: + /// + [Input("lfTag")] + public Input? LfTag { get; set; } + + /// + /// Configuration block for a table resource. See Table for more details. + /// + [Input("table")] + public Input? Table { get; set; } + + /// + /// Configuration block for a table with columns resource. See Table With Columns for more details. + /// + /// The following arguments are optional: + /// + [Input("tableWithColumns")] + public Input? TableWithColumns { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ResourceLfTagArgs() + { + } + public static new ResourceLfTagArgs Empty => new ResourceLfTagArgs(); + } + + public sealed class ResourceLfTagState : global::Pulumi.ResourceArgs + { + /// + /// Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + /// + [Input("catalogId")] + public Input? CatalogId { get; set; } + + /// + /// Configuration block for a database resource. See Database for more details. + /// + [Input("database")] + public Input? Database { get; set; } + + /// + /// Set of LF-tags to attach to the resource. See LF Tag for more details. + /// + /// Exactly one of the following is required: + /// + [Input("lfTag")] + public Input? LfTag { get; set; } + + /// + /// Configuration block for a table resource. See Table for more details. + /// + [Input("table")] + public Input? Table { get; set; } + + /// + /// Configuration block for a table with columns resource. See Table With Columns for more details. + /// + /// The following arguments are optional: + /// + [Input("tableWithColumns")] + public Input? TableWithColumns { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ResourceLfTagState() + { + } + public static new ResourceLfTagState Empty => new ResourceLfTagState(); + } +} diff --git a/sdk/dotnet/M2/Application.cs b/sdk/dotnet/M2/Application.cs new file mode 100644 index 00000000000..a76f27f46a0 --- /dev/null +++ b/sdk/dotnet/M2/Application.cs @@ -0,0 +1,345 @@ +// *** 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.M2 +{ + /// + /// Resource for managing an [AWS Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.M2.Application("example", new() + /// { + /// Name = "Example", + /// EngineType = "bluage", + /// Definition = new Aws.M2.Inputs.ApplicationDefinitionArgs + /// { + /// Content = @$"{{ + /// ""definition"": {{ + /// ""listeners"": [ + /// {{ + /// ""port"": 8196, + /// ""type"": ""http"" + /// }} + /// ], + /// ""ba-application"": {{ + /// ""app-location"": ""{s3_source}/PlanetsDemo-v1.zip"" + /// }} + /// }}, + /// ""source-locations"": [ + /// {{ + /// ""source-id"": ""s3-source"", + /// ""source-type"": ""s3"", + /// ""properties"": {{ + /// ""s3-bucket"": ""example-bucket"", + /// ""s3-key-prefix"": ""v1"" + /// }} + /// }} + /// ], + /// ""template-version"": ""2.0"" + /// }} + /// + /// ", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: + /// + /// ```sh + /// $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 + /// ``` + /// + [AwsResourceType("aws:m2/application:Application")] + public partial class Application : global::Pulumi.CustomResource + { + /// + /// Id of the Application. + /// + [Output("applicationId")] + public Output ApplicationId { get; private set; } = null!; + + /// + /// ARN of the Application. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Current version of the application deployed. + /// + [Output("currentVersion")] + public Output CurrentVersion { get; private set; } = null!; + + /// + /// The application definition for this application. You can specify either inline JSON or an S3 bucket location. + /// + [Output("definition")] + public Output Definition { get; private set; } = null!; + + /// + /// Description of the application. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Engine type must be `microfocus | bluage`. + /// + [Output("engineType")] + public Output EngineType { get; private set; } = null!; + + /// + /// KMS Key to use for the Application. + /// + [Output("kmsKeyId")] + public Output KmsKeyId { get; private set; } = null!; + + /// + /// Unique identifier of the application. + /// + /// The following arguments are optional: + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// ARN of role for application to use to access AWS resources. + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + /// + /// A map of tags assigned to the WorkSpaces Connection Alias. 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!; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Output("tagsAll")] + public Output> TagsAll { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a Application 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 Application(string name, ApplicationArgs args, CustomResourceOptions? options = null) + : base("aws:m2/application:Application", name, args ?? new ApplicationArgs(), MakeResourceOptions(options, "")) + { + } + + private Application(string name, Input id, ApplicationState? state = null, CustomResourceOptions? options = null) + : base("aws:m2/application:Application", 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 Application 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 Application Get(string name, Input id, ApplicationState? state = null, CustomResourceOptions? options = null) + { + return new Application(name, id, state, options); + } + } + + public sealed class ApplicationArgs : global::Pulumi.ResourceArgs + { + /// + /// The application definition for this application. You can specify either inline JSON or an S3 bucket location. + /// + [Input("definition")] + public Input? Definition { get; set; } + + /// + /// Description of the application. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Engine type must be `microfocus | bluage`. + /// + [Input("engineType", required: true)] + public Input EngineType { get; set; } = null!; + + /// + /// KMS Key to use for the Application. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// Unique identifier of the application. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ARN of role for application to use to access AWS resources. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags assigned to the WorkSpaces Connection Alias. 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; } + + public ApplicationArgs() + { + } + public static new ApplicationArgs Empty => new ApplicationArgs(); + } + + public sealed class ApplicationState : global::Pulumi.ResourceArgs + { + /// + /// Id of the Application. + /// + [Input("applicationId")] + public Input? ApplicationId { get; set; } + + /// + /// ARN of the Application. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Current version of the application deployed. + /// + [Input("currentVersion")] + public Input? CurrentVersion { get; set; } + + /// + /// The application definition for this application. You can specify either inline JSON or an S3 bucket location. + /// + [Input("definition")] + public Input? Definition { get; set; } + + /// + /// Description of the application. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Engine type must be `microfocus | bluage`. + /// + [Input("engineType")] + public Input? EngineType { get; set; } + + /// + /// KMS Key to use for the Application. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// Unique identifier of the application. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// ARN of role for application to use to access AWS resources. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags assigned to the WorkSpaces Connection Alias. 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; + + /// + /// A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + /// + [Obsolete(@"Please use `tags` instead.")] + public InputMap TagsAll + { + get => _tagsAll ?? (_tagsAll = new InputMap()); + set => _tagsAll = value; + } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public ApplicationState() + { + } + public static new ApplicationState Empty => new ApplicationState(); + } +} diff --git a/sdk/dotnet/M2/Deployment.cs b/sdk/dotnet/M2/Deployment.cs new file mode 100644 index 00000000000..9e4c7b298f9 --- /dev/null +++ b/sdk/dotnet/M2/Deployment.cs @@ -0,0 +1,206 @@ +// *** 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.M2 +{ + /// + /// Resource for managing an [AWS Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = new Aws.M2.Deployment("test", new() + /// { + /// EnvironmentId = "01234567890abcdef012345678", + /// ApplicationId = "34567890abcdef012345678012", + /// ApplicationVersion = 1, + /// Start = true, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: + /// + /// ```sh + /// $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID + /// ``` + /// + [AwsResourceType("aws:m2/deployment:Deployment")] + public partial class Deployment : global::Pulumi.CustomResource + { + /// + /// Application to deploy. + /// + [Output("applicationId")] + public Output ApplicationId { get; private set; } = null!; + + /// + /// Version to application to deploy + /// + [Output("applicationVersion")] + public Output ApplicationVersion { get; private set; } = null!; + + [Output("deploymentId")] + public Output DeploymentId { get; private set; } = null!; + + /// + /// Environment to deploy application to. + /// + [Output("environmentId")] + public Output EnvironmentId { get; private set; } = null!; + + [Output("forceStop")] + public Output ForceStop { get; private set; } = null!; + + /// + /// Start the application once deployed. + /// + [Output("start")] + public Output Start { get; private set; } = null!; + + [Output("timeouts")] + public Output Timeouts { get; private set; } = null!; + + + /// + /// Create a Deployment 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 Deployment(string name, DeploymentArgs args, CustomResourceOptions? options = null) + : base("aws:m2/deployment:Deployment", name, args ?? new DeploymentArgs(), MakeResourceOptions(options, "")) + { + } + + private Deployment(string name, Input id, DeploymentState? state = null, CustomResourceOptions? options = null) + : base("aws:m2/deployment:Deployment", 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 Deployment 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 Deployment Get(string name, Input id, DeploymentState? state = null, CustomResourceOptions? options = null) + { + return new Deployment(name, id, state, options); + } + } + + public sealed class DeploymentArgs : global::Pulumi.ResourceArgs + { + /// + /// Application to deploy. + /// + [Input("applicationId", required: true)] + public Input ApplicationId { get; set; } = null!; + + /// + /// Version to application to deploy + /// + [Input("applicationVersion", required: true)] + public Input ApplicationVersion { get; set; } = null!; + + /// + /// Environment to deploy application to. + /// + [Input("environmentId", required: true)] + public Input EnvironmentId { get; set; } = null!; + + [Input("forceStop")] + public Input? ForceStop { get; set; } + + /// + /// Start the application once deployed. + /// + [Input("start", required: true)] + public Input Start { get; set; } = null!; + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public DeploymentArgs() + { + } + public static new DeploymentArgs Empty => new DeploymentArgs(); + } + + public sealed class DeploymentState : global::Pulumi.ResourceArgs + { + /// + /// Application to deploy. + /// + [Input("applicationId")] + public Input? ApplicationId { get; set; } + + /// + /// Version to application to deploy + /// + [Input("applicationVersion")] + public Input? ApplicationVersion { get; set; } + + [Input("deploymentId")] + public Input? DeploymentId { get; set; } + + /// + /// Environment to deploy application to. + /// + [Input("environmentId")] + public Input? EnvironmentId { get; set; } + + [Input("forceStop")] + public Input? ForceStop { get; set; } + + /// + /// Start the application once deployed. + /// + [Input("start")] + public Input? Start { get; set; } + + [Input("timeouts")] + public Input? Timeouts { get; set; } + + public DeploymentState() + { + } + public static new DeploymentState Empty => new DeploymentState(); + } +} diff --git a/sdk/dotnet/M2/Environment.cs b/sdk/dotnet/M2/Environment.cs new file mode 100644 index 00000000000..cc7e10bbe7d --- /dev/null +++ b/sdk/dotnet/M2/Environment.cs @@ -0,0 +1,420 @@ +// *** 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.M2 +{ + /// + /// Resource for managing an [AWS Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). + /// + /// ## Example Usage + /// + /// ## Import + /// + /// Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: + /// + /// ```sh + /// $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 + /// ``` + /// + [AwsResourceType("aws:m2/environment:Environment")] + public partial class Environment : global::Pulumi.CustomResource + { + [Output("applyChangesDuringMaintenanceWindow")] + public Output ApplyChangesDuringMaintenanceWindow { get; private set; } = null!; + + /// + /// ARN of the Environment. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Engine type must be `microfocus` or `bluage`. + /// + [Output("engineType")] + public Output EngineType { get; private set; } = null!; + + /// + /// The specific version of the engine for the Environment. + /// + [Output("engineVersion")] + public Output EngineVersion { get; private set; } = null!; + + /// + /// The id of the Environment. + /// + [Output("environmentId")] + public Output EnvironmentId { get; private set; } = null!; + + /// + /// Force update the environment even if applications are running. + /// + [Output("forceUpdate")] + public Output ForceUpdate { get; private set; } = null!; + + [Output("highAvailabilityConfig")] + public Output HighAvailabilityConfig { get; private set; } = null!; + + /// + /// M2 Instance Type. + /// + /// The following arguments are optional: + /// + [Output("instanceType")] + public Output InstanceType { get; private set; } = null!; + + /// + /// ARN of the KMS key to use for the Environment. + /// + [Output("kmsKeyId")] + public Output KmsKeyId { get; private set; } = null!; + + /// + /// ARN of the load balancer created by the Environment. + /// + [Output("loadBalancerArn")] + public Output LoadBalancerArn { get; private set; } = null!; + + /// + /// Name of the runtime environment. Must be unique within the account. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + /// + [Output("preferredMaintenanceWindow")] + public Output PreferredMaintenanceWindow { get; private set; } = null!; + + /// + /// Allow applications deployed to this environment to be publicly accessible. + /// + [Output("publiclyAccessible")] + public Output PubliclyAccessible { get; private set; } = null!; + + /// + /// List of security group ids. + /// + [Output("securityGroupIds")] + public Output> SecurityGroupIds { get; private set; } = null!; + + [Output("storageConfiguration")] + public Output StorageConfiguration { get; private set; } = null!; + + /// + /// List of subnet ids to deploy environment to. + /// + [Output("subnetIds")] + public Output> SubnetIds { get; private set; } = null!; + + /// + /// Key-value tags for the place index. 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!; + + + /// + /// Create a Environment 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 Environment(string name, EnvironmentArgs args, CustomResourceOptions? options = null) + : base("aws:m2/environment:Environment", name, args ?? new EnvironmentArgs(), MakeResourceOptions(options, "")) + { + } + + private Environment(string name, Input id, EnvironmentState? state = null, CustomResourceOptions? options = null) + : base("aws:m2/environment:Environment", 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 Environment 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 Environment Get(string name, Input id, EnvironmentState? state = null, CustomResourceOptions? options = null) + { + return new Environment(name, id, state, options); + } + } + + public sealed class EnvironmentArgs : global::Pulumi.ResourceArgs + { + [Input("applyChangesDuringMaintenanceWindow")] + public Input? ApplyChangesDuringMaintenanceWindow { get; set; } + + [Input("description")] + public Input? Description { get; set; } + + /// + /// Engine type must be `microfocus` or `bluage`. + /// + [Input("engineType", required: true)] + public Input EngineType { get; set; } = null!; + + /// + /// The specific version of the engine for the Environment. + /// + [Input("engineVersion")] + public Input? EngineVersion { get; set; } + + /// + /// Force update the environment even if applications are running. + /// + [Input("forceUpdate")] + public Input? ForceUpdate { get; set; } + + [Input("highAvailabilityConfig")] + public Input? HighAvailabilityConfig { get; set; } + + /// + /// M2 Instance Type. + /// + /// The following arguments are optional: + /// + [Input("instanceType", required: true)] + public Input InstanceType { get; set; } = null!; + + /// + /// ARN of the KMS key to use for the Environment. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// Name of the runtime environment. Must be unique within the account. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + /// + [Input("preferredMaintenanceWindow")] + public Input? PreferredMaintenanceWindow { get; set; } + + /// + /// Allow applications deployed to this environment to be publicly accessible. + /// + [Input("publiclyAccessible")] + public Input? PubliclyAccessible { get; set; } + + [Input("securityGroupIds")] + private InputList? _securityGroupIds; + + /// + /// List of security group ids. + /// + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("storageConfiguration")] + public Input? StorageConfiguration { get; set; } + + [Input("subnetIds")] + private InputList? _subnetIds; + + /// + /// List of subnet ids to deploy environment to. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value tags for the place index. 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; } + + public EnvironmentArgs() + { + } + public static new EnvironmentArgs Empty => new EnvironmentArgs(); + } + + public sealed class EnvironmentState : global::Pulumi.ResourceArgs + { + [Input("applyChangesDuringMaintenanceWindow")] + public Input? ApplyChangesDuringMaintenanceWindow { get; set; } + + /// + /// ARN of the Environment. + /// + [Input("arn")] + public Input? Arn { get; set; } + + [Input("description")] + public Input? Description { get; set; } + + /// + /// Engine type must be `microfocus` or `bluage`. + /// + [Input("engineType")] + public Input? EngineType { get; set; } + + /// + /// The specific version of the engine for the Environment. + /// + [Input("engineVersion")] + public Input? EngineVersion { get; set; } + + /// + /// The id of the Environment. + /// + [Input("environmentId")] + public Input? EnvironmentId { get; set; } + + /// + /// Force update the environment even if applications are running. + /// + [Input("forceUpdate")] + public Input? ForceUpdate { get; set; } + + [Input("highAvailabilityConfig")] + public Input? HighAvailabilityConfig { get; set; } + + /// + /// M2 Instance Type. + /// + /// The following arguments are optional: + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// ARN of the KMS key to use for the Environment. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// ARN of the load balancer created by the Environment. + /// + [Input("loadBalancerArn")] + public Input? LoadBalancerArn { get; set; } + + /// + /// Name of the runtime environment. Must be unique within the account. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + /// + [Input("preferredMaintenanceWindow")] + public Input? PreferredMaintenanceWindow { get; set; } + + /// + /// Allow applications deployed to this environment to be publicly accessible. + /// + [Input("publiclyAccessible")] + public Input? PubliclyAccessible { get; set; } + + [Input("securityGroupIds")] + private InputList? _securityGroupIds; + + /// + /// List of security group ids. + /// + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("storageConfiguration")] + public Input? StorageConfiguration { get; set; } + + [Input("subnetIds")] + private InputList? _subnetIds; + + /// + /// List of subnet ids to deploy environment to. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value tags for the place index. 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; } + + public EnvironmentState() + { + } + public static new EnvironmentState Empty => new EnvironmentState(); + } +} diff --git a/sdk/dotnet/M2/Inputs/ApplicationDefinitionArgs.cs b/sdk/dotnet/M2/Inputs/ApplicationDefinitionArgs.cs new file mode 100644 index 00000000000..d30eb58eadc --- /dev/null +++ b/sdk/dotnet/M2/Inputs/ApplicationDefinitionArgs.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.M2.Inputs +{ + + public sealed class ApplicationDefinitionArgs : global::Pulumi.ResourceArgs + { + /// + /// JSON application definition. Either this or `s3_location` must be specified. + /// + [Input("content")] + public Input? Content { get; set; } + + /// + /// Location of the application definition in S3. Either this or `content` must be specified. + /// + [Input("s3Location")] + public Input? S3Location { get; set; } + + public ApplicationDefinitionArgs() + { + } + public static new ApplicationDefinitionArgs Empty => new ApplicationDefinitionArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/ApplicationDefinitionGetArgs.cs b/sdk/dotnet/M2/Inputs/ApplicationDefinitionGetArgs.cs new file mode 100644 index 00000000000..0a53da5659b --- /dev/null +++ b/sdk/dotnet/M2/Inputs/ApplicationDefinitionGetArgs.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.M2.Inputs +{ + + public sealed class ApplicationDefinitionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// JSON application definition. Either this or `s3_location` must be specified. + /// + [Input("content")] + public Input? Content { get; set; } + + /// + /// Location of the application definition in S3. Either this or `content` must be specified. + /// + [Input("s3Location")] + public Input? S3Location { get; set; } + + public ApplicationDefinitionGetArgs() + { + } + public static new ApplicationDefinitionGetArgs Empty => new ApplicationDefinitionGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/ApplicationTimeoutsArgs.cs b/sdk/dotnet/M2/Inputs/ApplicationTimeoutsArgs.cs new file mode 100644 index 00000000000..8fabca20219 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/ApplicationTimeoutsArgs.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.M2.Inputs +{ + + public sealed class ApplicationTimeoutsArgs : 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 ApplicationTimeoutsArgs() + { + } + public static new ApplicationTimeoutsArgs Empty => new ApplicationTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/ApplicationTimeoutsGetArgs.cs b/sdk/dotnet/M2/Inputs/ApplicationTimeoutsGetArgs.cs new file mode 100644 index 00000000000..1f5ec5cc51b --- /dev/null +++ b/sdk/dotnet/M2/Inputs/ApplicationTimeoutsGetArgs.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.M2.Inputs +{ + + public sealed class ApplicationTimeoutsGetArgs : 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 ApplicationTimeoutsGetArgs() + { + } + public static new ApplicationTimeoutsGetArgs Empty => new ApplicationTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/DeploymentTimeoutsArgs.cs b/sdk/dotnet/M2/Inputs/DeploymentTimeoutsArgs.cs new file mode 100644 index 00000000000..d600716c770 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/DeploymentTimeoutsArgs.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.M2.Inputs +{ + + public sealed class DeploymentTimeoutsArgs : 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 DeploymentTimeoutsArgs() + { + } + public static new DeploymentTimeoutsArgs Empty => new DeploymentTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/DeploymentTimeoutsGetArgs.cs b/sdk/dotnet/M2/Inputs/DeploymentTimeoutsGetArgs.cs new file mode 100644 index 00000000000..a839adf54db --- /dev/null +++ b/sdk/dotnet/M2/Inputs/DeploymentTimeoutsGetArgs.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.M2.Inputs +{ + + public sealed class DeploymentTimeoutsGetArgs : 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 DeploymentTimeoutsGetArgs() + { + } + public static new DeploymentTimeoutsGetArgs Empty => new DeploymentTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigArgs.cs new file mode 100644 index 00000000000..b847f54b1d3 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigArgs.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.M2.Inputs +{ + + public sealed class EnvironmentHighAvailabilityConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Desired number of instances for the Environment. + /// + [Input("desiredCapacity", required: true)] + public Input DesiredCapacity { get; set; } = null!; + + public EnvironmentHighAvailabilityConfigArgs() + { + } + public static new EnvironmentHighAvailabilityConfigArgs Empty => new EnvironmentHighAvailabilityConfigArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigGetArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigGetArgs.cs new file mode 100644 index 00000000000..907006def5a --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentHighAvailabilityConfigGetArgs.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.M2.Inputs +{ + + public sealed class EnvironmentHighAvailabilityConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Desired number of instances for the Environment. + /// + [Input("desiredCapacity", required: true)] + public Input DesiredCapacity { get; set; } = null!; + + public EnvironmentHighAvailabilityConfigGetArgs() + { + } + public static new EnvironmentHighAvailabilityConfigGetArgs Empty => new EnvironmentHighAvailabilityConfigGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationArgs.cs new file mode 100644 index 00000000000..263534e970e --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("efs")] + public Input? Efs { get; set; } + + [Input("fsx")] + public Input? Fsx { get; set; } + + public EnvironmentStorageConfigurationArgs() + { + } + public static new EnvironmentStorageConfigurationArgs Empty => new EnvironmentStorageConfigurationArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsArgs.cs new file mode 100644 index 00000000000..b5c26d52330 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationEfsArgs : global::Pulumi.ResourceArgs + { + /// + /// Id of the EFS filesystem to mount. + /// + [Input("fileSystemId", required: true)] + public Input FileSystemId { get; set; } = null!; + + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + [Input("mountPoint", required: true)] + public Input MountPoint { get; set; } = null!; + + public EnvironmentStorageConfigurationEfsArgs() + { + } + public static new EnvironmentStorageConfigurationEfsArgs Empty => new EnvironmentStorageConfigurationEfsArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsGetArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsGetArgs.cs new file mode 100644 index 00000000000..44f41d9fb7c --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationEfsGetArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationEfsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Id of the EFS filesystem to mount. + /// + [Input("fileSystemId", required: true)] + public Input FileSystemId { get; set; } = null!; + + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + [Input("mountPoint", required: true)] + public Input MountPoint { get; set; } = null!; + + public EnvironmentStorageConfigurationEfsGetArgs() + { + } + public static new EnvironmentStorageConfigurationEfsGetArgs Empty => new EnvironmentStorageConfigurationEfsGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxArgs.cs new file mode 100644 index 00000000000..f7a4df3fe57 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationFsxArgs : global::Pulumi.ResourceArgs + { + /// + /// Id of the FSX filesystem to mount. + /// + [Input("fileSystemId", required: true)] + public Input FileSystemId { get; set; } = null!; + + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + [Input("mountPoint", required: true)] + public Input MountPoint { get; set; } = null!; + + public EnvironmentStorageConfigurationFsxArgs() + { + } + public static new EnvironmentStorageConfigurationFsxArgs Empty => new EnvironmentStorageConfigurationFsxArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxGetArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxGetArgs.cs new file mode 100644 index 00000000000..bed7a1fed32 --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationFsxGetArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationFsxGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Id of the FSX filesystem to mount. + /// + [Input("fileSystemId", required: true)] + public Input FileSystemId { get; set; } = null!; + + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + [Input("mountPoint", required: true)] + public Input MountPoint { get; set; } = null!; + + public EnvironmentStorageConfigurationFsxGetArgs() + { + } + public static new EnvironmentStorageConfigurationFsxGetArgs Empty => new EnvironmentStorageConfigurationFsxGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationGetArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationGetArgs.cs new file mode 100644 index 00000000000..1e37e5d0e8d --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentStorageConfigurationGetArgs.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.M2.Inputs +{ + + public sealed class EnvironmentStorageConfigurationGetArgs : global::Pulumi.ResourceArgs + { + [Input("efs")] + public Input? Efs { get; set; } + + [Input("fsx")] + public Input? Fsx { get; set; } + + public EnvironmentStorageConfigurationGetArgs() + { + } + public static new EnvironmentStorageConfigurationGetArgs Empty => new EnvironmentStorageConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsArgs.cs new file mode 100644 index 00000000000..8c427824bbd --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsArgs.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.M2.Inputs +{ + + public sealed class EnvironmentTimeoutsArgs : 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 EnvironmentTimeoutsArgs() + { + } + public static new EnvironmentTimeoutsArgs Empty => new EnvironmentTimeoutsArgs(); + } +} diff --git a/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsGetArgs.cs b/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsGetArgs.cs new file mode 100644 index 00000000000..c0b61e023ee --- /dev/null +++ b/sdk/dotnet/M2/Inputs/EnvironmentTimeoutsGetArgs.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.M2.Inputs +{ + + public sealed class EnvironmentTimeoutsGetArgs : 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 EnvironmentTimeoutsGetArgs() + { + } + public static new EnvironmentTimeoutsGetArgs Empty => new EnvironmentTimeoutsGetArgs(); + } +} diff --git a/sdk/dotnet/M2/Outputs/ApplicationDefinition.cs b/sdk/dotnet/M2/Outputs/ApplicationDefinition.cs new file mode 100644 index 00000000000..dac68a4e3e1 --- /dev/null +++ b/sdk/dotnet/M2/Outputs/ApplicationDefinition.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.M2.Outputs +{ + + [OutputType] + public sealed class ApplicationDefinition + { + /// + /// JSON application definition. Either this or `s3_location` must be specified. + /// + public readonly string? Content; + /// + /// Location of the application definition in S3. Either this or `content` must be specified. + /// + public readonly string? S3Location; + + [OutputConstructor] + private ApplicationDefinition( + string? content, + + string? s3Location) + { + Content = content; + S3Location = s3Location; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/ApplicationTimeouts.cs b/sdk/dotnet/M2/Outputs/ApplicationTimeouts.cs new file mode 100644 index 00000000000..9d037cee5eb --- /dev/null +++ b/sdk/dotnet/M2/Outputs/ApplicationTimeouts.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.M2.Outputs +{ + + [OutputType] + public sealed class ApplicationTimeouts + { + /// + /// 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 ApplicationTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/DeploymentTimeouts.cs b/sdk/dotnet/M2/Outputs/DeploymentTimeouts.cs new file mode 100644 index 00000000000..1a345249e27 --- /dev/null +++ b/sdk/dotnet/M2/Outputs/DeploymentTimeouts.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.M2.Outputs +{ + + [OutputType] + public sealed class DeploymentTimeouts + { + /// + /// 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 DeploymentTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/EnvironmentHighAvailabilityConfig.cs b/sdk/dotnet/M2/Outputs/EnvironmentHighAvailabilityConfig.cs new file mode 100644 index 00000000000..0fd4b83cc40 --- /dev/null +++ b/sdk/dotnet/M2/Outputs/EnvironmentHighAvailabilityConfig.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.M2.Outputs +{ + + [OutputType] + public sealed class EnvironmentHighAvailabilityConfig + { + /// + /// Desired number of instances for the Environment. + /// + public readonly int DesiredCapacity; + + [OutputConstructor] + private EnvironmentHighAvailabilityConfig(int desiredCapacity) + { + DesiredCapacity = desiredCapacity; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/EnvironmentStorageConfiguration.cs b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfiguration.cs new file mode 100644 index 00000000000..968d160305a --- /dev/null +++ b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfiguration.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.M2.Outputs +{ + + [OutputType] + public sealed class EnvironmentStorageConfiguration + { + public readonly Outputs.EnvironmentStorageConfigurationEfs? Efs; + public readonly Outputs.EnvironmentStorageConfigurationFsx? Fsx; + + [OutputConstructor] + private EnvironmentStorageConfiguration( + Outputs.EnvironmentStorageConfigurationEfs? efs, + + Outputs.EnvironmentStorageConfigurationFsx? fsx) + { + Efs = efs; + Fsx = fsx; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationEfs.cs b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationEfs.cs new file mode 100644 index 00000000000..7b11804ac6f --- /dev/null +++ b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationEfs.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.M2.Outputs +{ + + [OutputType] + public sealed class EnvironmentStorageConfigurationEfs + { + /// + /// Id of the EFS filesystem to mount. + /// + public readonly string FileSystemId; + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + public readonly string MountPoint; + + [OutputConstructor] + private EnvironmentStorageConfigurationEfs( + string fileSystemId, + + string mountPoint) + { + FileSystemId = fileSystemId; + MountPoint = mountPoint; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationFsx.cs b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationFsx.cs new file mode 100644 index 00000000000..831b4edb331 --- /dev/null +++ b/sdk/dotnet/M2/Outputs/EnvironmentStorageConfigurationFsx.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.M2.Outputs +{ + + [OutputType] + public sealed class EnvironmentStorageConfigurationFsx + { + /// + /// Id of the FSX filesystem to mount. + /// + public readonly string FileSystemId; + /// + /// Path to mount the filesystem on, must start with `/m2/mount/`. + /// + public readonly string MountPoint; + + [OutputConstructor] + private EnvironmentStorageConfigurationFsx( + string fileSystemId, + + string mountPoint) + { + FileSystemId = fileSystemId; + MountPoint = mountPoint; + } + } +} diff --git a/sdk/dotnet/M2/Outputs/EnvironmentTimeouts.cs b/sdk/dotnet/M2/Outputs/EnvironmentTimeouts.cs new file mode 100644 index 00000000000..d3157ed3dc8 --- /dev/null +++ b/sdk/dotnet/M2/Outputs/EnvironmentTimeouts.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.M2.Outputs +{ + + [OutputType] + public sealed class EnvironmentTimeouts + { + /// + /// 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 EnvironmentTimeouts( + string? create, + + string? delete, + + string? update) + { + Create = create; + Delete = delete; + Update = update; + } + } +} diff --git a/sdk/dotnet/M2/README.md b/sdk/dotnet/M2/README.md new file mode 100644 index 00000000000..9d868f18f20 --- /dev/null +++ b/sdk/dotnet/M2/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources. diff --git a/sdk/dotnet/MediaStore/ContainerPolicy.cs b/sdk/dotnet/MediaStore/ContainerPolicy.cs index b0ed7f5a4b7..457f6cbd8c7 100644 --- a/sdk/dotnet/MediaStore/ContainerPolicy.cs +++ b/sdk/dotnet/MediaStore/ContainerPolicy.cs @@ -10,8 +10,6 @@ namespace Pulumi.Aws.MediaStore { /// - /// Provides a MediaStore Container Policy. - /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/dotnet/Rds/GetSnapshot.cs b/sdk/dotnet/Rds/GetSnapshot.cs index 0c8b393e94b..aff51d5c9d5 100644 --- a/sdk/dotnet/Rds/GetSnapshot.cs +++ b/sdk/dotnet/Rds/GetSnapshot.cs @@ -294,9 +294,13 @@ public sealed class GetSnapshotResult /// Provides the option group name for the DB snapshot. /// public readonly string OptionGroupName; + /// + /// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + /// + public readonly string OriginalSnapshotCreateTime; public readonly int Port; /// - /// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + /// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. /// public readonly string SnapshotCreateTime; public readonly string? SnapshotType; @@ -356,6 +360,8 @@ private GetSnapshotResult( string optionGroupName, + string originalSnapshotCreateTime, + int port, string snapshotCreateTime, @@ -390,6 +396,7 @@ private GetSnapshotResult( LicenseModel = licenseModel; MostRecent = mostRecent; OptionGroupName = optionGroupName; + OriginalSnapshotCreateTime = originalSnapshotCreateTime; Port = port; SnapshotCreateTime = snapshotCreateTime; SnapshotType = snapshotType; diff --git a/sdk/dotnet/RedshiftServerless/CustomDomainAssociation.cs b/sdk/dotnet/RedshiftServerless/CustomDomainAssociation.cs new file mode 100644 index 00000000000..113ff075c35 --- /dev/null +++ b/sdk/dotnet/RedshiftServerless/CustomDomainAssociation.cs @@ -0,0 +1,189 @@ +// *** 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.RedshiftServerless +{ + /// + /// Resource for managing an AWS Redshift Serverless Custom Domain Association. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.Acm.Certificate("example", new() + /// { + /// DomainName = "example.com", + /// }); + /// + /// var exampleNamespace = new Aws.RedshiftServerless.Namespace("example", new() + /// { + /// NamespaceName = "example-namespace", + /// }); + /// + /// var exampleWorkgroup = new Aws.RedshiftServerless.Workgroup("example", new() + /// { + /// WorkgroupName = "example-workgroup", + /// NamespaceName = exampleNamespace.NamespaceName, + /// }); + /// + /// var exampleCustomDomainAssociation = new Aws.RedshiftServerless.CustomDomainAssociation("example", new() + /// { + /// WorkgroupName = exampleWorkgroup.WorkgroupName, + /// CustomDomainName = "example.com", + /// CustomDomainCertificateArn = example.Arn, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: + /// + /// ```sh + /// $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com + /// ``` + /// + [AwsResourceType("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation")] + public partial class CustomDomainAssociation : global::Pulumi.CustomResource + { + /// + /// ARN of the certificate for the custom domain association. + /// + [Output("customDomainCertificateArn")] + public Output CustomDomainCertificateArn { get; private set; } = null!; + + /// + /// Expiration time for the certificate. + /// + [Output("customDomainCertificateExpiryTime")] + public Output CustomDomainCertificateExpiryTime { get; private set; } = null!; + + /// + /// Custom domain to associate with the workgroup. + /// + [Output("customDomainName")] + public Output CustomDomainName { get; private set; } = null!; + + /// + /// Name of the workgroup. + /// + [Output("workgroupName")] + public Output WorkgroupName { get; private set; } = null!; + + + /// + /// Create a CustomDomainAssociation 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 CustomDomainAssociation(string name, CustomDomainAssociationArgs args, CustomResourceOptions? options = null) + : base("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", name, args ?? new CustomDomainAssociationArgs(), MakeResourceOptions(options, "")) + { + } + + private CustomDomainAssociation(string name, Input id, CustomDomainAssociationState? state = null, CustomResourceOptions? options = null) + : base("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", 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 CustomDomainAssociation 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 CustomDomainAssociation Get(string name, Input id, CustomDomainAssociationState? state = null, CustomResourceOptions? options = null) + { + return new CustomDomainAssociation(name, id, state, options); + } + } + + public sealed class CustomDomainAssociationArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of the certificate for the custom domain association. + /// + [Input("customDomainCertificateArn", required: true)] + public Input CustomDomainCertificateArn { get; set; } = null!; + + /// + /// Custom domain to associate with the workgroup. + /// + [Input("customDomainName", required: true)] + public Input CustomDomainName { get; set; } = null!; + + /// + /// Name of the workgroup. + /// + [Input("workgroupName", required: true)] + public Input WorkgroupName { get; set; } = null!; + + public CustomDomainAssociationArgs() + { + } + public static new CustomDomainAssociationArgs Empty => new CustomDomainAssociationArgs(); + } + + public sealed class CustomDomainAssociationState : global::Pulumi.ResourceArgs + { + /// + /// ARN of the certificate for the custom domain association. + /// + [Input("customDomainCertificateArn")] + public Input? CustomDomainCertificateArn { get; set; } + + /// + /// Expiration time for the certificate. + /// + [Input("customDomainCertificateExpiryTime")] + public Input? CustomDomainCertificateExpiryTime { get; set; } + + /// + /// Custom domain to associate with the workgroup. + /// + [Input("customDomainName")] + public Input? CustomDomainName { get; set; } + + /// + /// Name of the workgroup. + /// + [Input("workgroupName")] + public Input? WorkgroupName { get; set; } + + public CustomDomainAssociationState() + { + } + public static new CustomDomainAssociationState Empty => new CustomDomainAssociationState(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResource.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResource.cs new file mode 100644 index 00000000000..1f5c5e70322 --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResource.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceArgs : global::Pulumi.InvokeArgs + { + /// + /// Amazon resource name of resource. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + /// + /// The date and time that the information about this resource property was last updated. + /// + [Input("lastReportedAt", required: true)] + public string LastReportedAt { get; set; } = null!; + + /// + /// Amazon Web Services account that owns the resource. + /// + [Input("owningAccountId", required: true)] + public string OwningAccountId { get; set; } = null!; + + /// + /// Amazon Web Services Region in which the resource was created and exists. + /// + [Input("region", required: true)] + public string Region { get; set; } = null!; + + [Input("resourceProperties")] + private List? _resourceProperties; + + /// + /// Structure with additional type-specific details about the resource. See `resource_property` below. + /// + public List ResourceProperties + { + get => _resourceProperties ?? (_resourceProperties = new List()); + set => _resourceProperties = value; + } + + /// + /// Type of the resource. + /// + [Input("resourceType", required: true)] + public string ResourceType { get; set; } = null!; + + /// + /// Amazon Web Service that owns the resource and is responsible for creating and updating it. + /// + [Input("service", required: true)] + public string Service { get; set; } = null!; + + public SearchResourceArgs() + { + } + public static new SearchResourceArgs Empty => new SearchResourceArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceArgs.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceArgs.cs new file mode 100644 index 00000000000..8ce57d86efa --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceArgs.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Amazon resource name of resource. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + /// + /// The date and time that the information about this resource property was last updated. + /// + [Input("lastReportedAt", required: true)] + public Input LastReportedAt { get; set; } = null!; + + /// + /// Amazon Web Services account that owns the resource. + /// + [Input("owningAccountId", required: true)] + public Input OwningAccountId { get; set; } = null!; + + /// + /// Amazon Web Services Region in which the resource was created and exists. + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + [Input("resourceProperties")] + private InputList? _resourceProperties; + + /// + /// Structure with additional type-specific details about the resource. See `resource_property` below. + /// + public InputList ResourceProperties + { + get => _resourceProperties ?? (_resourceProperties = new InputList()); + set => _resourceProperties = value; + } + + /// + /// Type of the resource. + /// + [Input("resourceType", required: true)] + public Input ResourceType { get; set; } = null!; + + /// + /// Amazon Web Service that owns the resource and is responsible for creating and updating it. + /// + [Input("service", required: true)] + public Input Service { get; set; } = null!; + + public SearchResourceInputArgs() + { + } + public static new SearchResourceInputArgs Empty => new SearchResourceInputArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCount.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCount.cs new file mode 100644 index 00000000000..8a9425e907e --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCount.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceCountArgs : global::Pulumi.InvokeArgs + { + [Input("completed", required: true)] + public bool Completed { get; set; } + + /// + /// Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + /// + [Input("totalResources", required: true)] + public int TotalResources { get; set; } + + public SearchResourceCountArgs() + { + } + public static new SearchResourceCountArgs Empty => new SearchResourceCountArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCountArgs.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCountArgs.cs new file mode 100644 index 00000000000..c026c67a5c2 --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceCountArgs.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceCountInputArgs : global::Pulumi.ResourceArgs + { + [Input("completed", required: true)] + public Input Completed { get; set; } = null!; + + /// + /// Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + /// + [Input("totalResources", required: true)] + public Input TotalResources { get; set; } = null!; + + public SearchResourceCountInputArgs() + { + } + public static new SearchResourceCountInputArgs Empty => new SearchResourceCountInputArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourceProperty.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourceProperty.cs new file mode 100644 index 00000000000..9b16aeea0fb --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourceProperty.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceResourcePropertyArgs : global::Pulumi.InvokeArgs + { + /// + /// Details about this property. The content of this field is a JSON object that varies based on the resource type. + /// + [Input("data", required: true)] + public string Data { get; set; } = null!; + + /// + /// The date and time that the information about this resource property was last updated. + /// + [Input("lastReportedAt", required: true)] + public string LastReportedAt { get; set; } = null!; + + /// + /// Name of this property of the resource. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public SearchResourceResourcePropertyArgs() + { + } + public static new SearchResourceResourcePropertyArgs Empty => new SearchResourceResourcePropertyArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourcePropertyArgs.cs b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourcePropertyArgs.cs new file mode 100644 index 00000000000..c5cf0367fca --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Inputs/SearchResourceResourcePropertyArgs.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.ResourceExplorer.Inputs +{ + + public sealed class SearchResourceResourcePropertyInputArgs : global::Pulumi.ResourceArgs + { + /// + /// Details about this property. The content of this field is a JSON object that varies based on the resource type. + /// + [Input("data", required: true)] + public Input Data { get; set; } = null!; + + /// + /// The date and time that the information about this resource property was last updated. + /// + [Input("lastReportedAt", required: true)] + public Input LastReportedAt { get; set; } = null!; + + /// + /// Name of this property of the resource. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public SearchResourceResourcePropertyInputArgs() + { + } + public static new SearchResourceResourcePropertyInputArgs Empty => new SearchResourceResourcePropertyInputArgs(); + } +} diff --git a/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceCountResult.cs b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceCountResult.cs new file mode 100644 index 00000000000..96a5cfb6172 --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceCountResult.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.ResourceExplorer.Outputs +{ + + [OutputType] + public sealed class SearchResourceCountResult + { + public readonly bool Completed; + /// + /// Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + /// + public readonly int TotalResources; + + [OutputConstructor] + private SearchResourceCountResult( + bool completed, + + int totalResources) + { + Completed = completed; + TotalResources = totalResources; + } + } +} diff --git a/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResourcePropertyResult.cs b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResourcePropertyResult.cs new file mode 100644 index 00000000000..fa7c0a67db8 --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResourcePropertyResult.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.ResourceExplorer.Outputs +{ + + [OutputType] + public sealed class SearchResourceResourcePropertyResult + { + /// + /// Details about this property. The content of this field is a JSON object that varies based on the resource type. + /// + public readonly string Data; + /// + /// The date and time that the information about this resource property was last updated. + /// + public readonly string LastReportedAt; + /// + /// Name of this property of the resource. + /// + public readonly string Name; + + [OutputConstructor] + private SearchResourceResourcePropertyResult( + string data, + + string lastReportedAt, + + string name) + { + Data = data; + LastReportedAt = lastReportedAt; + Name = name; + } + } +} diff --git a/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResult.cs b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResult.cs new file mode 100644 index 00000000000..ad1df0343ff --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Outputs/SearchResourceResult.cs @@ -0,0 +1,70 @@ +// *** 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.ResourceExplorer.Outputs +{ + + [OutputType] + public sealed class SearchResourceResult + { + /// + /// Amazon resource name of resource. + /// + public readonly string Arn; + /// + /// The date and time that the information about this resource property was last updated. + /// + public readonly string LastReportedAt; + /// + /// Amazon Web Services account that owns the resource. + /// + public readonly string OwningAccountId; + /// + /// Amazon Web Services Region in which the resource was created and exists. + /// + public readonly string Region; + /// + /// Structure with additional type-specific details about the resource. See `resource_property` below. + /// + public readonly ImmutableArray ResourceProperties; + /// + /// Type of the resource. + /// + public readonly string ResourceType; + /// + /// Amazon Web Service that owns the resource and is responsible for creating and updating it. + /// + public readonly string Service; + + [OutputConstructor] + private SearchResourceResult( + string arn, + + string lastReportedAt, + + string owningAccountId, + + string region, + + ImmutableArray resourceProperties, + + string resourceType, + + string service) + { + Arn = arn; + LastReportedAt = lastReportedAt; + OwningAccountId = owningAccountId; + Region = region; + ResourceProperties = resourceProperties; + ResourceType = resourceType; + Service = service; + } + } +} diff --git a/sdk/dotnet/ResourceExplorer/Search.cs b/sdk/dotnet/ResourceExplorer/Search.cs new file mode 100644 index 00000000000..23f7a475cd8 --- /dev/null +++ b/sdk/dotnet/ResourceExplorer/Search.cs @@ -0,0 +1,204 @@ +// *** 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.ResourceExplorer +{ + public static class Search + { + /// + /// Data source for managing an AWS Resource Explorer Search. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ResourceExplorer.Search.Invoke(new() + /// { + /// QueryString = "region:us-west-2", + /// ViewArn = test.Arn, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Task InvokeAsync(SearchArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:resourceexplorer/search:Search", args ?? new SearchArgs(), options.WithDefaults()); + + /// + /// Data source for managing an AWS Resource Explorer Search. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ResourceExplorer.Search.Invoke(new() + /// { + /// QueryString = "region:us-west-2", + /// ViewArn = test.Arn, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Output Invoke(SearchInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:resourceexplorer/search:Search", args ?? new SearchInvokeArgs(), options.WithDefaults()); + } + + + public sealed class SearchArgs : global::Pulumi.InvokeArgs + { + /// + /// String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + /// + /// The following arguments are optional: + /// + [Input("queryString", required: true)] + public string QueryString { get; set; } = null!; + + [Input("resourceCounts")] + private List? _resourceCounts; + + /// + /// Number of resources that match the query. See `resource_count` below. + /// + public List ResourceCounts + { + get => _resourceCounts ?? (_resourceCounts = new List()); + set => _resourceCounts = value; + } + + [Input("resources")] + private List? _resources; + + /// + /// List of structures that describe the resources that match the query. See `resources` below. + /// + public List Resources + { + get => _resources ?? (_resources = new List()); + set => _resources = value; + } + + /// + /// Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + /// + [Input("viewArn")] + public string? ViewArn { get; set; } + + public SearchArgs() + { + } + public static new SearchArgs Empty => new SearchArgs(); + } + + public sealed class SearchInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + /// + /// The following arguments are optional: + /// + [Input("queryString", required: true)] + public Input QueryString { get; set; } = null!; + + [Input("resourceCounts")] + private InputList? _resourceCounts; + + /// + /// Number of resources that match the query. See `resource_count` below. + /// + public InputList ResourceCounts + { + get => _resourceCounts ?? (_resourceCounts = new InputList()); + set => _resourceCounts = value; + } + + [Input("resources")] + private InputList? _resources; + + /// + /// List of structures that describe the resources that match the query. See `resources` below. + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + /// + /// Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + /// + [Input("viewArn")] + public Input? ViewArn { get; set; } + + public SearchInvokeArgs() + { + } + public static new SearchInvokeArgs Empty => new SearchInvokeArgs(); + } + + + [OutputType] + public sealed class SearchResult + { + /// + /// Query String. + /// + public readonly string Id; + public readonly string QueryString; + /// + /// Number of resources that match the query. See `resource_count` below. + /// + public readonly ImmutableArray ResourceCounts; + /// + /// List of structures that describe the resources that match the query. See `resources` below. + /// + public readonly ImmutableArray Resources; + public readonly string? ViewArn; + + [OutputConstructor] + private SearchResult( + string id, + + string queryString, + + ImmutableArray resourceCounts, + + ImmutableArray resources, + + string? viewArn) + { + Id = id; + QueryString = queryString; + ResourceCounts = resourceCounts; + Resources = resources; + ViewArn = viewArn; + } + } +} diff --git a/sdk/dotnet/SecretsManager/SecretVersion.cs b/sdk/dotnet/SecretsManager/SecretVersion.cs index ce10738df79..dedb3116cc3 100644 --- a/sdk/dotnet/SecretsManager/SecretVersion.cs +++ b/sdk/dotnet/SecretsManager/SecretVersion.cs @@ -87,7 +87,7 @@ public partial class SecretVersion : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. /// [Output("secretBinary")] public Output SecretBinary { get; private set; } = null!; @@ -99,7 +99,7 @@ public partial class SecretVersion : global::Pulumi.CustomResource public Output SecretId { get; private set; } = null!; /// - /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. /// [Output("secretString")] public Output SecretString { get; private set; } = null!; @@ -173,7 +173,7 @@ public sealed class SecretVersionArgs : global::Pulumi.ResourceArgs private Input? _secretBinary; /// - /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. /// public Input? SecretBinary { @@ -195,7 +195,7 @@ public Input? SecretBinary private Input? _secretString; /// - /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. /// public Input? SecretString { @@ -239,7 +239,7 @@ public sealed class SecretVersionState : global::Pulumi.ResourceArgs private Input? _secretBinary; /// - /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + /// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. /// public Input? SecretBinary { @@ -261,7 +261,7 @@ public Input? SecretBinary private Input? _secretString; /// - /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + /// Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. /// public Input? SecretString { diff --git a/sdk/dotnet/ServiceCatalog/AppregistryApplication.cs b/sdk/dotnet/ServiceCatalog/AppregistryApplication.cs new file mode 100644 index 00000000000..93d5a8baf90 --- /dev/null +++ b/sdk/dotnet/ServiceCatalog/AppregistryApplication.cs @@ -0,0 +1,192 @@ +// *** 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.ServiceCatalog +{ + /// + /// Resource for managing an AWS Service Catalog AppRegistry Application. + /// + /// > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.ServiceCatalog.AppregistryApplication("example", new() + /// { + /// Name = "example-app", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ### Connecting Resources + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Aws.ServiceCatalog.AppregistryApplication("example", new() + /// { + /// Name = "example-app", + /// }); + /// + /// var bucket = new Aws.S3.BucketV2("bucket", new() + /// { + /// Bucket = "example-bucket", + /// Tags = + /// { + /// { "awsApplication", example.Arn }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: + /// + /// ```sh + /// $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 + /// ``` + /// + [AwsResourceType("aws:servicecatalog/appregistryApplication:AppregistryApplication")] + public partial class AppregistryApplication : global::Pulumi.CustomResource + { + /// + /// ARN (Amazon Resource Name) of the application. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Description of the application. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Name of the application. The name must be unique within an AWS region. + /// + /// The following arguments are optional: + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + + /// + /// Create a AppregistryApplication 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 AppregistryApplication(string name, AppregistryApplicationArgs? args = null, CustomResourceOptions? options = null) + : base("aws:servicecatalog/appregistryApplication:AppregistryApplication", name, args ?? new AppregistryApplicationArgs(), MakeResourceOptions(options, "")) + { + } + + private AppregistryApplication(string name, Input id, AppregistryApplicationState? state = null, CustomResourceOptions? options = null) + : base("aws:servicecatalog/appregistryApplication:AppregistryApplication", 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 AppregistryApplication 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 AppregistryApplication Get(string name, Input id, AppregistryApplicationState? state = null, CustomResourceOptions? options = null) + { + return new AppregistryApplication(name, id, state, options); + } + } + + public sealed class AppregistryApplicationArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the application. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the application. The name must be unique within an AWS region. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + public AppregistryApplicationArgs() + { + } + public static new AppregistryApplicationArgs Empty => new AppregistryApplicationArgs(); + } + + public sealed class AppregistryApplicationState : global::Pulumi.ResourceArgs + { + /// + /// ARN (Amazon Resource Name) of the application. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Description of the application. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Name of the application. The name must be unique within an AWS region. + /// + /// The following arguments are optional: + /// + [Input("name")] + public Input? Name { get; set; } + + public AppregistryApplicationState() + { + } + public static new AppregistryApplicationState Empty => new AppregistryApplicationState(); + } +} diff --git a/sdk/dotnet/ServiceCatalog/GetAppregistryApplication.cs b/sdk/dotnet/ServiceCatalog/GetAppregistryApplication.cs new file mode 100644 index 00000000000..dfc45c366bb --- /dev/null +++ b/sdk/dotnet/ServiceCatalog/GetAppregistryApplication.cs @@ -0,0 +1,134 @@ +// *** 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.ServiceCatalog +{ + public static class GetAppregistryApplication + { + /// + /// Data source for managing an AWS Service Catalog AppRegistry Application. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ServiceCatalog.GetAppregistryApplication.Invoke(new() + /// { + /// Id = "application-1234", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Task InvokeAsync(GetAppregistryApplicationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", args ?? new GetAppregistryApplicationArgs(), options.WithDefaults()); + + /// + /// Data source for managing an AWS Service Catalog AppRegistry Application. + /// + /// ## Example Usage + /// + /// ### Basic Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Aws.ServiceCatalog.GetAppregistryApplication.Invoke(new() + /// { + /// Id = "application-1234", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Output Invoke(GetAppregistryApplicationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", args ?? new GetAppregistryApplicationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAppregistryApplicationArgs : global::Pulumi.InvokeArgs + { + /// + /// Application identifier. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + public GetAppregistryApplicationArgs() + { + } + public static new GetAppregistryApplicationArgs Empty => new GetAppregistryApplicationArgs(); + } + + public sealed class GetAppregistryApplicationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Application identifier. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GetAppregistryApplicationInvokeArgs() + { + } + public static new GetAppregistryApplicationInvokeArgs Empty => new GetAppregistryApplicationInvokeArgs(); + } + + + [OutputType] + public sealed class GetAppregistryApplicationResult + { + /// + /// ARN (Amazon Resource Name) of the application. + /// + public readonly string Arn; + /// + /// Description of the application. + /// + public readonly string Description; + public readonly string Id; + /// + /// Name of the application. + /// + public readonly string Name; + + [OutputConstructor] + private GetAppregistryApplicationResult( + string arn, + + string description, + + string id, + + string name) + { + Arn = arn; + Description = description; + Id = id; + Name = name; + } + } +} diff --git a/sdk/dotnet/SsoAdmin/PermissionSetInlinePolicy.cs b/sdk/dotnet/SsoAdmin/PermissionSetInlinePolicy.cs index 24ffd9418ab..809ed783b53 100644 --- a/sdk/dotnet/SsoAdmin/PermissionSetInlinePolicy.cs +++ b/sdk/dotnet/SsoAdmin/PermissionSetInlinePolicy.cs @@ -10,10 +10,7 @@ namespace Pulumi.Aws.SsoAdmin { /// - /// Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource - /// - /// > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `aws.ssoadmin.PermissionSet` resource. - /// Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. + /// ## Example Usage /// /// ## Import /// diff --git a/sdk/dotnet/Transfer/Access.cs b/sdk/dotnet/Transfer/Access.cs index f7b8117e66b..a54ecb6deb5 100644 --- a/sdk/dotnet/Transfer/Access.cs +++ b/sdk/dotnet/Transfer/Access.cs @@ -12,6 +12,8 @@ namespace Pulumi.Aws.Transfer /// /// Provides a AWS Transfer Access resource. /// + /// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + /// /// ## Example Usage /// /// ### Basic S3 diff --git a/sdk/dotnet/Transfer/User.cs b/sdk/dotnet/Transfer/User.cs index bda031954fd..72285bae94b 100644 --- a/sdk/dotnet/Transfer/User.cs +++ b/sdk/dotnet/Transfer/User.cs @@ -10,8 +10,6 @@ namespace Pulumi.Aws.Transfer { /// - /// Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` resource. - /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/go/aws/acmpca/certificate.go b/sdk/go/aws/acmpca/certificate.go index bd10e689731..6849ae2d1ed 100644 --- a/sdk/go/aws/acmpca/certificate.go +++ b/sdk/go/aws/acmpca/certificate.go @@ -21,6 +21,69 @@ import ( // // ## Example Usage // +// ### Basic +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acmpca" +// "github.com/pulumi/pulumi-tls/sdk/v4/go/tls" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleCertificateAuthority, err := acmpca.NewCertificateAuthority(ctx, "example", &acmpca.CertificateAuthorityArgs{ +// CertificateAuthorityConfiguration: &acmpca.CertificateAuthorityCertificateAuthorityConfigurationArgs{ +// KeyAlgorithm: pulumi.String("RSA_4096"), +// SigningAlgorithm: pulumi.String("SHA512WITHRSA"), +// Subject: &acmpca.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs{ +// CommonName: pulumi.String("example.com"), +// }, +// }, +// PermanentDeletionTimeInDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// key, err := tls.NewPrivateKey(ctx, "key", &tls.PrivateKeyArgs{ +// Algorithm: pulumi.String("RSA"), +// }) +// if err != nil { +// return err +// } +// csr, err := tls.NewCertRequest(ctx, "csr", &tls.CertRequestArgs{ +// PrivateKeyPem: key.PrivateKeyPem, +// Subject: &tls.CertRequestSubjectArgs{ +// CommonName: pulumi.String("example"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = acmpca.NewCertificate(ctx, "example", &acmpca.CertificateArgs{ +// CertificateAuthorityArn: exampleCertificateAuthority.Arn, +// CertificateSigningRequest: csr.CertRequestPem, +// SigningAlgorithm: pulumi.String("SHA256WITHRSA"), +// Validity: &acmpca.CertificateValidityArgs{ +// Type: pulumi.String("YEARS"), +// Value: pulumi.String("1"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // Using `pulumi import`, import ACM PCA Certificates using their ARN. For example: diff --git a/sdk/go/aws/apigateway/methodResponse.go b/sdk/go/aws/apigateway/methodResponse.go index 31299eb59c5..df4166b5d45 100644 --- a/sdk/go/aws/apigateway/methodResponse.go +++ b/sdk/go/aws/apigateway/methodResponse.go @@ -160,7 +160,7 @@ import ( // HttpMethod: myDemoMethod.HttpMethod, // StatusCode: pulumi.String("200"), // ResponseModels: pulumi.StringMap{ -// "application-json": pulumi.String("MyDemoResponseModel"), +// "application/json": pulumi.String("MyDemoResponseModel"), // }, // ResponseParameters: pulumi.BoolMap{ // "method.response.header.Content-Type": pulumi.Bool(false), diff --git a/sdk/go/aws/cloudfront/function.go b/sdk/go/aws/cloudfront/function.go index 1571de17e06..e890197bd41 100644 --- a/sdk/go/aws/cloudfront/function.go +++ b/sdk/go/aws/cloudfront/function.go @@ -38,6 +38,8 @@ type Function struct { Comment pulumi.StringPtrOutput `pulumi:"comment"` // ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. Etag pulumi.StringOutput `pulumi:"etag"` + // List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + KeyValueStoreAssociations pulumi.StringArrayOutput `pulumi:"keyValueStoreAssociations"` // ETag hash of any `LIVE` stage of the function. LiveStageEtag pulumi.StringOutput `pulumi:"liveStageEtag"` // Unique name for your CloudFront Function. @@ -96,6 +98,8 @@ type functionState struct { Comment *string `pulumi:"comment"` // ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. Etag *string `pulumi:"etag"` + // List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + KeyValueStoreAssociations []string `pulumi:"keyValueStoreAssociations"` // ETag hash of any `LIVE` stage of the function. LiveStageEtag *string `pulumi:"liveStageEtag"` // Unique name for your CloudFront Function. @@ -119,6 +123,8 @@ type FunctionState struct { Comment pulumi.StringPtrInput // ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. Etag pulumi.StringPtrInput + // List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + KeyValueStoreAssociations pulumi.StringArrayInput // ETag hash of any `LIVE` stage of the function. LiveStageEtag pulumi.StringPtrInput // Unique name for your CloudFront Function. @@ -142,6 +148,8 @@ type functionArgs struct { Code string `pulumi:"code"` // Comment. Comment *string `pulumi:"comment"` + // List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + KeyValueStoreAssociations []string `pulumi:"keyValueStoreAssociations"` // Unique name for your CloudFront Function. Name *string `pulumi:"name"` // Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. @@ -158,6 +166,8 @@ type FunctionArgs struct { Code pulumi.StringInput // Comment. Comment pulumi.StringPtrInput + // List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + KeyValueStoreAssociations pulumi.StringArrayInput // Unique name for your CloudFront Function. Name pulumi.StringPtrInput // Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. @@ -275,6 +285,11 @@ func (o FunctionOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *Function) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. +func (o FunctionOutput) KeyValueStoreAssociations() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Function) pulumi.StringArrayOutput { return v.KeyValueStoreAssociations }).(pulumi.StringArrayOutput) +} + // ETag hash of any `LIVE` stage of the function. func (o FunctionOutput) LiveStageEtag() pulumi.StringOutput { return o.ApplyT(func(v *Function) pulumi.StringOutput { return v.LiveStageEtag }).(pulumi.StringOutput) diff --git a/sdk/go/aws/cloudfront/getFunction.go b/sdk/go/aws/cloudfront/getFunction.go index 6890fadc793..132fac639c9 100644 --- a/sdk/go/aws/cloudfront/getFunction.go +++ b/sdk/go/aws/cloudfront/getFunction.go @@ -73,6 +73,8 @@ type LookupFunctionResult struct { Etag string `pulumi:"etag"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` + // List of `cloudfront.KeyValueStore` ARNs associated to the function. + KeyValueStoreAssociations []string `pulumi:"keyValueStoreAssociations"` // When this resource was last modified. LastModifiedTime string `pulumi:"lastModifiedTime"` Name string `pulumi:"name"` @@ -148,6 +150,11 @@ func (o LookupFunctionResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupFunctionResult) string { return v.Id }).(pulumi.StringOutput) } +// List of `cloudfront.KeyValueStore` ARNs associated to the function. +func (o LookupFunctionResultOutput) KeyValueStoreAssociations() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupFunctionResult) []string { return v.KeyValueStoreAssociations }).(pulumi.StringArrayOutput) +} + // When this resource was last modified. func (o LookupFunctionResultOutput) LastModifiedTime() pulumi.StringOutput { return o.ApplyT(func(v LookupFunctionResult) string { return v.LastModifiedTime }).(pulumi.StringOutput) diff --git a/sdk/go/aws/cloudfront/init.go b/sdk/go/aws/cloudfront/init.go index dc265cd3fbd..123c5e8d05b 100644 --- a/sdk/go/aws/cloudfront/init.go +++ b/sdk/go/aws/cloudfront/init.go @@ -37,6 +37,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &KeyGroup{} case "aws:cloudfront/keyValueStore:KeyValueStore": r = &KeyValueStore{} + case "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey": + r = &KeyvaluestoreKey{} case "aws:cloudfront/monitoringSubscription:MonitoringSubscription": r = &MonitoringSubscription{} case "aws:cloudfront/originAccessControl:OriginAccessControl": @@ -104,6 +106,11 @@ func init() { "cloudfront/keyValueStore", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "cloudfront/keyvaluestoreKey", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "cloudfront/monitoringSubscription", diff --git a/sdk/go/aws/cloudfront/keyvaluestoreKey.go b/sdk/go/aws/cloudfront/keyvaluestoreKey.go new file mode 100644 index 00000000000..8bc78db4a79 --- /dev/null +++ b/sdk/go/aws/cloudfront/keyvaluestoreKey.go @@ -0,0 +1,313 @@ +// 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 cloudfront + +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 CloudFront KeyValueStore Key. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := cloudfront.NewKeyValueStore(ctx, "example", &cloudfront.KeyValueStoreArgs{ +// Name: pulumi.String("ExampleKeyValueStore"), +// Comment: pulumi.String("This is an example key value store"), +// }) +// if err != nil { +// return err +// } +// _, err = cloudfront.NewKeyvaluestoreKey(ctx, "example", &cloudfront.KeyvaluestoreKeyArgs{ +// KeyValueStoreArn: example.Arn, +// Key: pulumi.String("Test Key"), +// Value: pulumi.String("Test Value"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: +// +// ```sh +// $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey +// ``` +type KeyvaluestoreKey struct { + pulumi.CustomResourceState + + // Key to put. + Key pulumi.StringOutput `pulumi:"key"` + // Amazon Resource Name (ARN) of the Key Value Store. + KeyValueStoreArn pulumi.StringOutput `pulumi:"keyValueStoreArn"` + // Total size of the Key Value Store in bytes. + TotalSizeInBytes pulumi.IntOutput `pulumi:"totalSizeInBytes"` + // Value to put. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewKeyvaluestoreKey registers a new resource with the given unique name, arguments, and options. +func NewKeyvaluestoreKey(ctx *pulumi.Context, + name string, args *KeyvaluestoreKeyArgs, opts ...pulumi.ResourceOption) (*KeyvaluestoreKey, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Key == nil { + return nil, errors.New("invalid value for required argument 'Key'") + } + if args.KeyValueStoreArn == nil { + return nil, errors.New("invalid value for required argument 'KeyValueStoreArn'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource KeyvaluestoreKey + err := ctx.RegisterResource("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetKeyvaluestoreKey gets an existing KeyvaluestoreKey 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 GetKeyvaluestoreKey(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *KeyvaluestoreKeyState, opts ...pulumi.ResourceOption) (*KeyvaluestoreKey, error) { + var resource KeyvaluestoreKey + err := ctx.ReadResource("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering KeyvaluestoreKey resources. +type keyvaluestoreKeyState struct { + // Key to put. + Key *string `pulumi:"key"` + // Amazon Resource Name (ARN) of the Key Value Store. + KeyValueStoreArn *string `pulumi:"keyValueStoreArn"` + // Total size of the Key Value Store in bytes. + TotalSizeInBytes *int `pulumi:"totalSizeInBytes"` + // Value to put. + Value *string `pulumi:"value"` +} + +type KeyvaluestoreKeyState struct { + // Key to put. + Key pulumi.StringPtrInput + // Amazon Resource Name (ARN) of the Key Value Store. + KeyValueStoreArn pulumi.StringPtrInput + // Total size of the Key Value Store in bytes. + TotalSizeInBytes pulumi.IntPtrInput + // Value to put. + Value pulumi.StringPtrInput +} + +func (KeyvaluestoreKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*keyvaluestoreKeyState)(nil)).Elem() +} + +type keyvaluestoreKeyArgs struct { + // Key to put. + Key string `pulumi:"key"` + // Amazon Resource Name (ARN) of the Key Value Store. + KeyValueStoreArn string `pulumi:"keyValueStoreArn"` + // Value to put. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a KeyvaluestoreKey resource. +type KeyvaluestoreKeyArgs struct { + // Key to put. + Key pulumi.StringInput + // Amazon Resource Name (ARN) of the Key Value Store. + KeyValueStoreArn pulumi.StringInput + // Value to put. + Value pulumi.StringInput +} + +func (KeyvaluestoreKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*keyvaluestoreKeyArgs)(nil)).Elem() +} + +type KeyvaluestoreKeyInput interface { + pulumi.Input + + ToKeyvaluestoreKeyOutput() KeyvaluestoreKeyOutput + ToKeyvaluestoreKeyOutputWithContext(ctx context.Context) KeyvaluestoreKeyOutput +} + +func (*KeyvaluestoreKey) ElementType() reflect.Type { + return reflect.TypeOf((**KeyvaluestoreKey)(nil)).Elem() +} + +func (i *KeyvaluestoreKey) ToKeyvaluestoreKeyOutput() KeyvaluestoreKeyOutput { + return i.ToKeyvaluestoreKeyOutputWithContext(context.Background()) +} + +func (i *KeyvaluestoreKey) ToKeyvaluestoreKeyOutputWithContext(ctx context.Context) KeyvaluestoreKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyvaluestoreKeyOutput) +} + +// KeyvaluestoreKeyArrayInput is an input type that accepts KeyvaluestoreKeyArray and KeyvaluestoreKeyArrayOutput values. +// You can construct a concrete instance of `KeyvaluestoreKeyArrayInput` via: +// +// KeyvaluestoreKeyArray{ KeyvaluestoreKeyArgs{...} } +type KeyvaluestoreKeyArrayInput interface { + pulumi.Input + + ToKeyvaluestoreKeyArrayOutput() KeyvaluestoreKeyArrayOutput + ToKeyvaluestoreKeyArrayOutputWithContext(context.Context) KeyvaluestoreKeyArrayOutput +} + +type KeyvaluestoreKeyArray []KeyvaluestoreKeyInput + +func (KeyvaluestoreKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KeyvaluestoreKey)(nil)).Elem() +} + +func (i KeyvaluestoreKeyArray) ToKeyvaluestoreKeyArrayOutput() KeyvaluestoreKeyArrayOutput { + return i.ToKeyvaluestoreKeyArrayOutputWithContext(context.Background()) +} + +func (i KeyvaluestoreKeyArray) ToKeyvaluestoreKeyArrayOutputWithContext(ctx context.Context) KeyvaluestoreKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyvaluestoreKeyArrayOutput) +} + +// KeyvaluestoreKeyMapInput is an input type that accepts KeyvaluestoreKeyMap and KeyvaluestoreKeyMapOutput values. +// You can construct a concrete instance of `KeyvaluestoreKeyMapInput` via: +// +// KeyvaluestoreKeyMap{ "key": KeyvaluestoreKeyArgs{...} } +type KeyvaluestoreKeyMapInput interface { + pulumi.Input + + ToKeyvaluestoreKeyMapOutput() KeyvaluestoreKeyMapOutput + ToKeyvaluestoreKeyMapOutputWithContext(context.Context) KeyvaluestoreKeyMapOutput +} + +type KeyvaluestoreKeyMap map[string]KeyvaluestoreKeyInput + +func (KeyvaluestoreKeyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KeyvaluestoreKey)(nil)).Elem() +} + +func (i KeyvaluestoreKeyMap) ToKeyvaluestoreKeyMapOutput() KeyvaluestoreKeyMapOutput { + return i.ToKeyvaluestoreKeyMapOutputWithContext(context.Background()) +} + +func (i KeyvaluestoreKeyMap) ToKeyvaluestoreKeyMapOutputWithContext(ctx context.Context) KeyvaluestoreKeyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyvaluestoreKeyMapOutput) +} + +type KeyvaluestoreKeyOutput struct{ *pulumi.OutputState } + +func (KeyvaluestoreKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyvaluestoreKey)(nil)).Elem() +} + +func (o KeyvaluestoreKeyOutput) ToKeyvaluestoreKeyOutput() KeyvaluestoreKeyOutput { + return o +} + +func (o KeyvaluestoreKeyOutput) ToKeyvaluestoreKeyOutputWithContext(ctx context.Context) KeyvaluestoreKeyOutput { + return o +} + +// Key to put. +func (o KeyvaluestoreKeyOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *KeyvaluestoreKey) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// Amazon Resource Name (ARN) of the Key Value Store. +func (o KeyvaluestoreKeyOutput) KeyValueStoreArn() pulumi.StringOutput { + return o.ApplyT(func(v *KeyvaluestoreKey) pulumi.StringOutput { return v.KeyValueStoreArn }).(pulumi.StringOutput) +} + +// Total size of the Key Value Store in bytes. +func (o KeyvaluestoreKeyOutput) TotalSizeInBytes() pulumi.IntOutput { + return o.ApplyT(func(v *KeyvaluestoreKey) pulumi.IntOutput { return v.TotalSizeInBytes }).(pulumi.IntOutput) +} + +// Value to put. +func (o KeyvaluestoreKeyOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *KeyvaluestoreKey) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type KeyvaluestoreKeyArrayOutput struct{ *pulumi.OutputState } + +func (KeyvaluestoreKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*KeyvaluestoreKey)(nil)).Elem() +} + +func (o KeyvaluestoreKeyArrayOutput) ToKeyvaluestoreKeyArrayOutput() KeyvaluestoreKeyArrayOutput { + return o +} + +func (o KeyvaluestoreKeyArrayOutput) ToKeyvaluestoreKeyArrayOutputWithContext(ctx context.Context) KeyvaluestoreKeyArrayOutput { + return o +} + +func (o KeyvaluestoreKeyArrayOutput) Index(i pulumi.IntInput) KeyvaluestoreKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KeyvaluestoreKey { + return vs[0].([]*KeyvaluestoreKey)[vs[1].(int)] + }).(KeyvaluestoreKeyOutput) +} + +type KeyvaluestoreKeyMapOutput struct{ *pulumi.OutputState } + +func (KeyvaluestoreKeyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*KeyvaluestoreKey)(nil)).Elem() +} + +func (o KeyvaluestoreKeyMapOutput) ToKeyvaluestoreKeyMapOutput() KeyvaluestoreKeyMapOutput { + return o +} + +func (o KeyvaluestoreKeyMapOutput) ToKeyvaluestoreKeyMapOutputWithContext(ctx context.Context) KeyvaluestoreKeyMapOutput { + return o +} + +func (o KeyvaluestoreKeyMapOutput) MapIndex(k pulumi.StringInput) KeyvaluestoreKeyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KeyvaluestoreKey { + return vs[0].(map[string]*KeyvaluestoreKey)[vs[1].(string)] + }).(KeyvaluestoreKeyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*KeyvaluestoreKeyInput)(nil)).Elem(), &KeyvaluestoreKey{}) + pulumi.RegisterInputType(reflect.TypeOf((*KeyvaluestoreKeyArrayInput)(nil)).Elem(), KeyvaluestoreKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*KeyvaluestoreKeyMapInput)(nil)).Elem(), KeyvaluestoreKeyMap{}) + pulumi.RegisterOutputType(KeyvaluestoreKeyOutput{}) + pulumi.RegisterOutputType(KeyvaluestoreKeyArrayOutput{}) + pulumi.RegisterOutputType(KeyvaluestoreKeyMapOutput{}) +} diff --git a/sdk/go/aws/config/pulumiTypes.go b/sdk/go/aws/config/pulumiTypes.go index e13ac055d8c..60b5646e98a 100644 --- a/sdk/go/aws/config/pulumiTypes.go +++ b/sdk/go/aws/config/pulumiTypes.go @@ -459,6 +459,8 @@ type Endpoints struct { // Use this to override the default service endpoint URL Datasync *string `pulumi:"datasync"` // Use this to override the default service endpoint URL + Datazone *string `pulumi:"datazone"` + // Use this to override the default service endpoint URL Dax *string `pulumi:"dax"` // Use this to override the default service endpoint URL Deploy *string `pulumi:"deploy"` @@ -679,6 +681,8 @@ type Endpoints struct { // Use this to override the default service endpoint URL Outposts *string `pulumi:"outposts"` // Use this to override the default service endpoint URL + Paymentcryptography *string `pulumi:"paymentcryptography"` + // Use this to override the default service endpoint URL Pcaconnectorad *string `pulumi:"pcaconnectorad"` // Use this to override the default service endpoint URL Pinpoint *string `pulumi:"pinpoint"` @@ -1021,6 +1025,8 @@ type EndpointsArgs struct { // Use this to override the default service endpoint URL Datasync pulumi.StringPtrInput `pulumi:"datasync"` // Use this to override the default service endpoint URL + Datazone pulumi.StringPtrInput `pulumi:"datazone"` + // Use this to override the default service endpoint URL Dax pulumi.StringPtrInput `pulumi:"dax"` // Use this to override the default service endpoint URL Deploy pulumi.StringPtrInput `pulumi:"deploy"` @@ -1241,6 +1247,8 @@ type EndpointsArgs struct { // Use this to override the default service endpoint URL Outposts pulumi.StringPtrInput `pulumi:"outposts"` // Use this to override the default service endpoint URL + Paymentcryptography pulumi.StringPtrInput `pulumi:"paymentcryptography"` + // Use this to override the default service endpoint URL Pcaconnectorad pulumi.StringPtrInput `pulumi:"pcaconnectorad"` // Use this to override the default service endpoint URL Pinpoint pulumi.StringPtrInput `pulumi:"pinpoint"` @@ -1873,6 +1881,11 @@ func (o EndpointsOutput) Datasync() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Datasync }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o EndpointsOutput) Datazone() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.Datazone }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o EndpointsOutput) Dax() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Dax }).(pulumi.StringPtrOutput) @@ -2423,6 +2436,11 @@ func (o EndpointsOutput) Outposts() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Outposts }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o EndpointsOutput) Paymentcryptography() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.Paymentcryptography }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o EndpointsOutput) Pcaconnectorad() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Pcaconnectorad }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/devopsguru/init.go b/sdk/go/aws/devopsguru/init.go index d5da53bec7e..c8e7f5a9972 100644 --- a/sdk/go/aws/devopsguru/init.go +++ b/sdk/go/aws/devopsguru/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws:devopsguru/eventSourcesConfig:EventSourcesConfig": r = &EventSourcesConfig{} + case "aws:devopsguru/notificationChannel:NotificationChannel": + r = &NotificationChannel{} case "aws:devopsguru/resourceCollection:ResourceCollection": r = &ResourceCollection{} default: @@ -43,6 +45,11 @@ func init() { "devopsguru/eventSourcesConfig", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "devopsguru/notificationChannel", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "devopsguru/resourceCollection", diff --git a/sdk/go/aws/devopsguru/notificationChannel.go b/sdk/go/aws/devopsguru/notificationChannel.go new file mode 100644 index 00000000000..5fb789a76e1 --- /dev/null +++ b/sdk/go/aws/devopsguru/notificationChannel.go @@ -0,0 +1,320 @@ +// 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 devopsguru + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS DevOps Guru Notification Channel. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := devopsguru.NewNotificationChannel(ctx, "example", &devopsguru.NotificationChannelArgs{ +// Sns: &devopsguru.NotificationChannelSnsArgs{ +// TopicArn: pulumi.Any(exampleAwsSnsTopic.Arn), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ### Filters +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/devopsguru" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := devopsguru.NewNotificationChannel(ctx, "example", &devopsguru.NotificationChannelArgs{ +// Sns: &devopsguru.NotificationChannelSnsArgs{ +// TopicArn: pulumi.Any(exampleAwsSnsTopic.Arn), +// }, +// Filters: &devopsguru.NotificationChannelFiltersArgs{ +// MessageTypes: pulumi.StringArray{ +// pulumi.String("NEW_INSIGHT"), +// }, +// Severities: pulumi.StringArray{ +// pulumi.String("HIGH"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: +// +// ```sh +// $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 +// ``` +type NotificationChannel struct { + pulumi.CustomResourceState + + // Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + Filters NotificationChannelFiltersPtrOutput `pulumi:"filters"` + // SNS noficiation channel configurations. See the `sns` argument reference below. + // + // The following arguments are optional: + Sns NotificationChannelSnsPtrOutput `pulumi:"sns"` +} + +// NewNotificationChannel registers a new resource with the given unique name, arguments, and options. +func NewNotificationChannel(ctx *pulumi.Context, + name string, args *NotificationChannelArgs, opts ...pulumi.ResourceOption) (*NotificationChannel, error) { + if args == nil { + args = &NotificationChannelArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource NotificationChannel + err := ctx.RegisterResource("aws:devopsguru/notificationChannel:NotificationChannel", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetNotificationChannel gets an existing NotificationChannel 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 GetNotificationChannel(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *NotificationChannelState, opts ...pulumi.ResourceOption) (*NotificationChannel, error) { + var resource NotificationChannel + err := ctx.ReadResource("aws:devopsguru/notificationChannel:NotificationChannel", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering NotificationChannel resources. +type notificationChannelState struct { + // Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + Filters *NotificationChannelFilters `pulumi:"filters"` + // SNS noficiation channel configurations. See the `sns` argument reference below. + // + // The following arguments are optional: + Sns *NotificationChannelSns `pulumi:"sns"` +} + +type NotificationChannelState struct { + // Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + Filters NotificationChannelFiltersPtrInput + // SNS noficiation channel configurations. See the `sns` argument reference below. + // + // The following arguments are optional: + Sns NotificationChannelSnsPtrInput +} + +func (NotificationChannelState) ElementType() reflect.Type { + return reflect.TypeOf((*notificationChannelState)(nil)).Elem() +} + +type notificationChannelArgs struct { + // Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + Filters *NotificationChannelFilters `pulumi:"filters"` + // SNS noficiation channel configurations. See the `sns` argument reference below. + // + // The following arguments are optional: + Sns *NotificationChannelSns `pulumi:"sns"` +} + +// The set of arguments for constructing a NotificationChannel resource. +type NotificationChannelArgs struct { + // Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + Filters NotificationChannelFiltersPtrInput + // SNS noficiation channel configurations. See the `sns` argument reference below. + // + // The following arguments are optional: + Sns NotificationChannelSnsPtrInput +} + +func (NotificationChannelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*notificationChannelArgs)(nil)).Elem() +} + +type NotificationChannelInput interface { + pulumi.Input + + ToNotificationChannelOutput() NotificationChannelOutput + ToNotificationChannelOutputWithContext(ctx context.Context) NotificationChannelOutput +} + +func (*NotificationChannel) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannel)(nil)).Elem() +} + +func (i *NotificationChannel) ToNotificationChannelOutput() NotificationChannelOutput { + return i.ToNotificationChannelOutputWithContext(context.Background()) +} + +func (i *NotificationChannel) ToNotificationChannelOutputWithContext(ctx context.Context) NotificationChannelOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelOutput) +} + +// NotificationChannelArrayInput is an input type that accepts NotificationChannelArray and NotificationChannelArrayOutput values. +// You can construct a concrete instance of `NotificationChannelArrayInput` via: +// +// NotificationChannelArray{ NotificationChannelArgs{...} } +type NotificationChannelArrayInput interface { + pulumi.Input + + ToNotificationChannelArrayOutput() NotificationChannelArrayOutput + ToNotificationChannelArrayOutputWithContext(context.Context) NotificationChannelArrayOutput +} + +type NotificationChannelArray []NotificationChannelInput + +func (NotificationChannelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*NotificationChannel)(nil)).Elem() +} + +func (i NotificationChannelArray) ToNotificationChannelArrayOutput() NotificationChannelArrayOutput { + return i.ToNotificationChannelArrayOutputWithContext(context.Background()) +} + +func (i NotificationChannelArray) ToNotificationChannelArrayOutputWithContext(ctx context.Context) NotificationChannelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelArrayOutput) +} + +// NotificationChannelMapInput is an input type that accepts NotificationChannelMap and NotificationChannelMapOutput values. +// You can construct a concrete instance of `NotificationChannelMapInput` via: +// +// NotificationChannelMap{ "key": NotificationChannelArgs{...} } +type NotificationChannelMapInput interface { + pulumi.Input + + ToNotificationChannelMapOutput() NotificationChannelMapOutput + ToNotificationChannelMapOutputWithContext(context.Context) NotificationChannelMapOutput +} + +type NotificationChannelMap map[string]NotificationChannelInput + +func (NotificationChannelMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*NotificationChannel)(nil)).Elem() +} + +func (i NotificationChannelMap) ToNotificationChannelMapOutput() NotificationChannelMapOutput { + return i.ToNotificationChannelMapOutputWithContext(context.Background()) +} + +func (i NotificationChannelMap) ToNotificationChannelMapOutputWithContext(ctx context.Context) NotificationChannelMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelMapOutput) +} + +type NotificationChannelOutput struct{ *pulumi.OutputState } + +func (NotificationChannelOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannel)(nil)).Elem() +} + +func (o NotificationChannelOutput) ToNotificationChannelOutput() NotificationChannelOutput { + return o +} + +func (o NotificationChannelOutput) ToNotificationChannelOutputWithContext(ctx context.Context) NotificationChannelOutput { + return o +} + +// Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. +func (o NotificationChannelOutput) Filters() NotificationChannelFiltersPtrOutput { + return o.ApplyT(func(v *NotificationChannel) NotificationChannelFiltersPtrOutput { return v.Filters }).(NotificationChannelFiltersPtrOutput) +} + +// SNS noficiation channel configurations. See the `sns` argument reference below. +// +// The following arguments are optional: +func (o NotificationChannelOutput) Sns() NotificationChannelSnsPtrOutput { + return o.ApplyT(func(v *NotificationChannel) NotificationChannelSnsPtrOutput { return v.Sns }).(NotificationChannelSnsPtrOutput) +} + +type NotificationChannelArrayOutput struct{ *pulumi.OutputState } + +func (NotificationChannelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*NotificationChannel)(nil)).Elem() +} + +func (o NotificationChannelArrayOutput) ToNotificationChannelArrayOutput() NotificationChannelArrayOutput { + return o +} + +func (o NotificationChannelArrayOutput) ToNotificationChannelArrayOutputWithContext(ctx context.Context) NotificationChannelArrayOutput { + return o +} + +func (o NotificationChannelArrayOutput) Index(i pulumi.IntInput) NotificationChannelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NotificationChannel { + return vs[0].([]*NotificationChannel)[vs[1].(int)] + }).(NotificationChannelOutput) +} + +type NotificationChannelMapOutput struct{ *pulumi.OutputState } + +func (NotificationChannelMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*NotificationChannel)(nil)).Elem() +} + +func (o NotificationChannelMapOutput) ToNotificationChannelMapOutput() NotificationChannelMapOutput { + return o +} + +func (o NotificationChannelMapOutput) ToNotificationChannelMapOutputWithContext(ctx context.Context) NotificationChannelMapOutput { + return o +} + +func (o NotificationChannelMapOutput) MapIndex(k pulumi.StringInput) NotificationChannelOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NotificationChannel { + return vs[0].(map[string]*NotificationChannel)[vs[1].(string)] + }).(NotificationChannelOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelInput)(nil)).Elem(), &NotificationChannel{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelArrayInput)(nil)).Elem(), NotificationChannelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelMapInput)(nil)).Elem(), NotificationChannelMap{}) + pulumi.RegisterOutputType(NotificationChannelOutput{}) + pulumi.RegisterOutputType(NotificationChannelArrayOutput{}) + pulumi.RegisterOutputType(NotificationChannelMapOutput{}) +} diff --git a/sdk/go/aws/devopsguru/pulumiTypes.go b/sdk/go/aws/devopsguru/pulumiTypes.go index 205783c31df..80c2c37aa2c 100644 --- a/sdk/go/aws/devopsguru/pulumiTypes.go +++ b/sdk/go/aws/devopsguru/pulumiTypes.go @@ -209,6 +209,295 @@ func (o EventSourcesConfigEventSourceAmazonCodeGuruProfilerArrayOutput) Index(i }).(EventSourcesConfigEventSourceAmazonCodeGuruProfilerOutput) } +type NotificationChannelFilters struct { + // Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + MessageTypes []string `pulumi:"messageTypes"` + // Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + Severities []string `pulumi:"severities"` +} + +// NotificationChannelFiltersInput is an input type that accepts NotificationChannelFiltersArgs and NotificationChannelFiltersOutput values. +// You can construct a concrete instance of `NotificationChannelFiltersInput` via: +// +// NotificationChannelFiltersArgs{...} +type NotificationChannelFiltersInput interface { + pulumi.Input + + ToNotificationChannelFiltersOutput() NotificationChannelFiltersOutput + ToNotificationChannelFiltersOutputWithContext(context.Context) NotificationChannelFiltersOutput +} + +type NotificationChannelFiltersArgs struct { + // Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + MessageTypes pulumi.StringArrayInput `pulumi:"messageTypes"` + // Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + Severities pulumi.StringArrayInput `pulumi:"severities"` +} + +func (NotificationChannelFiltersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NotificationChannelFilters)(nil)).Elem() +} + +func (i NotificationChannelFiltersArgs) ToNotificationChannelFiltersOutput() NotificationChannelFiltersOutput { + return i.ToNotificationChannelFiltersOutputWithContext(context.Background()) +} + +func (i NotificationChannelFiltersArgs) ToNotificationChannelFiltersOutputWithContext(ctx context.Context) NotificationChannelFiltersOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelFiltersOutput) +} + +func (i NotificationChannelFiltersArgs) ToNotificationChannelFiltersPtrOutput() NotificationChannelFiltersPtrOutput { + return i.ToNotificationChannelFiltersPtrOutputWithContext(context.Background()) +} + +func (i NotificationChannelFiltersArgs) ToNotificationChannelFiltersPtrOutputWithContext(ctx context.Context) NotificationChannelFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelFiltersOutput).ToNotificationChannelFiltersPtrOutputWithContext(ctx) +} + +// NotificationChannelFiltersPtrInput is an input type that accepts NotificationChannelFiltersArgs, NotificationChannelFiltersPtr and NotificationChannelFiltersPtrOutput values. +// You can construct a concrete instance of `NotificationChannelFiltersPtrInput` via: +// +// NotificationChannelFiltersArgs{...} +// +// or: +// +// nil +type NotificationChannelFiltersPtrInput interface { + pulumi.Input + + ToNotificationChannelFiltersPtrOutput() NotificationChannelFiltersPtrOutput + ToNotificationChannelFiltersPtrOutputWithContext(context.Context) NotificationChannelFiltersPtrOutput +} + +type notificationChannelFiltersPtrType NotificationChannelFiltersArgs + +func NotificationChannelFiltersPtr(v *NotificationChannelFiltersArgs) NotificationChannelFiltersPtrInput { + return (*notificationChannelFiltersPtrType)(v) +} + +func (*notificationChannelFiltersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannelFilters)(nil)).Elem() +} + +func (i *notificationChannelFiltersPtrType) ToNotificationChannelFiltersPtrOutput() NotificationChannelFiltersPtrOutput { + return i.ToNotificationChannelFiltersPtrOutputWithContext(context.Background()) +} + +func (i *notificationChannelFiltersPtrType) ToNotificationChannelFiltersPtrOutputWithContext(ctx context.Context) NotificationChannelFiltersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelFiltersPtrOutput) +} + +type NotificationChannelFiltersOutput struct{ *pulumi.OutputState } + +func (NotificationChannelFiltersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NotificationChannelFilters)(nil)).Elem() +} + +func (o NotificationChannelFiltersOutput) ToNotificationChannelFiltersOutput() NotificationChannelFiltersOutput { + return o +} + +func (o NotificationChannelFiltersOutput) ToNotificationChannelFiltersOutputWithContext(ctx context.Context) NotificationChannelFiltersOutput { + return o +} + +func (o NotificationChannelFiltersOutput) ToNotificationChannelFiltersPtrOutput() NotificationChannelFiltersPtrOutput { + return o.ToNotificationChannelFiltersPtrOutputWithContext(context.Background()) +} + +func (o NotificationChannelFiltersOutput) ToNotificationChannelFiltersPtrOutputWithContext(ctx context.Context) NotificationChannelFiltersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NotificationChannelFilters) *NotificationChannelFilters { + return &v + }).(NotificationChannelFiltersPtrOutput) +} + +// Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. +func (o NotificationChannelFiltersOutput) MessageTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v NotificationChannelFilters) []string { return v.MessageTypes }).(pulumi.StringArrayOutput) +} + +// Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. +func (o NotificationChannelFiltersOutput) Severities() pulumi.StringArrayOutput { + return o.ApplyT(func(v NotificationChannelFilters) []string { return v.Severities }).(pulumi.StringArrayOutput) +} + +type NotificationChannelFiltersPtrOutput struct{ *pulumi.OutputState } + +func (NotificationChannelFiltersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannelFilters)(nil)).Elem() +} + +func (o NotificationChannelFiltersPtrOutput) ToNotificationChannelFiltersPtrOutput() NotificationChannelFiltersPtrOutput { + return o +} + +func (o NotificationChannelFiltersPtrOutput) ToNotificationChannelFiltersPtrOutputWithContext(ctx context.Context) NotificationChannelFiltersPtrOutput { + return o +} + +func (o NotificationChannelFiltersPtrOutput) Elem() NotificationChannelFiltersOutput { + return o.ApplyT(func(v *NotificationChannelFilters) NotificationChannelFilters { + if v != nil { + return *v + } + var ret NotificationChannelFilters + return ret + }).(NotificationChannelFiltersOutput) +} + +// Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. +func (o NotificationChannelFiltersPtrOutput) MessageTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NotificationChannelFilters) []string { + if v == nil { + return nil + } + return v.MessageTypes + }).(pulumi.StringArrayOutput) +} + +// Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. +func (o NotificationChannelFiltersPtrOutput) Severities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NotificationChannelFilters) []string { + if v == nil { + return nil + } + return v.Severities + }).(pulumi.StringArrayOutput) +} + +type NotificationChannelSns struct { + TopicArn string `pulumi:"topicArn"` +} + +// NotificationChannelSnsInput is an input type that accepts NotificationChannelSnsArgs and NotificationChannelSnsOutput values. +// You can construct a concrete instance of `NotificationChannelSnsInput` via: +// +// NotificationChannelSnsArgs{...} +type NotificationChannelSnsInput interface { + pulumi.Input + + ToNotificationChannelSnsOutput() NotificationChannelSnsOutput + ToNotificationChannelSnsOutputWithContext(context.Context) NotificationChannelSnsOutput +} + +type NotificationChannelSnsArgs struct { + TopicArn pulumi.StringInput `pulumi:"topicArn"` +} + +func (NotificationChannelSnsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NotificationChannelSns)(nil)).Elem() +} + +func (i NotificationChannelSnsArgs) ToNotificationChannelSnsOutput() NotificationChannelSnsOutput { + return i.ToNotificationChannelSnsOutputWithContext(context.Background()) +} + +func (i NotificationChannelSnsArgs) ToNotificationChannelSnsOutputWithContext(ctx context.Context) NotificationChannelSnsOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelSnsOutput) +} + +func (i NotificationChannelSnsArgs) ToNotificationChannelSnsPtrOutput() NotificationChannelSnsPtrOutput { + return i.ToNotificationChannelSnsPtrOutputWithContext(context.Background()) +} + +func (i NotificationChannelSnsArgs) ToNotificationChannelSnsPtrOutputWithContext(ctx context.Context) NotificationChannelSnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelSnsOutput).ToNotificationChannelSnsPtrOutputWithContext(ctx) +} + +// NotificationChannelSnsPtrInput is an input type that accepts NotificationChannelSnsArgs, NotificationChannelSnsPtr and NotificationChannelSnsPtrOutput values. +// You can construct a concrete instance of `NotificationChannelSnsPtrInput` via: +// +// NotificationChannelSnsArgs{...} +// +// or: +// +// nil +type NotificationChannelSnsPtrInput interface { + pulumi.Input + + ToNotificationChannelSnsPtrOutput() NotificationChannelSnsPtrOutput + ToNotificationChannelSnsPtrOutputWithContext(context.Context) NotificationChannelSnsPtrOutput +} + +type notificationChannelSnsPtrType NotificationChannelSnsArgs + +func NotificationChannelSnsPtr(v *NotificationChannelSnsArgs) NotificationChannelSnsPtrInput { + return (*notificationChannelSnsPtrType)(v) +} + +func (*notificationChannelSnsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannelSns)(nil)).Elem() +} + +func (i *notificationChannelSnsPtrType) ToNotificationChannelSnsPtrOutput() NotificationChannelSnsPtrOutput { + return i.ToNotificationChannelSnsPtrOutputWithContext(context.Background()) +} + +func (i *notificationChannelSnsPtrType) ToNotificationChannelSnsPtrOutputWithContext(ctx context.Context) NotificationChannelSnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NotificationChannelSnsPtrOutput) +} + +type NotificationChannelSnsOutput struct{ *pulumi.OutputState } + +func (NotificationChannelSnsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NotificationChannelSns)(nil)).Elem() +} + +func (o NotificationChannelSnsOutput) ToNotificationChannelSnsOutput() NotificationChannelSnsOutput { + return o +} + +func (o NotificationChannelSnsOutput) ToNotificationChannelSnsOutputWithContext(ctx context.Context) NotificationChannelSnsOutput { + return o +} + +func (o NotificationChannelSnsOutput) ToNotificationChannelSnsPtrOutput() NotificationChannelSnsPtrOutput { + return o.ToNotificationChannelSnsPtrOutputWithContext(context.Background()) +} + +func (o NotificationChannelSnsOutput) ToNotificationChannelSnsPtrOutputWithContext(ctx context.Context) NotificationChannelSnsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NotificationChannelSns) *NotificationChannelSns { + return &v + }).(NotificationChannelSnsPtrOutput) +} + +func (o NotificationChannelSnsOutput) TopicArn() pulumi.StringOutput { + return o.ApplyT(func(v NotificationChannelSns) string { return v.TopicArn }).(pulumi.StringOutput) +} + +type NotificationChannelSnsPtrOutput struct{ *pulumi.OutputState } + +func (NotificationChannelSnsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NotificationChannelSns)(nil)).Elem() +} + +func (o NotificationChannelSnsPtrOutput) ToNotificationChannelSnsPtrOutput() NotificationChannelSnsPtrOutput { + return o +} + +func (o NotificationChannelSnsPtrOutput) ToNotificationChannelSnsPtrOutputWithContext(ctx context.Context) NotificationChannelSnsPtrOutput { + return o +} + +func (o NotificationChannelSnsPtrOutput) Elem() NotificationChannelSnsOutput { + return o.ApplyT(func(v *NotificationChannelSns) NotificationChannelSns { + if v != nil { + return *v + } + var ret NotificationChannelSns + return ret + }).(NotificationChannelSnsOutput) +} + +func (o NotificationChannelSnsPtrOutput) TopicArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NotificationChannelSns) *string { + if v == nil { + return nil + } + return &v.TopicArn + }).(pulumi.StringPtrOutput) +} + type ResourceCollectionCloudformation struct { // Array of the names of the AWS CloudFormation stacks. If `type` is `AWS_SERVICE` (all acccount resources) this array should be a single item containing a wildcard (`"*"`). StackNames []string `pulumi:"stackNames"` @@ -507,6 +796,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*EventSourcesConfigEventSourceArrayInput)(nil)).Elem(), EventSourcesConfigEventSourceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*EventSourcesConfigEventSourceAmazonCodeGuruProfilerInput)(nil)).Elem(), EventSourcesConfigEventSourceAmazonCodeGuruProfilerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EventSourcesConfigEventSourceAmazonCodeGuruProfilerArrayInput)(nil)).Elem(), EventSourcesConfigEventSourceAmazonCodeGuruProfilerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelFiltersInput)(nil)).Elem(), NotificationChannelFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelFiltersPtrInput)(nil)).Elem(), NotificationChannelFiltersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelSnsInput)(nil)).Elem(), NotificationChannelSnsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NotificationChannelSnsPtrInput)(nil)).Elem(), NotificationChannelSnsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionCloudformationInput)(nil)).Elem(), ResourceCollectionCloudformationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionCloudformationPtrInput)(nil)).Elem(), ResourceCollectionCloudformationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceCollectionTagsInput)(nil)).Elem(), ResourceCollectionTagsArgs{}) @@ -515,6 +808,10 @@ func init() { pulumi.RegisterOutputType(EventSourcesConfigEventSourceArrayOutput{}) pulumi.RegisterOutputType(EventSourcesConfigEventSourceAmazonCodeGuruProfilerOutput{}) pulumi.RegisterOutputType(EventSourcesConfigEventSourceAmazonCodeGuruProfilerArrayOutput{}) + pulumi.RegisterOutputType(NotificationChannelFiltersOutput{}) + pulumi.RegisterOutputType(NotificationChannelFiltersPtrOutput{}) + pulumi.RegisterOutputType(NotificationChannelSnsOutput{}) + pulumi.RegisterOutputType(NotificationChannelSnsPtrOutput{}) pulumi.RegisterOutputType(ResourceCollectionCloudformationOutput{}) pulumi.RegisterOutputType(ResourceCollectionCloudformationPtrOutput{}) pulumi.RegisterOutputType(ResourceCollectionTagsOutput{}) diff --git a/sdk/go/aws/dynamodb/init.go b/sdk/go/aws/dynamodb/init.go index 0497498c173..cc0ac355b21 100644 --- a/sdk/go/aws/dynamodb/init.go +++ b/sdk/go/aws/dynamodb/init.go @@ -27,6 +27,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &GlobalTable{} case "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination": r = &KinesisStreamingDestination{} + case "aws:dynamodb/resourcePolicy:ResourcePolicy": + r = &ResourcePolicy{} case "aws:dynamodb/table:Table": r = &Table{} case "aws:dynamodb/tableExport:TableExport": @@ -65,6 +67,11 @@ func init() { "dynamodb/kinesisStreamingDestination", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "dynamodb/resourcePolicy", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "dynamodb/table", diff --git a/sdk/go/aws/dynamodb/resourcePolicy.go b/sdk/go/aws/dynamodb/resourcePolicy.go new file mode 100644 index 00000000000..328b317bf3d --- /dev/null +++ b/sdk/go/aws/dynamodb/resourcePolicy.go @@ -0,0 +1,323 @@ +// 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 dynamodb + +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 DynamoDB Resource Policy. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := dynamodb.NewResourcePolicy(ctx, "example", &dynamodb.ResourcePolicyArgs{ +// ResourceArn: pulumi.Any(exampleAwsDynamodbTable.Arn), +// Policy: pulumi.Any(test.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: +// +// ```sh +// $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table +// ``` +type ResourcePolicy struct { + pulumi.CustomResourceState + + // Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + ConfirmRemoveSelfResourceAccess pulumi.BoolOutput `pulumi:"confirmRemoveSelfResourceAccess"` + // n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + // + // The following arguments are optional: + Policy pulumi.StringOutput `pulumi:"policy"` + // The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + ResourceArn pulumi.StringOutput `pulumi:"resourceArn"` + // A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + RevisionId pulumi.StringOutput `pulumi:"revisionId"` +} + +// NewResourcePolicy registers a new resource with the given unique name, arguments, and options. +func NewResourcePolicy(ctx *pulumi.Context, + name string, args *ResourcePolicyArgs, opts ...pulumi.ResourceOption) (*ResourcePolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + if args.ResourceArn == nil { + return nil, errors.New("invalid value for required argument 'ResourceArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ResourcePolicy + err := ctx.RegisterResource("aws:dynamodb/resourcePolicy:ResourcePolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourcePolicy gets an existing ResourcePolicy 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 GetResourcePolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourcePolicyState, opts ...pulumi.ResourceOption) (*ResourcePolicy, error) { + var resource ResourcePolicy + err := ctx.ReadResource("aws:dynamodb/resourcePolicy:ResourcePolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourcePolicy resources. +type resourcePolicyState struct { + // Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + ConfirmRemoveSelfResourceAccess *bool `pulumi:"confirmRemoveSelfResourceAccess"` + // n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + // + // The following arguments are optional: + Policy *string `pulumi:"policy"` + // The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + ResourceArn *string `pulumi:"resourceArn"` + // A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + RevisionId *string `pulumi:"revisionId"` +} + +type ResourcePolicyState struct { + // Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + ConfirmRemoveSelfResourceAccess pulumi.BoolPtrInput + // n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + // + // The following arguments are optional: + Policy pulumi.StringPtrInput + // The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + ResourceArn pulumi.StringPtrInput + // A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + RevisionId pulumi.StringPtrInput +} + +func (ResourcePolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*resourcePolicyState)(nil)).Elem() +} + +type resourcePolicyArgs struct { + // Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + ConfirmRemoveSelfResourceAccess *bool `pulumi:"confirmRemoveSelfResourceAccess"` + // n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + // + // The following arguments are optional: + Policy string `pulumi:"policy"` + // The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + ResourceArn string `pulumi:"resourceArn"` +} + +// The set of arguments for constructing a ResourcePolicy resource. +type ResourcePolicyArgs struct { + // Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + ConfirmRemoveSelfResourceAccess pulumi.BoolPtrInput + // n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + // + // The following arguments are optional: + Policy pulumi.StringInput + // The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + ResourceArn pulumi.StringInput +} + +func (ResourcePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourcePolicyArgs)(nil)).Elem() +} + +type ResourcePolicyInput interface { + pulumi.Input + + ToResourcePolicyOutput() ResourcePolicyOutput + ToResourcePolicyOutputWithContext(ctx context.Context) ResourcePolicyOutput +} + +func (*ResourcePolicy) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicy)(nil)).Elem() +} + +func (i *ResourcePolicy) ToResourcePolicyOutput() ResourcePolicyOutput { + return i.ToResourcePolicyOutputWithContext(context.Background()) +} + +func (i *ResourcePolicy) ToResourcePolicyOutputWithContext(ctx context.Context) ResourcePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyOutput) +} + +// ResourcePolicyArrayInput is an input type that accepts ResourcePolicyArray and ResourcePolicyArrayOutput values. +// You can construct a concrete instance of `ResourcePolicyArrayInput` via: +// +// ResourcePolicyArray{ ResourcePolicyArgs{...} } +type ResourcePolicyArrayInput interface { + pulumi.Input + + ToResourcePolicyArrayOutput() ResourcePolicyArrayOutput + ToResourcePolicyArrayOutputWithContext(context.Context) ResourcePolicyArrayOutput +} + +type ResourcePolicyArray []ResourcePolicyInput + +func (ResourcePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourcePolicy)(nil)).Elem() +} + +func (i ResourcePolicyArray) ToResourcePolicyArrayOutput() ResourcePolicyArrayOutput { + return i.ToResourcePolicyArrayOutputWithContext(context.Background()) +} + +func (i ResourcePolicyArray) ToResourcePolicyArrayOutputWithContext(ctx context.Context) ResourcePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyArrayOutput) +} + +// ResourcePolicyMapInput is an input type that accepts ResourcePolicyMap and ResourcePolicyMapOutput values. +// You can construct a concrete instance of `ResourcePolicyMapInput` via: +// +// ResourcePolicyMap{ "key": ResourcePolicyArgs{...} } +type ResourcePolicyMapInput interface { + pulumi.Input + + ToResourcePolicyMapOutput() ResourcePolicyMapOutput + ToResourcePolicyMapOutputWithContext(context.Context) ResourcePolicyMapOutput +} + +type ResourcePolicyMap map[string]ResourcePolicyInput + +func (ResourcePolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourcePolicy)(nil)).Elem() +} + +func (i ResourcePolicyMap) ToResourcePolicyMapOutput() ResourcePolicyMapOutput { + return i.ToResourcePolicyMapOutputWithContext(context.Background()) +} + +func (i ResourcePolicyMap) ToResourcePolicyMapOutputWithContext(ctx context.Context) ResourcePolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyMapOutput) +} + +type ResourcePolicyOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicy)(nil)).Elem() +} + +func (o ResourcePolicyOutput) ToResourcePolicyOutput() ResourcePolicyOutput { + return o +} + +func (o ResourcePolicyOutput) ToResourcePolicyOutputWithContext(ctx context.Context) ResourcePolicyOutput { + return o +} + +// Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. +func (o ResourcePolicyOutput) ConfirmRemoveSelfResourceAccess() pulumi.BoolOutput { + return o.ApplyT(func(v *ResourcePolicy) pulumi.BoolOutput { return v.ConfirmRemoveSelfResourceAccess }).(pulumi.BoolOutput) +} + +// n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. +// +// The following arguments are optional: +func (o ResourcePolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *ResourcePolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. +func (o ResourcePolicyOutput) ResourceArn() pulumi.StringOutput { + return o.ApplyT(func(v *ResourcePolicy) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput) +} + +// A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. +func (o ResourcePolicyOutput) RevisionId() pulumi.StringOutput { + return o.ApplyT(func(v *ResourcePolicy) pulumi.StringOutput { return v.RevisionId }).(pulumi.StringOutput) +} + +type ResourcePolicyArrayOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourcePolicy)(nil)).Elem() +} + +func (o ResourcePolicyArrayOutput) ToResourcePolicyArrayOutput() ResourcePolicyArrayOutput { + return o +} + +func (o ResourcePolicyArrayOutput) ToResourcePolicyArrayOutputWithContext(ctx context.Context) ResourcePolicyArrayOutput { + return o +} + +func (o ResourcePolicyArrayOutput) Index(i pulumi.IntInput) ResourcePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourcePolicy { + return vs[0].([]*ResourcePolicy)[vs[1].(int)] + }).(ResourcePolicyOutput) +} + +type ResourcePolicyMapOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourcePolicy)(nil)).Elem() +} + +func (o ResourcePolicyMapOutput) ToResourcePolicyMapOutput() ResourcePolicyMapOutput { + return o +} + +func (o ResourcePolicyMapOutput) ToResourcePolicyMapOutputWithContext(ctx context.Context) ResourcePolicyMapOutput { + return o +} + +func (o ResourcePolicyMapOutput) MapIndex(k pulumi.StringInput) ResourcePolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourcePolicy { + return vs[0].(map[string]*ResourcePolicy)[vs[1].(string)] + }).(ResourcePolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyInput)(nil)).Elem(), &ResourcePolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyArrayInput)(nil)).Elem(), ResourcePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyMapInput)(nil)).Elem(), ResourcePolicyMap{}) + pulumi.RegisterOutputType(ResourcePolicyOutput{}) + pulumi.RegisterOutputType(ResourcePolicyArrayOutput{}) + pulumi.RegisterOutputType(ResourcePolicyMapOutput{}) +} diff --git a/sdk/go/aws/ec2/init.go b/sdk/go/aws/ec2/init.go index 079330bebbe..3c50a920539 100644 --- a/sdk/go/aws/ec2/init.go +++ b/sdk/go/aws/ec2/init.go @@ -65,6 +65,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ImageBlockPublicAccess{} case "aws:ec2/instance:Instance": r = &Instance{} + case "aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults": + r = &InstanceMetadataDefaults{} case "aws:ec2/internetGateway:InternetGateway": r = &InternetGateway{} case "aws:ec2/internetGatewayAttachment:InternetGatewayAttachment": @@ -330,6 +332,11 @@ func init() { "ec2/instance", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "ec2/instanceMetadataDefaults", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "ec2/internetGateway", diff --git a/sdk/go/aws/ec2/instanceMetadataDefaults.go b/sdk/go/aws/ec2/instanceMetadataDefaults.go new file mode 100644 index 00000000000..8a1d0cd1cd1 --- /dev/null +++ b/sdk/go/aws/ec2/instanceMetadataDefaults.go @@ -0,0 +1,294 @@ +// 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 ec2 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages regional EC2 instance metadata default settings. +// More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewInstanceMetadataDefaults(ctx, "enforce-imdsv2", &ec2.InstanceMetadataDefaultsArgs{ +// HttpTokens: pulumi.String("required"), +// HttpPutResponseHopLimit: pulumi.Int(1), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// You cannot import this resource. +type InstanceMetadataDefaults struct { + pulumi.CustomResourceState + + // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + HttpEndpoint pulumi.StringOutput `pulumi:"httpEndpoint"` + // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + HttpPutResponseHopLimit pulumi.IntOutput `pulumi:"httpPutResponseHopLimit"` + // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + HttpTokens pulumi.StringOutput `pulumi:"httpTokens"` + // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + InstanceMetadataTags pulumi.StringOutput `pulumi:"instanceMetadataTags"` +} + +// NewInstanceMetadataDefaults registers a new resource with the given unique name, arguments, and options. +func NewInstanceMetadataDefaults(ctx *pulumi.Context, + name string, args *InstanceMetadataDefaultsArgs, opts ...pulumi.ResourceOption) (*InstanceMetadataDefaults, error) { + if args == nil { + args = &InstanceMetadataDefaultsArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource InstanceMetadataDefaults + err := ctx.RegisterResource("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInstanceMetadataDefaults gets an existing InstanceMetadataDefaults 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 GetInstanceMetadataDefaults(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InstanceMetadataDefaultsState, opts ...pulumi.ResourceOption) (*InstanceMetadataDefaults, error) { + var resource InstanceMetadataDefaults + err := ctx.ReadResource("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering InstanceMetadataDefaults resources. +type instanceMetadataDefaultsState struct { + // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + HttpEndpoint *string `pulumi:"httpEndpoint"` + // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"` + // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + HttpTokens *string `pulumi:"httpTokens"` + // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + InstanceMetadataTags *string `pulumi:"instanceMetadataTags"` +} + +type InstanceMetadataDefaultsState struct { + // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + HttpEndpoint pulumi.StringPtrInput + // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + HttpPutResponseHopLimit pulumi.IntPtrInput + // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + HttpTokens pulumi.StringPtrInput + // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + InstanceMetadataTags pulumi.StringPtrInput +} + +func (InstanceMetadataDefaultsState) ElementType() reflect.Type { + return reflect.TypeOf((*instanceMetadataDefaultsState)(nil)).Elem() +} + +type instanceMetadataDefaultsArgs struct { + // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + HttpEndpoint *string `pulumi:"httpEndpoint"` + // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"` + // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + HttpTokens *string `pulumi:"httpTokens"` + // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + InstanceMetadataTags *string `pulumi:"instanceMetadataTags"` +} + +// The set of arguments for constructing a InstanceMetadataDefaults resource. +type InstanceMetadataDefaultsArgs struct { + // Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + HttpEndpoint pulumi.StringPtrInput + // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + HttpPutResponseHopLimit pulumi.IntPtrInput + // Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + HttpTokens pulumi.StringPtrInput + // Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + InstanceMetadataTags pulumi.StringPtrInput +} + +func (InstanceMetadataDefaultsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*instanceMetadataDefaultsArgs)(nil)).Elem() +} + +type InstanceMetadataDefaultsInput interface { + pulumi.Input + + ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput + ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput +} + +func (*InstanceMetadataDefaults) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceMetadataDefaults)(nil)).Elem() +} + +func (i *InstanceMetadataDefaults) ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput { + return i.ToInstanceMetadataDefaultsOutputWithContext(context.Background()) +} + +func (i *InstanceMetadataDefaults) ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsOutput) +} + +// InstanceMetadataDefaultsArrayInput is an input type that accepts InstanceMetadataDefaultsArray and InstanceMetadataDefaultsArrayOutput values. +// You can construct a concrete instance of `InstanceMetadataDefaultsArrayInput` via: +// +// InstanceMetadataDefaultsArray{ InstanceMetadataDefaultsArgs{...} } +type InstanceMetadataDefaultsArrayInput interface { + pulumi.Input + + ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput + ToInstanceMetadataDefaultsArrayOutputWithContext(context.Context) InstanceMetadataDefaultsArrayOutput +} + +type InstanceMetadataDefaultsArray []InstanceMetadataDefaultsInput + +func (InstanceMetadataDefaultsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceMetadataDefaults)(nil)).Elem() +} + +func (i InstanceMetadataDefaultsArray) ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput { + return i.ToInstanceMetadataDefaultsArrayOutputWithContext(context.Background()) +} + +func (i InstanceMetadataDefaultsArray) ToInstanceMetadataDefaultsArrayOutputWithContext(ctx context.Context) InstanceMetadataDefaultsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsArrayOutput) +} + +// InstanceMetadataDefaultsMapInput is an input type that accepts InstanceMetadataDefaultsMap and InstanceMetadataDefaultsMapOutput values. +// You can construct a concrete instance of `InstanceMetadataDefaultsMapInput` via: +// +// InstanceMetadataDefaultsMap{ "key": InstanceMetadataDefaultsArgs{...} } +type InstanceMetadataDefaultsMapInput interface { + pulumi.Input + + ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput + ToInstanceMetadataDefaultsMapOutputWithContext(context.Context) InstanceMetadataDefaultsMapOutput +} + +type InstanceMetadataDefaultsMap map[string]InstanceMetadataDefaultsInput + +func (InstanceMetadataDefaultsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceMetadataDefaults)(nil)).Elem() +} + +func (i InstanceMetadataDefaultsMap) ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput { + return i.ToInstanceMetadataDefaultsMapOutputWithContext(context.Background()) +} + +func (i InstanceMetadataDefaultsMap) ToInstanceMetadataDefaultsMapOutputWithContext(ctx context.Context) InstanceMetadataDefaultsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceMetadataDefaultsMapOutput) +} + +type InstanceMetadataDefaultsOutput struct{ *pulumi.OutputState } + +func (InstanceMetadataDefaultsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceMetadataDefaults)(nil)).Elem() +} + +func (o InstanceMetadataDefaultsOutput) ToInstanceMetadataDefaultsOutput() InstanceMetadataDefaultsOutput { + return o +} + +func (o InstanceMetadataDefaultsOutput) ToInstanceMetadataDefaultsOutputWithContext(ctx context.Context) InstanceMetadataDefaultsOutput { + return o +} + +// Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. +func (o InstanceMetadataDefaultsOutput) HttpEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.HttpEndpoint }).(pulumi.StringOutput) +} + +// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. +func (o InstanceMetadataDefaultsOutput) HttpPutResponseHopLimit() pulumi.IntOutput { + return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.IntOutput { return v.HttpPutResponseHopLimit }).(pulumi.IntOutput) +} + +// Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. +func (o InstanceMetadataDefaultsOutput) HttpTokens() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.HttpTokens }).(pulumi.StringOutput) +} + +// Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. +func (o InstanceMetadataDefaultsOutput) InstanceMetadataTags() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceMetadataDefaults) pulumi.StringOutput { return v.InstanceMetadataTags }).(pulumi.StringOutput) +} + +type InstanceMetadataDefaultsArrayOutput struct{ *pulumi.OutputState } + +func (InstanceMetadataDefaultsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceMetadataDefaults)(nil)).Elem() +} + +func (o InstanceMetadataDefaultsArrayOutput) ToInstanceMetadataDefaultsArrayOutput() InstanceMetadataDefaultsArrayOutput { + return o +} + +func (o InstanceMetadataDefaultsArrayOutput) ToInstanceMetadataDefaultsArrayOutputWithContext(ctx context.Context) InstanceMetadataDefaultsArrayOutput { + return o +} + +func (o InstanceMetadataDefaultsArrayOutput) Index(i pulumi.IntInput) InstanceMetadataDefaultsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceMetadataDefaults { + return vs[0].([]*InstanceMetadataDefaults)[vs[1].(int)] + }).(InstanceMetadataDefaultsOutput) +} + +type InstanceMetadataDefaultsMapOutput struct{ *pulumi.OutputState } + +func (InstanceMetadataDefaultsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceMetadataDefaults)(nil)).Elem() +} + +func (o InstanceMetadataDefaultsMapOutput) ToInstanceMetadataDefaultsMapOutput() InstanceMetadataDefaultsMapOutput { + return o +} + +func (o InstanceMetadataDefaultsMapOutput) ToInstanceMetadataDefaultsMapOutputWithContext(ctx context.Context) InstanceMetadataDefaultsMapOutput { + return o +} + +func (o InstanceMetadataDefaultsMapOutput) MapIndex(k pulumi.StringInput) InstanceMetadataDefaultsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceMetadataDefaults { + return vs[0].(map[string]*InstanceMetadataDefaults)[vs[1].(string)] + }).(InstanceMetadataDefaultsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsInput)(nil)).Elem(), &InstanceMetadataDefaults{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsArrayInput)(nil)).Elem(), InstanceMetadataDefaultsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceMetadataDefaultsMapInput)(nil)).Elem(), InstanceMetadataDefaultsMap{}) + pulumi.RegisterOutputType(InstanceMetadataDefaultsOutput{}) + pulumi.RegisterOutputType(InstanceMetadataDefaultsArrayOutput{}) + pulumi.RegisterOutputType(InstanceMetadataDefaultsMapOutput{}) +} diff --git a/sdk/go/aws/ec2/vpc.go b/sdk/go/aws/ec2/vpc.go index b3398857951..bc655c79c93 100644 --- a/sdk/go/aws/ec2/vpc.go +++ b/sdk/go/aws/ec2/vpc.go @@ -156,7 +156,8 @@ type Vpc struct { DefaultRouteTableId pulumi.StringOutput `pulumi:"defaultRouteTableId"` // The ID of the security group created by default on VPC creation DefaultSecurityGroupId pulumi.StringOutput `pulumi:"defaultSecurityGroupId"` - DhcpOptionsId pulumi.StringOutput `pulumi:"dhcpOptionsId"` + // DHCP options id of the desired VPC. + DhcpOptionsId pulumi.StringOutput `pulumi:"dhcpOptionsId"` // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. EnableDnsHostnames pulumi.BoolOutput `pulumi:"enableDnsHostnames"` // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. @@ -235,7 +236,8 @@ type vpcState struct { DefaultRouteTableId *string `pulumi:"defaultRouteTableId"` // The ID of the security group created by default on VPC creation DefaultSecurityGroupId *string `pulumi:"defaultSecurityGroupId"` - DhcpOptionsId *string `pulumi:"dhcpOptionsId"` + // DHCP options id of the desired VPC. + DhcpOptionsId *string `pulumi:"dhcpOptionsId"` // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. EnableDnsHostnames *bool `pulumi:"enableDnsHostnames"` // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. @@ -285,7 +287,8 @@ type VpcState struct { DefaultRouteTableId pulumi.StringPtrInput // The ID of the security group created by default on VPC creation DefaultSecurityGroupId pulumi.StringPtrInput - DhcpOptionsId pulumi.StringPtrInput + // DHCP options id of the desired VPC. + DhcpOptionsId pulumi.StringPtrInput // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. EnableDnsHostnames pulumi.BoolPtrInput // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. @@ -502,6 +505,7 @@ func (o VpcOutput) DefaultSecurityGroupId() pulumi.StringOutput { return o.ApplyT(func(v *Vpc) pulumi.StringOutput { return v.DefaultSecurityGroupId }).(pulumi.StringOutput) } +// DHCP options id of the desired VPC. func (o VpcOutput) DhcpOptionsId() pulumi.StringOutput { return o.ApplyT(func(v *Vpc) pulumi.StringOutput { return v.DhcpOptionsId }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ec2/vpcIpam.go b/sdk/go/aws/ec2/vpcIpam.go index 53d7c82f29d..bf41f4f4a6e 100644 --- a/sdk/go/aws/ec2/vpcIpam.go +++ b/sdk/go/aws/ec2/vpcIpam.go @@ -94,6 +94,8 @@ type VpcIpam struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + Tier pulumi.StringPtrOutput `pulumi:"tier"` } // NewVpcIpam registers a new resource with the given unique name, arguments, and options. @@ -154,6 +156,8 @@ type vpcIpamState struct { // // Deprecated: Please use `tags` instead. TagsAll map[string]string `pulumi:"tagsAll"` + // specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + Tier *string `pulumi:"tier"` } type VpcIpamState struct { @@ -182,6 +186,8 @@ type VpcIpamState struct { // // Deprecated: Please use `tags` instead. TagsAll pulumi.StringMapInput + // specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + Tier pulumi.StringPtrInput } func (VpcIpamState) ElementType() reflect.Type { @@ -197,6 +203,8 @@ type vpcIpamArgs struct { OperatingRegions []VpcIpamOperatingRegion `pulumi:"operatingRegions"` // 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. Tags map[string]string `pulumi:"tags"` + // specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + Tier *string `pulumi:"tier"` } // The set of arguments for constructing a VpcIpam resource. @@ -209,6 +217,8 @@ type VpcIpamArgs struct { OperatingRegions VpcIpamOperatingRegionArrayInput // 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. Tags pulumi.StringMapInput + // specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + Tier pulumi.StringPtrInput } func (VpcIpamArgs) ElementType() reflect.Type { @@ -356,6 +366,11 @@ func (o VpcIpamOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *VpcIpam) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +// specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. +func (o VpcIpamOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VpcIpam) pulumi.StringPtrOutput { return v.Tier }).(pulumi.StringPtrOutput) +} + type VpcIpamArrayOutput struct{ *pulumi.OutputState } func (VpcIpamArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/ec2/vpnConnection.go b/sdk/go/aws/ec2/vpnConnection.go index 21f22be41c6..e7b9a0fb784 100644 --- a/sdk/go/aws/ec2/vpnConnection.go +++ b/sdk/go/aws/ec2/vpnConnection.go @@ -225,7 +225,7 @@ type VpnConnection struct { OutsideIpAddressType pulumi.StringOutput `pulumi:"outsideIpAddressType"` // The IPv4 CIDR on the AWS side of the VPN connection. RemoteIpv4NetworkCidr pulumi.StringOutput `pulumi:"remoteIpv4NetworkCidr"` - // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + // The IPv6 CIDR on the AWS side of the VPN connection. RemoteIpv6NetworkCidr pulumi.StringOutput `pulumi:"remoteIpv6NetworkCidr"` // The static routes associated with the VPN connection. Detailed below. Routes VpnConnectionRouteTypeArrayOutput `pulumi:"routes"` @@ -421,7 +421,7 @@ type vpnConnectionState struct { OutsideIpAddressType *string `pulumi:"outsideIpAddressType"` // The IPv4 CIDR on the AWS side of the VPN connection. RemoteIpv4NetworkCidr *string `pulumi:"remoteIpv4NetworkCidr"` - // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + // The IPv6 CIDR on the AWS side of the VPN connection. RemoteIpv6NetworkCidr *string `pulumi:"remoteIpv6NetworkCidr"` // The static routes associated with the VPN connection. Detailed below. Routes []VpnConnectionRouteType `pulumi:"routes"` @@ -570,7 +570,7 @@ type VpnConnectionState struct { OutsideIpAddressType pulumi.StringPtrInput // The IPv4 CIDR on the AWS side of the VPN connection. RemoteIpv4NetworkCidr pulumi.StringPtrInput - // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + // The IPv6 CIDR on the AWS side of the VPN connection. RemoteIpv6NetworkCidr pulumi.StringPtrInput // The static routes associated with the VPN connection. Detailed below. Routes VpnConnectionRouteTypeArrayInput @@ -715,7 +715,7 @@ type vpnConnectionArgs struct { OutsideIpAddressType *string `pulumi:"outsideIpAddressType"` // The IPv4 CIDR on the AWS side of the VPN connection. RemoteIpv4NetworkCidr *string `pulumi:"remoteIpv4NetworkCidr"` - // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + // The IPv6 CIDR on the AWS side of the VPN connection. RemoteIpv6NetworkCidr *string `pulumi:"remoteIpv6NetworkCidr"` // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. StaticRoutesOnly *bool `pulumi:"staticRoutesOnly"` @@ -827,7 +827,7 @@ type VpnConnectionArgs struct { OutsideIpAddressType pulumi.StringPtrInput // The IPv4 CIDR on the AWS side of the VPN connection. RemoteIpv4NetworkCidr pulumi.StringPtrInput - // The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + // The IPv6 CIDR on the AWS side of the VPN connection. RemoteIpv6NetworkCidr pulumi.StringPtrInput // Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. StaticRoutesOnly pulumi.BoolPtrInput @@ -1062,7 +1062,7 @@ func (o VpnConnectionOutput) RemoteIpv4NetworkCidr() pulumi.StringOutput { return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.RemoteIpv4NetworkCidr }).(pulumi.StringOutput) } -// The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. +// The IPv6 CIDR on the AWS side of the VPN connection. func (o VpnConnectionOutput) RemoteIpv6NetworkCidr() pulumi.StringOutput { return o.ApplyT(func(v *VpnConnection) pulumi.StringOutput { return v.RemoteIpv6NetworkCidr }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/glacier/vaultLock.go b/sdk/go/aws/glacier/vaultLock.go index 9ad6c32a889..88c931fb0aa 100644 --- a/sdk/go/aws/glacier/vaultLock.go +++ b/sdk/go/aws/glacier/vaultLock.go @@ -12,12 +12,6 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. -// -// > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `completeLock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `completeLock` argument to `true`. When changing `completeLock` to `true`, it is expected the resource will show as recreating. -// -// !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignoreDeletionError` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. -// // ## Example Usage // // ### Testing Glacier Vault Lock Policy diff --git a/sdk/go/aws/iam/groupPolicy.go b/sdk/go/aws/iam/groupPolicy.go index b6c76df279d..60570234369 100644 --- a/sdk/go/aws/iam/groupPolicy.go +++ b/sdk/go/aws/iam/groupPolicy.go @@ -14,6 +14,8 @@ import ( // Provides an IAM policy attached to a group. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // diff --git a/sdk/go/aws/iam/instanceProfile.go b/sdk/go/aws/iam/instanceProfile.go index fff6dca8c8e..5cdcc0e9dc4 100644 --- a/sdk/go/aws/iam/instanceProfile.go +++ b/sdk/go/aws/iam/instanceProfile.go @@ -13,6 +13,8 @@ import ( // Provides an IAM instance profile. // +// > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. +// // ## Example Usage // // @@ -85,7 +87,7 @@ type InstanceProfile struct { Arn pulumi.StringOutput `pulumi:"arn"` // Creation timestamp of the instance profile. CreateDate pulumi.StringOutput `pulumi:"createDate"` - // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. Name pulumi.StringOutput `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` @@ -137,7 +139,7 @@ type instanceProfileState struct { Arn *string `pulumi:"arn"` // Creation timestamp of the instance profile. CreateDate *string `pulumi:"createDate"` - // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` @@ -160,7 +162,7 @@ type InstanceProfileState struct { Arn pulumi.StringPtrInput // Creation timestamp of the instance profile. CreateDate pulumi.StringPtrInput - // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput @@ -183,7 +185,7 @@ func (InstanceProfileState) ElementType() reflect.Type { } type instanceProfileArgs struct { - // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` @@ -197,7 +199,7 @@ type instanceProfileArgs struct { // The set of arguments for constructing a InstanceProfile resource. type InstanceProfileArgs struct { - // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput @@ -306,7 +308,7 @@ func (o InstanceProfileOutput) CreateDate() pulumi.StringOutput { return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) } -// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. +// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. func (o InstanceProfileOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/iam/policy.go b/sdk/go/aws/iam/policy.go index 3aa585e6db0..abe230a6393 100644 --- a/sdk/go/aws/iam/policy.go +++ b/sdk/go/aws/iam/policy.go @@ -14,6 +14,8 @@ import ( // Provides an IAM policy. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // @@ -73,20 +75,19 @@ import ( type Policy struct { pulumi.CustomResourceState - // The ARN assigned by AWS to this policy. + // ARN assigned by AWS to this policy. Arn pulumi.StringOutput `pulumi:"arn"` // Description of the IAM policy. Description pulumi.StringPtrOutput `pulumi:"description"` - // The name of the policy. If omitted, the provider will assign a random, unique name. + // Name of the policy. If omitted, the provider will assign a random, unique name. Name pulumi.StringOutput `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` - // Path in which to create the policy. - // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + // Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. Path pulumi.StringPtrOutput `pulumi:"path"` - // The policy document. This is a JSON formatted string. + // Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide Policy pulumi.StringOutput `pulumi:"policy"` - // The policy's ID. + // Policy's ID. PolicyId pulumi.StringOutput `pulumi:"policyId"` // Map of resource tags for the IAM Policy. 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"` @@ -129,20 +130,19 @@ func GetPolicy(ctx *pulumi.Context, // Input properties used for looking up and filtering Policy resources. type policyState struct { - // The ARN assigned by AWS to this policy. + // ARN assigned by AWS to this policy. Arn *string `pulumi:"arn"` // Description of the IAM policy. Description *string `pulumi:"description"` - // The name of the policy. If omitted, the provider will assign a random, unique name. + // Name of the policy. If omitted, the provider will assign a random, unique name. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` - // Path in which to create the policy. - // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + // Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. Path *string `pulumi:"path"` - // The policy document. This is a JSON formatted string. + // Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide Policy interface{} `pulumi:"policy"` - // The policy's ID. + // Policy's ID. PolicyId *string `pulumi:"policyId"` // Map of resource tags for the IAM Policy. 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"` @@ -153,20 +153,19 @@ type policyState struct { } type PolicyState struct { - // The ARN assigned by AWS to this policy. + // ARN assigned by AWS to this policy. Arn pulumi.StringPtrInput // Description of the IAM policy. Description pulumi.StringPtrInput - // The name of the policy. If omitted, the provider will assign a random, unique name. + // Name of the policy. If omitted, the provider will assign a random, unique name. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput - // Path in which to create the policy. - // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + // Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. Path pulumi.StringPtrInput - // The policy document. This is a JSON formatted string. + // Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide Policy pulumi.Input - // The policy's ID. + // Policy's ID. PolicyId pulumi.StringPtrInput // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput @@ -183,14 +182,13 @@ func (PolicyState) ElementType() reflect.Type { type policyArgs struct { // Description of the IAM policy. Description *string `pulumi:"description"` - // The name of the policy. If omitted, the provider will assign a random, unique name. + // Name of the policy. If omitted, the provider will assign a random, unique name. Name *string `pulumi:"name"` // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix *string `pulumi:"namePrefix"` - // Path in which to create the policy. - // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + // Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. Path *string `pulumi:"path"` - // The policy document. This is a JSON formatted string. + // Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide Policy interface{} `pulumi:"policy"` // Map of resource tags for the IAM Policy. 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"` @@ -200,14 +198,13 @@ type policyArgs struct { type PolicyArgs struct { // Description of the IAM policy. Description pulumi.StringPtrInput - // The name of the policy. If omitted, the provider will assign a random, unique name. + // Name of the policy. If omitted, the provider will assign a random, unique name. Name pulumi.StringPtrInput // Creates a unique name beginning with the specified prefix. Conflicts with `name`. NamePrefix pulumi.StringPtrInput - // Path in which to create the policy. - // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + // Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. Path pulumi.StringPtrInput - // The policy document. This is a JSON formatted string. + // Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide Policy pulumi.Input // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput @@ -300,7 +297,7 @@ func (o PolicyOutput) ToPolicyOutputWithContext(ctx context.Context) PolicyOutpu return o } -// The ARN assigned by AWS to this policy. +// ARN assigned by AWS to this policy. func (o PolicyOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } @@ -310,7 +307,7 @@ func (o PolicyOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *Policy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// The name of the policy. If omitted, the provider will assign a random, unique name. +// Name of the policy. If omitted, the provider will assign a random, unique name. func (o PolicyOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } @@ -320,18 +317,17 @@ func (o PolicyOutput) NamePrefix() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) } -// Path in which to create the policy. -// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +// Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. func (o PolicyOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v *Policy) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) } -// The policy document. This is a JSON formatted string. +// Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide func (o PolicyOutput) Policy() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) } -// The policy's ID. +// Policy's ID. func (o PolicyOutput) PolicyId() pulumi.StringOutput { return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.PolicyId }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/iam/role.go b/sdk/go/aws/iam/role.go index 64485a3f19e..6e24407d8fd 100644 --- a/sdk/go/aws/iam/role.go +++ b/sdk/go/aws/iam/role.go @@ -18,6 +18,8 @@ import ( // // > **NOTE:** If you use this resource's `managedPolicyArns` argument or `inlinePolicy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `iam.PolicyAttachment`, `iam.RolePolicyAttachment`, and `iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // ### Basic Example diff --git a/sdk/go/aws/iam/rolePolicy.go b/sdk/go/aws/iam/rolePolicy.go index 53c75e738b5..13923e00c13 100644 --- a/sdk/go/aws/iam/rolePolicy.go +++ b/sdk/go/aws/iam/rolePolicy.go @@ -16,6 +16,8 @@ import ( // // > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `inlinePolicy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // diff --git a/sdk/go/aws/iam/userPolicy.go b/sdk/go/aws/iam/userPolicy.go index 136799ab865..1b3315f5d14 100644 --- a/sdk/go/aws/iam/userPolicy.go +++ b/sdk/go/aws/iam/userPolicy.go @@ -14,6 +14,8 @@ import ( // Provides an IAM policy attached to a user. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // diff --git a/sdk/go/aws/kinesis/pulumiTypes.go b/sdk/go/aws/kinesis/pulumiTypes.go index 27307c7483b..924f1472b45 100644 --- a/sdk/go/aws/kinesis/pulumiTypes.go +++ b/sdk/go/aws/kinesis/pulumiTypes.go @@ -7456,7 +7456,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigu type FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer struct { // Specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). See `orcSerDe` block below for details. OrcSerDe *FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDe `pulumi:"orcSerDe"` - // Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + // Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. ParquetSerDe *FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe `pulumi:"parquetSerDe"` } @@ -7474,7 +7474,7 @@ type FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurat type FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs struct { // Specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). See `orcSerDe` block below for details. OrcSerDe FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDePtrInput `pulumi:"orcSerDe"` - // Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + // Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. ParquetSerDe FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDePtrInput `pulumi:"parquetSerDe"` } @@ -7562,7 +7562,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigu }).(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDePtrOutput) } -// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. +// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. func (o FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOutput) ParquetSerDe() FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDePtrOutput { return o.ApplyT(func(v FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer) *FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe { return v.ParquetSerDe @@ -7603,7 +7603,7 @@ func (o FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigu }).(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDePtrOutput) } -// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. +// Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. func (o FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerPtrOutput) ParquetSerDe() FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDePtrOutput { return o.ApplyT(func(v *FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializer) *FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe { if v == nil { diff --git a/sdk/go/aws/kinesisanalyticsv2/application.go b/sdk/go/aws/kinesisanalyticsv2/application.go index 1c1a60a04af..cd46d02e310 100644 --- a/sdk/go/aws/kinesisanalyticsv2/application.go +++ b/sdk/go/aws/kinesisanalyticsv2/application.go @@ -334,7 +334,7 @@ type Application struct { LastUpdateTimestamp pulumi.StringOutput `pulumi:"lastUpdateTimestamp"` // The name of the application. Name pulumi.StringOutput `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. RuntimeEnvironment pulumi.StringOutput `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringOutput `pulumi:"serviceExecutionRole"` @@ -404,7 +404,7 @@ type applicationState struct { LastUpdateTimestamp *string `pulumi:"lastUpdateTimestamp"` // The name of the application. Name *string `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. RuntimeEnvironment *string `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole *string `pulumi:"serviceExecutionRole"` @@ -439,7 +439,7 @@ type ApplicationState struct { LastUpdateTimestamp pulumi.StringPtrInput // The name of the application. Name pulumi.StringPtrInput - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. RuntimeEnvironment pulumi.StringPtrInput // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringPtrInput @@ -472,7 +472,7 @@ type applicationArgs struct { ForceStop *bool `pulumi:"forceStop"` // The name of the application. Name *string `pulumi:"name"` - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. RuntimeEnvironment string `pulumi:"runtimeEnvironment"` // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole string `pulumi:"serviceExecutionRole"` @@ -494,7 +494,7 @@ type ApplicationArgs struct { ForceStop pulumi.BoolPtrInput // The name of the application. Name pulumi.StringPtrInput - // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. RuntimeEnvironment pulumi.StringInput // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. ServiceExecutionRole pulumi.StringInput @@ -631,7 +631,7 @@ func (o ApplicationOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. +// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. func (o ApplicationOutput) RuntimeEnvironment() pulumi.StringOutput { return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.RuntimeEnvironment }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/lakeformation/init.go b/sdk/go/aws/lakeformation/init.go index 87602f07a4f..20aa395dea3 100644 --- a/sdk/go/aws/lakeformation/init.go +++ b/sdk/go/aws/lakeformation/init.go @@ -31,6 +31,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Permissions{} case "aws:lakeformation/resource:Resource": r = &Resource{} + case "aws:lakeformation/resourceLfTag:ResourceLfTag": + r = &ResourceLfTag{} case "aws:lakeformation/resourceLfTags:ResourceLfTags": r = &ResourceLfTags{} default: @@ -71,6 +73,11 @@ func init() { "lakeformation/resource", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "lakeformation/resourceLfTag", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "lakeformation/resourceLfTags", diff --git a/sdk/go/aws/lakeformation/pulumiTypes.go b/sdk/go/aws/lakeformation/pulumiTypes.go index 42cdb0306a2..bd27134c8c3 100644 --- a/sdk/go/aws/lakeformation/pulumiTypes.go +++ b/sdk/go/aws/lakeformation/pulumiTypes.go @@ -2477,6 +2477,1067 @@ func (o PermissionsTableWithColumnsPtrOutput) Wildcard() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type ResourceLfTagDatabase struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId *string `pulumi:"catalogId"` + // Name of the database resource. Unique to the Data Catalog. + // + // The following argument is optional: + Name string `pulumi:"name"` +} + +// ResourceLfTagDatabaseInput is an input type that accepts ResourceLfTagDatabaseArgs and ResourceLfTagDatabaseOutput values. +// You can construct a concrete instance of `ResourceLfTagDatabaseInput` via: +// +// ResourceLfTagDatabaseArgs{...} +type ResourceLfTagDatabaseInput interface { + pulumi.Input + + ToResourceLfTagDatabaseOutput() ResourceLfTagDatabaseOutput + ToResourceLfTagDatabaseOutputWithContext(context.Context) ResourceLfTagDatabaseOutput +} + +type ResourceLfTagDatabaseArgs struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId pulumi.StringPtrInput `pulumi:"catalogId"` + // Name of the database resource. Unique to the Data Catalog. + // + // The following argument is optional: + Name pulumi.StringInput `pulumi:"name"` +} + +func (ResourceLfTagDatabaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagDatabase)(nil)).Elem() +} + +func (i ResourceLfTagDatabaseArgs) ToResourceLfTagDatabaseOutput() ResourceLfTagDatabaseOutput { + return i.ToResourceLfTagDatabaseOutputWithContext(context.Background()) +} + +func (i ResourceLfTagDatabaseArgs) ToResourceLfTagDatabaseOutputWithContext(ctx context.Context) ResourceLfTagDatabaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagDatabaseOutput) +} + +func (i ResourceLfTagDatabaseArgs) ToResourceLfTagDatabasePtrOutput() ResourceLfTagDatabasePtrOutput { + return i.ToResourceLfTagDatabasePtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagDatabaseArgs) ToResourceLfTagDatabasePtrOutputWithContext(ctx context.Context) ResourceLfTagDatabasePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagDatabaseOutput).ToResourceLfTagDatabasePtrOutputWithContext(ctx) +} + +// ResourceLfTagDatabasePtrInput is an input type that accepts ResourceLfTagDatabaseArgs, ResourceLfTagDatabasePtr and ResourceLfTagDatabasePtrOutput values. +// You can construct a concrete instance of `ResourceLfTagDatabasePtrInput` via: +// +// ResourceLfTagDatabaseArgs{...} +// +// or: +// +// nil +type ResourceLfTagDatabasePtrInput interface { + pulumi.Input + + ToResourceLfTagDatabasePtrOutput() ResourceLfTagDatabasePtrOutput + ToResourceLfTagDatabasePtrOutputWithContext(context.Context) ResourceLfTagDatabasePtrOutput +} + +type resourceLfTagDatabasePtrType ResourceLfTagDatabaseArgs + +func ResourceLfTagDatabasePtr(v *ResourceLfTagDatabaseArgs) ResourceLfTagDatabasePtrInput { + return (*resourceLfTagDatabasePtrType)(v) +} + +func (*resourceLfTagDatabasePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagDatabase)(nil)).Elem() +} + +func (i *resourceLfTagDatabasePtrType) ToResourceLfTagDatabasePtrOutput() ResourceLfTagDatabasePtrOutput { + return i.ToResourceLfTagDatabasePtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagDatabasePtrType) ToResourceLfTagDatabasePtrOutputWithContext(ctx context.Context) ResourceLfTagDatabasePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagDatabasePtrOutput) +} + +type ResourceLfTagDatabaseOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagDatabaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagDatabase)(nil)).Elem() +} + +func (o ResourceLfTagDatabaseOutput) ToResourceLfTagDatabaseOutput() ResourceLfTagDatabaseOutput { + return o +} + +func (o ResourceLfTagDatabaseOutput) ToResourceLfTagDatabaseOutputWithContext(ctx context.Context) ResourceLfTagDatabaseOutput { + return o +} + +func (o ResourceLfTagDatabaseOutput) ToResourceLfTagDatabasePtrOutput() ResourceLfTagDatabasePtrOutput { + return o.ToResourceLfTagDatabasePtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagDatabaseOutput) ToResourceLfTagDatabasePtrOutputWithContext(ctx context.Context) ResourceLfTagDatabasePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagDatabase) *ResourceLfTagDatabase { + return &v + }).(ResourceLfTagDatabasePtrOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagDatabaseOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagDatabase) *string { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +// Name of the database resource. Unique to the Data Catalog. +// +// The following argument is optional: +func (o ResourceLfTagDatabaseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagDatabase) string { return v.Name }).(pulumi.StringOutput) +} + +type ResourceLfTagDatabasePtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagDatabasePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagDatabase)(nil)).Elem() +} + +func (o ResourceLfTagDatabasePtrOutput) ToResourceLfTagDatabasePtrOutput() ResourceLfTagDatabasePtrOutput { + return o +} + +func (o ResourceLfTagDatabasePtrOutput) ToResourceLfTagDatabasePtrOutputWithContext(ctx context.Context) ResourceLfTagDatabasePtrOutput { + return o +} + +func (o ResourceLfTagDatabasePtrOutput) Elem() ResourceLfTagDatabaseOutput { + return o.ApplyT(func(v *ResourceLfTagDatabase) ResourceLfTagDatabase { + if v != nil { + return *v + } + var ret ResourceLfTagDatabase + return ret + }).(ResourceLfTagDatabaseOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagDatabasePtrOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagDatabase) *string { + if v == nil { + return nil + } + return v.CatalogId + }).(pulumi.StringPtrOutput) +} + +// Name of the database resource. Unique to the Data Catalog. +// +// The following argument is optional: +func (o ResourceLfTagDatabasePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagDatabase) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +type ResourceLfTagLfTag struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId *string `pulumi:"catalogId"` + // Key name for an existing LF-tag. + Key string `pulumi:"key"` + // Value from the possible values for the LF-tag. + // + // The following argument is optional: + Value string `pulumi:"value"` +} + +// ResourceLfTagLfTagInput is an input type that accepts ResourceLfTagLfTagArgs and ResourceLfTagLfTagOutput values. +// You can construct a concrete instance of `ResourceLfTagLfTagInput` via: +// +// ResourceLfTagLfTagArgs{...} +type ResourceLfTagLfTagInput interface { + pulumi.Input + + ToResourceLfTagLfTagOutput() ResourceLfTagLfTagOutput + ToResourceLfTagLfTagOutputWithContext(context.Context) ResourceLfTagLfTagOutput +} + +type ResourceLfTagLfTagArgs struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId pulumi.StringPtrInput `pulumi:"catalogId"` + // Key name for an existing LF-tag. + Key pulumi.StringInput `pulumi:"key"` + // Value from the possible values for the LF-tag. + // + // The following argument is optional: + Value pulumi.StringInput `pulumi:"value"` +} + +func (ResourceLfTagLfTagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagLfTag)(nil)).Elem() +} + +func (i ResourceLfTagLfTagArgs) ToResourceLfTagLfTagOutput() ResourceLfTagLfTagOutput { + return i.ToResourceLfTagLfTagOutputWithContext(context.Background()) +} + +func (i ResourceLfTagLfTagArgs) ToResourceLfTagLfTagOutputWithContext(ctx context.Context) ResourceLfTagLfTagOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagLfTagOutput) +} + +func (i ResourceLfTagLfTagArgs) ToResourceLfTagLfTagPtrOutput() ResourceLfTagLfTagPtrOutput { + return i.ToResourceLfTagLfTagPtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagLfTagArgs) ToResourceLfTagLfTagPtrOutputWithContext(ctx context.Context) ResourceLfTagLfTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagLfTagOutput).ToResourceLfTagLfTagPtrOutputWithContext(ctx) +} + +// ResourceLfTagLfTagPtrInput is an input type that accepts ResourceLfTagLfTagArgs, ResourceLfTagLfTagPtr and ResourceLfTagLfTagPtrOutput values. +// You can construct a concrete instance of `ResourceLfTagLfTagPtrInput` via: +// +// ResourceLfTagLfTagArgs{...} +// +// or: +// +// nil +type ResourceLfTagLfTagPtrInput interface { + pulumi.Input + + ToResourceLfTagLfTagPtrOutput() ResourceLfTagLfTagPtrOutput + ToResourceLfTagLfTagPtrOutputWithContext(context.Context) ResourceLfTagLfTagPtrOutput +} + +type resourceLfTagLfTagPtrType ResourceLfTagLfTagArgs + +func ResourceLfTagLfTagPtr(v *ResourceLfTagLfTagArgs) ResourceLfTagLfTagPtrInput { + return (*resourceLfTagLfTagPtrType)(v) +} + +func (*resourceLfTagLfTagPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagLfTag)(nil)).Elem() +} + +func (i *resourceLfTagLfTagPtrType) ToResourceLfTagLfTagPtrOutput() ResourceLfTagLfTagPtrOutput { + return i.ToResourceLfTagLfTagPtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagLfTagPtrType) ToResourceLfTagLfTagPtrOutputWithContext(ctx context.Context) ResourceLfTagLfTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagLfTagPtrOutput) +} + +type ResourceLfTagLfTagOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagLfTagOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagLfTag)(nil)).Elem() +} + +func (o ResourceLfTagLfTagOutput) ToResourceLfTagLfTagOutput() ResourceLfTagLfTagOutput { + return o +} + +func (o ResourceLfTagLfTagOutput) ToResourceLfTagLfTagOutputWithContext(ctx context.Context) ResourceLfTagLfTagOutput { + return o +} + +func (o ResourceLfTagLfTagOutput) ToResourceLfTagLfTagPtrOutput() ResourceLfTagLfTagPtrOutput { + return o.ToResourceLfTagLfTagPtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagLfTagOutput) ToResourceLfTagLfTagPtrOutputWithContext(ctx context.Context) ResourceLfTagLfTagPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagLfTag) *ResourceLfTagLfTag { + return &v + }).(ResourceLfTagLfTagPtrOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagLfTagOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagLfTag) *string { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +// Key name for an existing LF-tag. +func (o ResourceLfTagLfTagOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagLfTag) string { return v.Key }).(pulumi.StringOutput) +} + +// Value from the possible values for the LF-tag. +// +// The following argument is optional: +func (o ResourceLfTagLfTagOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagLfTag) string { return v.Value }).(pulumi.StringOutput) +} + +type ResourceLfTagLfTagPtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagLfTagPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagLfTag)(nil)).Elem() +} + +func (o ResourceLfTagLfTagPtrOutput) ToResourceLfTagLfTagPtrOutput() ResourceLfTagLfTagPtrOutput { + return o +} + +func (o ResourceLfTagLfTagPtrOutput) ToResourceLfTagLfTagPtrOutputWithContext(ctx context.Context) ResourceLfTagLfTagPtrOutput { + return o +} + +func (o ResourceLfTagLfTagPtrOutput) Elem() ResourceLfTagLfTagOutput { + return o.ApplyT(func(v *ResourceLfTagLfTag) ResourceLfTagLfTag { + if v != nil { + return *v + } + var ret ResourceLfTagLfTag + return ret + }).(ResourceLfTagLfTagOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagLfTagPtrOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagLfTag) *string { + if v == nil { + return nil + } + return v.CatalogId + }).(pulumi.StringPtrOutput) +} + +// Key name for an existing LF-tag. +func (o ResourceLfTagLfTagPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagLfTag) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Value from the possible values for the LF-tag. +// +// The following argument is optional: +func (o ResourceLfTagLfTagPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagLfTag) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type ResourceLfTagTable struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId *string `pulumi:"catalogId"` + // Name of the database for the table. Unique to a Data Catalog. + DatabaseName string `pulumi:"databaseName"` + // Name of the table. + Name *string `pulumi:"name"` + // Whether to use a wildcard representing every table under a database. Defaults to `false`. + // + // The following arguments are optional: + Wildcard *bool `pulumi:"wildcard"` +} + +// ResourceLfTagTableInput is an input type that accepts ResourceLfTagTableArgs and ResourceLfTagTableOutput values. +// You can construct a concrete instance of `ResourceLfTagTableInput` via: +// +// ResourceLfTagTableArgs{...} +type ResourceLfTagTableInput interface { + pulumi.Input + + ToResourceLfTagTableOutput() ResourceLfTagTableOutput + ToResourceLfTagTableOutputWithContext(context.Context) ResourceLfTagTableOutput +} + +type ResourceLfTagTableArgs struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId pulumi.StringPtrInput `pulumi:"catalogId"` + // Name of the database for the table. Unique to a Data Catalog. + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + // Name of the table. + Name pulumi.StringPtrInput `pulumi:"name"` + // Whether to use a wildcard representing every table under a database. Defaults to `false`. + // + // The following arguments are optional: + Wildcard pulumi.BoolPtrInput `pulumi:"wildcard"` +} + +func (ResourceLfTagTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTable)(nil)).Elem() +} + +func (i ResourceLfTagTableArgs) ToResourceLfTagTableOutput() ResourceLfTagTableOutput { + return i.ToResourceLfTagTableOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableArgs) ToResourceLfTagTableOutputWithContext(ctx context.Context) ResourceLfTagTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableOutput) +} + +func (i ResourceLfTagTableArgs) ToResourceLfTagTablePtrOutput() ResourceLfTagTablePtrOutput { + return i.ToResourceLfTagTablePtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableArgs) ToResourceLfTagTablePtrOutputWithContext(ctx context.Context) ResourceLfTagTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableOutput).ToResourceLfTagTablePtrOutputWithContext(ctx) +} + +// ResourceLfTagTablePtrInput is an input type that accepts ResourceLfTagTableArgs, ResourceLfTagTablePtr and ResourceLfTagTablePtrOutput values. +// You can construct a concrete instance of `ResourceLfTagTablePtrInput` via: +// +// ResourceLfTagTableArgs{...} +// +// or: +// +// nil +type ResourceLfTagTablePtrInput interface { + pulumi.Input + + ToResourceLfTagTablePtrOutput() ResourceLfTagTablePtrOutput + ToResourceLfTagTablePtrOutputWithContext(context.Context) ResourceLfTagTablePtrOutput +} + +type resourceLfTagTablePtrType ResourceLfTagTableArgs + +func ResourceLfTagTablePtr(v *ResourceLfTagTableArgs) ResourceLfTagTablePtrInput { + return (*resourceLfTagTablePtrType)(v) +} + +func (*resourceLfTagTablePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTable)(nil)).Elem() +} + +func (i *resourceLfTagTablePtrType) ToResourceLfTagTablePtrOutput() ResourceLfTagTablePtrOutput { + return i.ToResourceLfTagTablePtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagTablePtrType) ToResourceLfTagTablePtrOutputWithContext(ctx context.Context) ResourceLfTagTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTablePtrOutput) +} + +type ResourceLfTagTableOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTable)(nil)).Elem() +} + +func (o ResourceLfTagTableOutput) ToResourceLfTagTableOutput() ResourceLfTagTableOutput { + return o +} + +func (o ResourceLfTagTableOutput) ToResourceLfTagTableOutputWithContext(ctx context.Context) ResourceLfTagTableOutput { + return o +} + +func (o ResourceLfTagTableOutput) ToResourceLfTagTablePtrOutput() ResourceLfTagTablePtrOutput { + return o.ToResourceLfTagTablePtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagTableOutput) ToResourceLfTagTablePtrOutputWithContext(ctx context.Context) ResourceLfTagTablePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagTable) *ResourceLfTagTable { + return &v + }).(ResourceLfTagTablePtrOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagTableOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagTable) *string { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +// Name of the database for the table. Unique to a Data Catalog. +func (o ResourceLfTagTableOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagTable) string { return v.DatabaseName }).(pulumi.StringOutput) +} + +// Name of the table. +func (o ResourceLfTagTableOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagTable) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Whether to use a wildcard representing every table under a database. Defaults to `false`. +// +// The following arguments are optional: +func (o ResourceLfTagTableOutput) Wildcard() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ResourceLfTagTable) *bool { return v.Wildcard }).(pulumi.BoolPtrOutput) +} + +type ResourceLfTagTablePtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTablePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTable)(nil)).Elem() +} + +func (o ResourceLfTagTablePtrOutput) ToResourceLfTagTablePtrOutput() ResourceLfTagTablePtrOutput { + return o +} + +func (o ResourceLfTagTablePtrOutput) ToResourceLfTagTablePtrOutputWithContext(ctx context.Context) ResourceLfTagTablePtrOutput { + return o +} + +func (o ResourceLfTagTablePtrOutput) Elem() ResourceLfTagTableOutput { + return o.ApplyT(func(v *ResourceLfTagTable) ResourceLfTagTable { + if v != nil { + return *v + } + var ret ResourceLfTagTable + return ret + }).(ResourceLfTagTableOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagTablePtrOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTable) *string { + if v == nil { + return nil + } + return v.CatalogId + }).(pulumi.StringPtrOutput) +} + +// Name of the database for the table. Unique to a Data Catalog. +func (o ResourceLfTagTablePtrOutput) DatabaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTable) *string { + if v == nil { + return nil + } + return &v.DatabaseName + }).(pulumi.StringPtrOutput) +} + +// Name of the table. +func (o ResourceLfTagTablePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTable) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Whether to use a wildcard representing every table under a database. Defaults to `false`. +// +// The following arguments are optional: +func (o ResourceLfTagTablePtrOutput) Wildcard() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTable) *bool { + if v == nil { + return nil + } + return v.Wildcard + }).(pulumi.BoolPtrOutput) +} + +type ResourceLfTagTableWithColumns struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId *string `pulumi:"catalogId"` + // Set of column names for the table. + ColumnNames []string `pulumi:"columnNames"` + // Option to add column wildcard. See Column Wildcard for more details. + ColumnWildcard *ResourceLfTagTableWithColumnsColumnWildcard `pulumi:"columnWildcard"` + // Name of the database for the table with columns resource. Unique to the Data Catalog. + DatabaseName string `pulumi:"databaseName"` + // Name of the table resource. + // + // The following arguments are optional: + Name string `pulumi:"name"` +} + +// ResourceLfTagTableWithColumnsInput is an input type that accepts ResourceLfTagTableWithColumnsArgs and ResourceLfTagTableWithColumnsOutput values. +// You can construct a concrete instance of `ResourceLfTagTableWithColumnsInput` via: +// +// ResourceLfTagTableWithColumnsArgs{...} +type ResourceLfTagTableWithColumnsInput interface { + pulumi.Input + + ToResourceLfTagTableWithColumnsOutput() ResourceLfTagTableWithColumnsOutput + ToResourceLfTagTableWithColumnsOutputWithContext(context.Context) ResourceLfTagTableWithColumnsOutput +} + +type ResourceLfTagTableWithColumnsArgs struct { + // Identifier for the Data Catalog. By default, it is the account ID of the caller. + CatalogId pulumi.StringPtrInput `pulumi:"catalogId"` + // Set of column names for the table. + ColumnNames pulumi.StringArrayInput `pulumi:"columnNames"` + // Option to add column wildcard. See Column Wildcard for more details. + ColumnWildcard ResourceLfTagTableWithColumnsColumnWildcardPtrInput `pulumi:"columnWildcard"` + // Name of the database for the table with columns resource. Unique to the Data Catalog. + DatabaseName pulumi.StringInput `pulumi:"databaseName"` + // Name of the table resource. + // + // The following arguments are optional: + Name pulumi.StringInput `pulumi:"name"` +} + +func (ResourceLfTagTableWithColumnsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTableWithColumns)(nil)).Elem() +} + +func (i ResourceLfTagTableWithColumnsArgs) ToResourceLfTagTableWithColumnsOutput() ResourceLfTagTableWithColumnsOutput { + return i.ToResourceLfTagTableWithColumnsOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableWithColumnsArgs) ToResourceLfTagTableWithColumnsOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsOutput) +} + +func (i ResourceLfTagTableWithColumnsArgs) ToResourceLfTagTableWithColumnsPtrOutput() ResourceLfTagTableWithColumnsPtrOutput { + return i.ToResourceLfTagTableWithColumnsPtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableWithColumnsArgs) ToResourceLfTagTableWithColumnsPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsOutput).ToResourceLfTagTableWithColumnsPtrOutputWithContext(ctx) +} + +// ResourceLfTagTableWithColumnsPtrInput is an input type that accepts ResourceLfTagTableWithColumnsArgs, ResourceLfTagTableWithColumnsPtr and ResourceLfTagTableWithColumnsPtrOutput values. +// You can construct a concrete instance of `ResourceLfTagTableWithColumnsPtrInput` via: +// +// ResourceLfTagTableWithColumnsArgs{...} +// +// or: +// +// nil +type ResourceLfTagTableWithColumnsPtrInput interface { + pulumi.Input + + ToResourceLfTagTableWithColumnsPtrOutput() ResourceLfTagTableWithColumnsPtrOutput + ToResourceLfTagTableWithColumnsPtrOutputWithContext(context.Context) ResourceLfTagTableWithColumnsPtrOutput +} + +type resourceLfTagTableWithColumnsPtrType ResourceLfTagTableWithColumnsArgs + +func ResourceLfTagTableWithColumnsPtr(v *ResourceLfTagTableWithColumnsArgs) ResourceLfTagTableWithColumnsPtrInput { + return (*resourceLfTagTableWithColumnsPtrType)(v) +} + +func (*resourceLfTagTableWithColumnsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTableWithColumns)(nil)).Elem() +} + +func (i *resourceLfTagTableWithColumnsPtrType) ToResourceLfTagTableWithColumnsPtrOutput() ResourceLfTagTableWithColumnsPtrOutput { + return i.ToResourceLfTagTableWithColumnsPtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagTableWithColumnsPtrType) ToResourceLfTagTableWithColumnsPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsPtrOutput) +} + +type ResourceLfTagTableWithColumnsOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTableWithColumnsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTableWithColumns)(nil)).Elem() +} + +func (o ResourceLfTagTableWithColumnsOutput) ToResourceLfTagTableWithColumnsOutput() ResourceLfTagTableWithColumnsOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsOutput) ToResourceLfTagTableWithColumnsOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsOutput) ToResourceLfTagTableWithColumnsPtrOutput() ResourceLfTagTableWithColumnsPtrOutput { + return o.ToResourceLfTagTableWithColumnsPtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagTableWithColumnsOutput) ToResourceLfTagTableWithColumnsPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagTableWithColumns) *ResourceLfTagTableWithColumns { + return &v + }).(ResourceLfTagTableWithColumnsPtrOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagTableWithColumnsOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumns) *string { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +// Set of column names for the table. +func (o ResourceLfTagTableWithColumnsOutput) ColumnNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumns) []string { return v.ColumnNames }).(pulumi.StringArrayOutput) +} + +// Option to add column wildcard. See Column Wildcard for more details. +func (o ResourceLfTagTableWithColumnsOutput) ColumnWildcard() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumns) *ResourceLfTagTableWithColumnsColumnWildcard { + return v.ColumnWildcard + }).(ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) +} + +// Name of the database for the table with columns resource. Unique to the Data Catalog. +func (o ResourceLfTagTableWithColumnsOutput) DatabaseName() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumns) string { return v.DatabaseName }).(pulumi.StringOutput) +} + +// Name of the table resource. +// +// The following arguments are optional: +func (o ResourceLfTagTableWithColumnsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumns) string { return v.Name }).(pulumi.StringOutput) +} + +type ResourceLfTagTableWithColumnsPtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTableWithColumnsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTableWithColumns)(nil)).Elem() +} + +func (o ResourceLfTagTableWithColumnsPtrOutput) ToResourceLfTagTableWithColumnsPtrOutput() ResourceLfTagTableWithColumnsPtrOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsPtrOutput) ToResourceLfTagTableWithColumnsPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsPtrOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsPtrOutput) Elem() ResourceLfTagTableWithColumnsOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) ResourceLfTagTableWithColumns { + if v != nil { + return *v + } + var ret ResourceLfTagTableWithColumns + return ret + }).(ResourceLfTagTableWithColumnsOutput) +} + +// Identifier for the Data Catalog. By default, it is the account ID of the caller. +func (o ResourceLfTagTableWithColumnsPtrOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) *string { + if v == nil { + return nil + } + return v.CatalogId + }).(pulumi.StringPtrOutput) +} + +// Set of column names for the table. +func (o ResourceLfTagTableWithColumnsPtrOutput) ColumnNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) []string { + if v == nil { + return nil + } + return v.ColumnNames + }).(pulumi.StringArrayOutput) +} + +// Option to add column wildcard. See Column Wildcard for more details. +func (o ResourceLfTagTableWithColumnsPtrOutput) ColumnWildcard() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) *ResourceLfTagTableWithColumnsColumnWildcard { + if v == nil { + return nil + } + return v.ColumnWildcard + }).(ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) +} + +// Name of the database for the table with columns resource. Unique to the Data Catalog. +func (o ResourceLfTagTableWithColumnsPtrOutput) DatabaseName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) *string { + if v == nil { + return nil + } + return &v.DatabaseName + }).(pulumi.StringPtrOutput) +} + +// Name of the table resource. +// +// The following arguments are optional: +func (o ResourceLfTagTableWithColumnsPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumns) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +type ResourceLfTagTableWithColumnsColumnWildcard struct { + ExcludedColumnNames []string `pulumi:"excludedColumnNames"` +} + +// ResourceLfTagTableWithColumnsColumnWildcardInput is an input type that accepts ResourceLfTagTableWithColumnsColumnWildcardArgs and ResourceLfTagTableWithColumnsColumnWildcardOutput values. +// You can construct a concrete instance of `ResourceLfTagTableWithColumnsColumnWildcardInput` via: +// +// ResourceLfTagTableWithColumnsColumnWildcardArgs{...} +type ResourceLfTagTableWithColumnsColumnWildcardInput interface { + pulumi.Input + + ToResourceLfTagTableWithColumnsColumnWildcardOutput() ResourceLfTagTableWithColumnsColumnWildcardOutput + ToResourceLfTagTableWithColumnsColumnWildcardOutputWithContext(context.Context) ResourceLfTagTableWithColumnsColumnWildcardOutput +} + +type ResourceLfTagTableWithColumnsColumnWildcardArgs struct { + ExcludedColumnNames pulumi.StringArrayInput `pulumi:"excludedColumnNames"` +} + +func (ResourceLfTagTableWithColumnsColumnWildcardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTableWithColumnsColumnWildcard)(nil)).Elem() +} + +func (i ResourceLfTagTableWithColumnsColumnWildcardArgs) ToResourceLfTagTableWithColumnsColumnWildcardOutput() ResourceLfTagTableWithColumnsColumnWildcardOutput { + return i.ToResourceLfTagTableWithColumnsColumnWildcardOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableWithColumnsColumnWildcardArgs) ToResourceLfTagTableWithColumnsColumnWildcardOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsColumnWildcardOutput) +} + +func (i ResourceLfTagTableWithColumnsColumnWildcardArgs) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutput() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return i.ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTableWithColumnsColumnWildcardArgs) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsColumnWildcardOutput).ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(ctx) +} + +// ResourceLfTagTableWithColumnsColumnWildcardPtrInput is an input type that accepts ResourceLfTagTableWithColumnsColumnWildcardArgs, ResourceLfTagTableWithColumnsColumnWildcardPtr and ResourceLfTagTableWithColumnsColumnWildcardPtrOutput values. +// You can construct a concrete instance of `ResourceLfTagTableWithColumnsColumnWildcardPtrInput` via: +// +// ResourceLfTagTableWithColumnsColumnWildcardArgs{...} +// +// or: +// +// nil +type ResourceLfTagTableWithColumnsColumnWildcardPtrInput interface { + pulumi.Input + + ToResourceLfTagTableWithColumnsColumnWildcardPtrOutput() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput + ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(context.Context) ResourceLfTagTableWithColumnsColumnWildcardPtrOutput +} + +type resourceLfTagTableWithColumnsColumnWildcardPtrType ResourceLfTagTableWithColumnsColumnWildcardArgs + +func ResourceLfTagTableWithColumnsColumnWildcardPtr(v *ResourceLfTagTableWithColumnsColumnWildcardArgs) ResourceLfTagTableWithColumnsColumnWildcardPtrInput { + return (*resourceLfTagTableWithColumnsColumnWildcardPtrType)(v) +} + +func (*resourceLfTagTableWithColumnsColumnWildcardPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTableWithColumnsColumnWildcard)(nil)).Elem() +} + +func (i *resourceLfTagTableWithColumnsColumnWildcardPtrType) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutput() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return i.ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagTableWithColumnsColumnWildcardPtrType) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) +} + +type ResourceLfTagTableWithColumnsColumnWildcardOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTableWithColumnsColumnWildcardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTableWithColumnsColumnWildcard)(nil)).Elem() +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardOutput) ToResourceLfTagTableWithColumnsColumnWildcardOutput() ResourceLfTagTableWithColumnsColumnWildcardOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardOutput) ToResourceLfTagTableWithColumnsColumnWildcardOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardOutput) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutput() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o.ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardOutput) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagTableWithColumnsColumnWildcard) *ResourceLfTagTableWithColumnsColumnWildcard { + return &v + }).(ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardOutput) ExcludedColumnNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v ResourceLfTagTableWithColumnsColumnWildcard) []string { return v.ExcludedColumnNames }).(pulumi.StringArrayOutput) +} + +type ResourceLfTagTableWithColumnsColumnWildcardPtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTableWithColumnsColumnWildcard)(nil)).Elem() +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutput() ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) ToResourceLfTagTableWithColumnsColumnWildcardPtrOutputWithContext(ctx context.Context) ResourceLfTagTableWithColumnsColumnWildcardPtrOutput { + return o +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) Elem() ResourceLfTagTableWithColumnsColumnWildcardOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumnsColumnWildcard) ResourceLfTagTableWithColumnsColumnWildcard { + if v != nil { + return *v + } + var ret ResourceLfTagTableWithColumnsColumnWildcard + return ret + }).(ResourceLfTagTableWithColumnsColumnWildcardOutput) +} + +func (o ResourceLfTagTableWithColumnsColumnWildcardPtrOutput) ExcludedColumnNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ResourceLfTagTableWithColumnsColumnWildcard) []string { + if v == nil { + return nil + } + return v.ExcludedColumnNames + }).(pulumi.StringArrayOutput) +} + +type ResourceLfTagTimeouts 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"` +} + +// ResourceLfTagTimeoutsInput is an input type that accepts ResourceLfTagTimeoutsArgs and ResourceLfTagTimeoutsOutput values. +// You can construct a concrete instance of `ResourceLfTagTimeoutsInput` via: +// +// ResourceLfTagTimeoutsArgs{...} +type ResourceLfTagTimeoutsInput interface { + pulumi.Input + + ToResourceLfTagTimeoutsOutput() ResourceLfTagTimeoutsOutput + ToResourceLfTagTimeoutsOutputWithContext(context.Context) ResourceLfTagTimeoutsOutput +} + +type ResourceLfTagTimeoutsArgs 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"` +} + +func (ResourceLfTagTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTimeouts)(nil)).Elem() +} + +func (i ResourceLfTagTimeoutsArgs) ToResourceLfTagTimeoutsOutput() ResourceLfTagTimeoutsOutput { + return i.ToResourceLfTagTimeoutsOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTimeoutsArgs) ToResourceLfTagTimeoutsOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTimeoutsOutput) +} + +func (i ResourceLfTagTimeoutsArgs) ToResourceLfTagTimeoutsPtrOutput() ResourceLfTagTimeoutsPtrOutput { + return i.ToResourceLfTagTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ResourceLfTagTimeoutsArgs) ToResourceLfTagTimeoutsPtrOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTimeoutsOutput).ToResourceLfTagTimeoutsPtrOutputWithContext(ctx) +} + +// ResourceLfTagTimeoutsPtrInput is an input type that accepts ResourceLfTagTimeoutsArgs, ResourceLfTagTimeoutsPtr and ResourceLfTagTimeoutsPtrOutput values. +// You can construct a concrete instance of `ResourceLfTagTimeoutsPtrInput` via: +// +// ResourceLfTagTimeoutsArgs{...} +// +// or: +// +// nil +type ResourceLfTagTimeoutsPtrInput interface { + pulumi.Input + + ToResourceLfTagTimeoutsPtrOutput() ResourceLfTagTimeoutsPtrOutput + ToResourceLfTagTimeoutsPtrOutputWithContext(context.Context) ResourceLfTagTimeoutsPtrOutput +} + +type resourceLfTagTimeoutsPtrType ResourceLfTagTimeoutsArgs + +func ResourceLfTagTimeoutsPtr(v *ResourceLfTagTimeoutsArgs) ResourceLfTagTimeoutsPtrInput { + return (*resourceLfTagTimeoutsPtrType)(v) +} + +func (*resourceLfTagTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTimeouts)(nil)).Elem() +} + +func (i *resourceLfTagTimeoutsPtrType) ToResourceLfTagTimeoutsPtrOutput() ResourceLfTagTimeoutsPtrOutput { + return i.ToResourceLfTagTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *resourceLfTagTimeoutsPtrType) ToResourceLfTagTimeoutsPtrOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagTimeoutsPtrOutput) +} + +type ResourceLfTagTimeoutsOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceLfTagTimeouts)(nil)).Elem() +} + +func (o ResourceLfTagTimeoutsOutput) ToResourceLfTagTimeoutsOutput() ResourceLfTagTimeoutsOutput { + return o +} + +func (o ResourceLfTagTimeoutsOutput) ToResourceLfTagTimeoutsOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsOutput { + return o +} + +func (o ResourceLfTagTimeoutsOutput) ToResourceLfTagTimeoutsPtrOutput() ResourceLfTagTimeoutsPtrOutput { + return o.ToResourceLfTagTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ResourceLfTagTimeoutsOutput) ToResourceLfTagTimeoutsPtrOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourceLfTagTimeouts) *ResourceLfTagTimeouts { + return &v + }).(ResourceLfTagTimeoutsPtrOutput) +} + +// 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 ResourceLfTagTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagTimeouts) *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 ResourceLfTagTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceLfTagTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +type ResourceLfTagTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTagTimeouts)(nil)).Elem() +} + +func (o ResourceLfTagTimeoutsPtrOutput) ToResourceLfTagTimeoutsPtrOutput() ResourceLfTagTimeoutsPtrOutput { + return o +} + +func (o ResourceLfTagTimeoutsPtrOutput) ToResourceLfTagTimeoutsPtrOutputWithContext(ctx context.Context) ResourceLfTagTimeoutsPtrOutput { + return o +} + +func (o ResourceLfTagTimeoutsPtrOutput) Elem() ResourceLfTagTimeoutsOutput { + return o.ApplyT(func(v *ResourceLfTagTimeouts) ResourceLfTagTimeouts { + if v != nil { + return *v + } + var ret ResourceLfTagTimeouts + return ret + }).(ResourceLfTagTimeoutsOutput) +} + +// 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 ResourceLfTagTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTimeouts) *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 ResourceLfTagTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTagTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + type ResourceLfTagsDatabase struct { // Identifier for the Data Catalog. By default, it is the account ID of the caller. CatalogId *string `pulumi:"catalogId"` @@ -4883,6 +5944,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PermissionsTablePtrInput)(nil)).Elem(), PermissionsTableArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PermissionsTableWithColumnsInput)(nil)).Elem(), PermissionsTableWithColumnsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PermissionsTableWithColumnsPtrInput)(nil)).Elem(), PermissionsTableWithColumnsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagDatabaseInput)(nil)).Elem(), ResourceLfTagDatabaseArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagDatabasePtrInput)(nil)).Elem(), ResourceLfTagDatabaseArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagLfTagInput)(nil)).Elem(), ResourceLfTagLfTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagLfTagPtrInput)(nil)).Elem(), ResourceLfTagLfTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTableInput)(nil)).Elem(), ResourceLfTagTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTablePtrInput)(nil)).Elem(), ResourceLfTagTableArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTableWithColumnsInput)(nil)).Elem(), ResourceLfTagTableWithColumnsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTableWithColumnsPtrInput)(nil)).Elem(), ResourceLfTagTableWithColumnsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTableWithColumnsColumnWildcardInput)(nil)).Elem(), ResourceLfTagTableWithColumnsColumnWildcardArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTableWithColumnsColumnWildcardPtrInput)(nil)).Elem(), ResourceLfTagTableWithColumnsColumnWildcardArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTimeoutsInput)(nil)).Elem(), ResourceLfTagTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagTimeoutsPtrInput)(nil)).Elem(), ResourceLfTagTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagsDatabaseInput)(nil)).Elem(), ResourceLfTagsDatabaseArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagsDatabasePtrInput)(nil)).Elem(), ResourceLfTagsDatabaseArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagsLfTagInput)(nil)).Elem(), ResourceLfTagsLfTagArgs{}) @@ -4941,6 +6014,18 @@ func init() { pulumi.RegisterOutputType(PermissionsTablePtrOutput{}) pulumi.RegisterOutputType(PermissionsTableWithColumnsOutput{}) pulumi.RegisterOutputType(PermissionsTableWithColumnsPtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagDatabaseOutput{}) + pulumi.RegisterOutputType(ResourceLfTagDatabasePtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagLfTagOutput{}) + pulumi.RegisterOutputType(ResourceLfTagLfTagPtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTableOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTablePtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTableWithColumnsOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTableWithColumnsPtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTableWithColumnsColumnWildcardOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTableWithColumnsColumnWildcardPtrOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTimeoutsOutput{}) + pulumi.RegisterOutputType(ResourceLfTagTimeoutsPtrOutput{}) pulumi.RegisterOutputType(ResourceLfTagsDatabaseOutput{}) pulumi.RegisterOutputType(ResourceLfTagsDatabasePtrOutput{}) pulumi.RegisterOutputType(ResourceLfTagsLfTagOutput{}) diff --git a/sdk/go/aws/lakeformation/resourceLfTag.go b/sdk/go/aws/lakeformation/resourceLfTag.go new file mode 100644 index 00000000000..d95d921a3a2 --- /dev/null +++ b/sdk/go/aws/lakeformation/resourceLfTag.go @@ -0,0 +1,348 @@ +// 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 lakeformation + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS Lake Formation Resource LF Tag. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lakeformation" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lakeformation.NewResourceLfTag(ctx, "example", &lakeformation.ResourceLfTagArgs{ +// Database: &lakeformation.ResourceLfTagDatabaseArgs{ +// Name: pulumi.Any(exampleAwsGlueCatalogDatabase.Name), +// }, +// LfTag: &lakeformation.ResourceLfTagLfTagArgs{ +// Key: pulumi.Any(exampleAwsLakeformationLfTag.Key), +// Value: pulumi.String("stowe"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// You cannot import this resource. +type ResourceLfTag struct { + pulumi.CustomResourceState + + // Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + CatalogId pulumi.StringPtrOutput `pulumi:"catalogId"` + // Configuration block for a database resource. See Database for more details. + Database ResourceLfTagDatabasePtrOutput `pulumi:"database"` + // Set of LF-tags to attach to the resource. See LF Tag for more details. + // + // Exactly one of the following is required: + LfTag ResourceLfTagLfTagPtrOutput `pulumi:"lfTag"` + // Configuration block for a table resource. See Table for more details. + Table ResourceLfTagTablePtrOutput `pulumi:"table"` + // Configuration block for a table with columns resource. See Table With Columns for more details. + // + // The following arguments are optional: + TableWithColumns ResourceLfTagTableWithColumnsPtrOutput `pulumi:"tableWithColumns"` + Timeouts ResourceLfTagTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewResourceLfTag registers a new resource with the given unique name, arguments, and options. +func NewResourceLfTag(ctx *pulumi.Context, + name string, args *ResourceLfTagArgs, opts ...pulumi.ResourceOption) (*ResourceLfTag, error) { + if args == nil { + args = &ResourceLfTagArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource ResourceLfTag + err := ctx.RegisterResource("aws:lakeformation/resourceLfTag:ResourceLfTag", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResourceLfTag gets an existing ResourceLfTag 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 GetResourceLfTag(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResourceLfTagState, opts ...pulumi.ResourceOption) (*ResourceLfTag, error) { + var resource ResourceLfTag + err := ctx.ReadResource("aws:lakeformation/resourceLfTag:ResourceLfTag", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResourceLfTag resources. +type resourceLfTagState struct { + // Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + CatalogId *string `pulumi:"catalogId"` + // Configuration block for a database resource. See Database for more details. + Database *ResourceLfTagDatabase `pulumi:"database"` + // Set of LF-tags to attach to the resource. See LF Tag for more details. + // + // Exactly one of the following is required: + LfTag *ResourceLfTagLfTag `pulumi:"lfTag"` + // Configuration block for a table resource. See Table for more details. + Table *ResourceLfTagTable `pulumi:"table"` + // Configuration block for a table with columns resource. See Table With Columns for more details. + // + // The following arguments are optional: + TableWithColumns *ResourceLfTagTableWithColumns `pulumi:"tableWithColumns"` + Timeouts *ResourceLfTagTimeouts `pulumi:"timeouts"` +} + +type ResourceLfTagState struct { + // Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + CatalogId pulumi.StringPtrInput + // Configuration block for a database resource. See Database for more details. + Database ResourceLfTagDatabasePtrInput + // Set of LF-tags to attach to the resource. See LF Tag for more details. + // + // Exactly one of the following is required: + LfTag ResourceLfTagLfTagPtrInput + // Configuration block for a table resource. See Table for more details. + Table ResourceLfTagTablePtrInput + // Configuration block for a table with columns resource. See Table With Columns for more details. + // + // The following arguments are optional: + TableWithColumns ResourceLfTagTableWithColumnsPtrInput + Timeouts ResourceLfTagTimeoutsPtrInput +} + +func (ResourceLfTagState) ElementType() reflect.Type { + return reflect.TypeOf((*resourceLfTagState)(nil)).Elem() +} + +type resourceLfTagArgs struct { + // Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + CatalogId *string `pulumi:"catalogId"` + // Configuration block for a database resource. See Database for more details. + Database *ResourceLfTagDatabase `pulumi:"database"` + // Set of LF-tags to attach to the resource. See LF Tag for more details. + // + // Exactly one of the following is required: + LfTag *ResourceLfTagLfTag `pulumi:"lfTag"` + // Configuration block for a table resource. See Table for more details. + Table *ResourceLfTagTable `pulumi:"table"` + // Configuration block for a table with columns resource. See Table With Columns for more details. + // + // The following arguments are optional: + TableWithColumns *ResourceLfTagTableWithColumns `pulumi:"tableWithColumns"` + Timeouts *ResourceLfTagTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a ResourceLfTag resource. +type ResourceLfTagArgs struct { + // Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + CatalogId pulumi.StringPtrInput + // Configuration block for a database resource. See Database for more details. + Database ResourceLfTagDatabasePtrInput + // Set of LF-tags to attach to the resource. See LF Tag for more details. + // + // Exactly one of the following is required: + LfTag ResourceLfTagLfTagPtrInput + // Configuration block for a table resource. See Table for more details. + Table ResourceLfTagTablePtrInput + // Configuration block for a table with columns resource. See Table With Columns for more details. + // + // The following arguments are optional: + TableWithColumns ResourceLfTagTableWithColumnsPtrInput + Timeouts ResourceLfTagTimeoutsPtrInput +} + +func (ResourceLfTagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resourceLfTagArgs)(nil)).Elem() +} + +type ResourceLfTagInput interface { + pulumi.Input + + ToResourceLfTagOutput() ResourceLfTagOutput + ToResourceLfTagOutputWithContext(ctx context.Context) ResourceLfTagOutput +} + +func (*ResourceLfTag) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTag)(nil)).Elem() +} + +func (i *ResourceLfTag) ToResourceLfTagOutput() ResourceLfTagOutput { + return i.ToResourceLfTagOutputWithContext(context.Background()) +} + +func (i *ResourceLfTag) ToResourceLfTagOutputWithContext(ctx context.Context) ResourceLfTagOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagOutput) +} + +// ResourceLfTagArrayInput is an input type that accepts ResourceLfTagArray and ResourceLfTagArrayOutput values. +// You can construct a concrete instance of `ResourceLfTagArrayInput` via: +// +// ResourceLfTagArray{ ResourceLfTagArgs{...} } +type ResourceLfTagArrayInput interface { + pulumi.Input + + ToResourceLfTagArrayOutput() ResourceLfTagArrayOutput + ToResourceLfTagArrayOutputWithContext(context.Context) ResourceLfTagArrayOutput +} + +type ResourceLfTagArray []ResourceLfTagInput + +func (ResourceLfTagArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceLfTag)(nil)).Elem() +} + +func (i ResourceLfTagArray) ToResourceLfTagArrayOutput() ResourceLfTagArrayOutput { + return i.ToResourceLfTagArrayOutputWithContext(context.Background()) +} + +func (i ResourceLfTagArray) ToResourceLfTagArrayOutputWithContext(ctx context.Context) ResourceLfTagArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagArrayOutput) +} + +// ResourceLfTagMapInput is an input type that accepts ResourceLfTagMap and ResourceLfTagMapOutput values. +// You can construct a concrete instance of `ResourceLfTagMapInput` via: +// +// ResourceLfTagMap{ "key": ResourceLfTagArgs{...} } +type ResourceLfTagMapInput interface { + pulumi.Input + + ToResourceLfTagMapOutput() ResourceLfTagMapOutput + ToResourceLfTagMapOutputWithContext(context.Context) ResourceLfTagMapOutput +} + +type ResourceLfTagMap map[string]ResourceLfTagInput + +func (ResourceLfTagMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceLfTag)(nil)).Elem() +} + +func (i ResourceLfTagMap) ToResourceLfTagMapOutput() ResourceLfTagMapOutput { + return i.ToResourceLfTagMapOutputWithContext(context.Background()) +} + +func (i ResourceLfTagMap) ToResourceLfTagMapOutputWithContext(ctx context.Context) ResourceLfTagMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceLfTagMapOutput) +} + +type ResourceLfTagOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourceLfTag)(nil)).Elem() +} + +func (o ResourceLfTagOutput) ToResourceLfTagOutput() ResourceLfTagOutput { + return o +} + +func (o ResourceLfTagOutput) ToResourceLfTagOutputWithContext(ctx context.Context) ResourceLfTagOutput { + return o +} + +// Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. +func (o ResourceLfTagOutput) CatalogId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourceLfTag) pulumi.StringPtrOutput { return v.CatalogId }).(pulumi.StringPtrOutput) +} + +// Configuration block for a database resource. See Database for more details. +func (o ResourceLfTagOutput) Database() ResourceLfTagDatabasePtrOutput { + return o.ApplyT(func(v *ResourceLfTag) ResourceLfTagDatabasePtrOutput { return v.Database }).(ResourceLfTagDatabasePtrOutput) +} + +// Set of LF-tags to attach to the resource. See LF Tag for more details. +// +// Exactly one of the following is required: +func (o ResourceLfTagOutput) LfTag() ResourceLfTagLfTagPtrOutput { + return o.ApplyT(func(v *ResourceLfTag) ResourceLfTagLfTagPtrOutput { return v.LfTag }).(ResourceLfTagLfTagPtrOutput) +} + +// Configuration block for a table resource. See Table for more details. +func (o ResourceLfTagOutput) Table() ResourceLfTagTablePtrOutput { + return o.ApplyT(func(v *ResourceLfTag) ResourceLfTagTablePtrOutput { return v.Table }).(ResourceLfTagTablePtrOutput) +} + +// Configuration block for a table with columns resource. See Table With Columns for more details. +// +// The following arguments are optional: +func (o ResourceLfTagOutput) TableWithColumns() ResourceLfTagTableWithColumnsPtrOutput { + return o.ApplyT(func(v *ResourceLfTag) ResourceLfTagTableWithColumnsPtrOutput { return v.TableWithColumns }).(ResourceLfTagTableWithColumnsPtrOutput) +} + +func (o ResourceLfTagOutput) Timeouts() ResourceLfTagTimeoutsPtrOutput { + return o.ApplyT(func(v *ResourceLfTag) ResourceLfTagTimeoutsPtrOutput { return v.Timeouts }).(ResourceLfTagTimeoutsPtrOutput) +} + +type ResourceLfTagArrayOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResourceLfTag)(nil)).Elem() +} + +func (o ResourceLfTagArrayOutput) ToResourceLfTagArrayOutput() ResourceLfTagArrayOutput { + return o +} + +func (o ResourceLfTagArrayOutput) ToResourceLfTagArrayOutputWithContext(ctx context.Context) ResourceLfTagArrayOutput { + return o +} + +func (o ResourceLfTagArrayOutput) Index(i pulumi.IntInput) ResourceLfTagOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResourceLfTag { + return vs[0].([]*ResourceLfTag)[vs[1].(int)] + }).(ResourceLfTagOutput) +} + +type ResourceLfTagMapOutput struct{ *pulumi.OutputState } + +func (ResourceLfTagMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResourceLfTag)(nil)).Elem() +} + +func (o ResourceLfTagMapOutput) ToResourceLfTagMapOutput() ResourceLfTagMapOutput { + return o +} + +func (o ResourceLfTagMapOutput) ToResourceLfTagMapOutputWithContext(ctx context.Context) ResourceLfTagMapOutput { + return o +} + +func (o ResourceLfTagMapOutput) MapIndex(k pulumi.StringInput) ResourceLfTagOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResourceLfTag { + return vs[0].(map[string]*ResourceLfTag)[vs[1].(string)] + }).(ResourceLfTagOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagInput)(nil)).Elem(), &ResourceLfTag{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagArrayInput)(nil)).Elem(), ResourceLfTagArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResourceLfTagMapInput)(nil)).Elem(), ResourceLfTagMap{}) + pulumi.RegisterOutputType(ResourceLfTagOutput{}) + pulumi.RegisterOutputType(ResourceLfTagArrayOutput{}) + pulumi.RegisterOutputType(ResourceLfTagMapOutput{}) +} diff --git a/sdk/go/aws/m2/application.go b/sdk/go/aws/m2/application.go new file mode 100644 index 00000000000..4e8ee30debf --- /dev/null +++ b/sdk/go/aws/m2/application.go @@ -0,0 +1,452 @@ +// 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 m2 + +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 Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/m2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := m2.NewApplication(ctx, "example", &m2.ApplicationArgs{ +// Name: pulumi.String("Example"), +// EngineType: pulumi.String("bluage"), +// Definition: &m2.ApplicationDefinitionArgs{ +// Content: pulumi.String(fmt.Sprintf(`{ +// "definition": { +// "listeners": [ +// { +// "port": 8196, +// "type": "http" +// } +// ], +// "ba-application": { +// "app-location": "%v/PlanetsDemo-v1.zip" +// } +// }, +// "source-locations": [ +// { +// "source-id": "s3-source", +// "source-type": "s3", +// "properties": { +// "s3-bucket": "example-bucket", +// "s3-key-prefix": "v1" +// } +// } +// ], +// "template-version": "2.0" +// } +// +// `, s3_source)), +// +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: +// +// ```sh +// $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 +// ``` +type Application struct { + pulumi.CustomResourceState + + // Id of the Application. + ApplicationId pulumi.StringOutput `pulumi:"applicationId"` + // ARN of the Application. + Arn pulumi.StringOutput `pulumi:"arn"` + // Current version of the application deployed. + CurrentVersion pulumi.IntOutput `pulumi:"currentVersion"` + // The application definition for this application. You can specify either inline JSON or an S3 bucket location. + Definition ApplicationDefinitionPtrOutput `pulumi:"definition"` + // Description of the application. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Engine type must be `microfocus | bluage`. + EngineType pulumi.StringOutput `pulumi:"engineType"` + // KMS Key to use for the Application. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // Unique identifier of the application. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // ARN of role for application to use to access AWS resources. + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` + // A map of tags assigned to the WorkSpaces Connection Alias. 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"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts ApplicationTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewApplication registers a new resource with the given unique name, arguments, and options. +func NewApplication(ctx *pulumi.Context, + name string, args *ApplicationArgs, opts ...pulumi.ResourceOption) (*Application, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EngineType == nil { + return nil, errors.New("invalid value for required argument 'EngineType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Application + err := ctx.RegisterResource("aws:m2/application:Application", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetApplication gets an existing Application 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 GetApplication(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ApplicationState, opts ...pulumi.ResourceOption) (*Application, error) { + var resource Application + err := ctx.ReadResource("aws:m2/application:Application", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Application resources. +type applicationState struct { + // Id of the Application. + ApplicationId *string `pulumi:"applicationId"` + // ARN of the Application. + Arn *string `pulumi:"arn"` + // Current version of the application deployed. + CurrentVersion *int `pulumi:"currentVersion"` + // The application definition for this application. You can specify either inline JSON or an S3 bucket location. + Definition *ApplicationDefinition `pulumi:"definition"` + // Description of the application. + Description *string `pulumi:"description"` + // Engine type must be `microfocus | bluage`. + EngineType *string `pulumi:"engineType"` + // KMS Key to use for the Application. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Unique identifier of the application. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // ARN of role for application to use to access AWS resources. + RoleArn *string `pulumi:"roleArn"` + // A map of tags assigned to the WorkSpaces Connection Alias. 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"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *ApplicationTimeouts `pulumi:"timeouts"` +} + +type ApplicationState struct { + // Id of the Application. + ApplicationId pulumi.StringPtrInput + // ARN of the Application. + Arn pulumi.StringPtrInput + // Current version of the application deployed. + CurrentVersion pulumi.IntPtrInput + // The application definition for this application. You can specify either inline JSON or an S3 bucket location. + Definition ApplicationDefinitionPtrInput + // Description of the application. + Description pulumi.StringPtrInput + // Engine type must be `microfocus | bluage`. + EngineType pulumi.StringPtrInput + // KMS Key to use for the Application. + KmsKeyId pulumi.StringPtrInput + // Unique identifier of the application. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // ARN of role for application to use to access AWS resources. + RoleArn pulumi.StringPtrInput + // A map of tags assigned to the WorkSpaces Connection Alias. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + Timeouts ApplicationTimeoutsPtrInput +} + +func (ApplicationState) ElementType() reflect.Type { + return reflect.TypeOf((*applicationState)(nil)).Elem() +} + +type applicationArgs struct { + // The application definition for this application. You can specify either inline JSON or an S3 bucket location. + Definition *ApplicationDefinition `pulumi:"definition"` + // Description of the application. + Description *string `pulumi:"description"` + // Engine type must be `microfocus | bluage`. + EngineType string `pulumi:"engineType"` + // KMS Key to use for the Application. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Unique identifier of the application. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // ARN of role for application to use to access AWS resources. + RoleArn *string `pulumi:"roleArn"` + // A map of tags assigned to the WorkSpaces Connection Alias. 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 *ApplicationTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a Application resource. +type ApplicationArgs struct { + // The application definition for this application. You can specify either inline JSON or an S3 bucket location. + Definition ApplicationDefinitionPtrInput + // Description of the application. + Description pulumi.StringPtrInput + // Engine type must be `microfocus | bluage`. + EngineType pulumi.StringInput + // KMS Key to use for the Application. + KmsKeyId pulumi.StringPtrInput + // Unique identifier of the application. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // ARN of role for application to use to access AWS resources. + RoleArn pulumi.StringPtrInput + // A map of tags assigned to the WorkSpaces Connection Alias. 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 ApplicationTimeoutsPtrInput +} + +func (ApplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*applicationArgs)(nil)).Elem() +} + +type ApplicationInput interface { + pulumi.Input + + ToApplicationOutput() ApplicationOutput + ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput +} + +func (*Application) ElementType() reflect.Type { + return reflect.TypeOf((**Application)(nil)).Elem() +} + +func (i *Application) ToApplicationOutput() ApplicationOutput { + return i.ToApplicationOutputWithContext(context.Background()) +} + +func (i *Application) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationOutput) +} + +// ApplicationArrayInput is an input type that accepts ApplicationArray and ApplicationArrayOutput values. +// You can construct a concrete instance of `ApplicationArrayInput` via: +// +// ApplicationArray{ ApplicationArgs{...} } +type ApplicationArrayInput interface { + pulumi.Input + + ToApplicationArrayOutput() ApplicationArrayOutput + ToApplicationArrayOutputWithContext(context.Context) ApplicationArrayOutput +} + +type ApplicationArray []ApplicationInput + +func (ApplicationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Application)(nil)).Elem() +} + +func (i ApplicationArray) ToApplicationArrayOutput() ApplicationArrayOutput { + return i.ToApplicationArrayOutputWithContext(context.Background()) +} + +func (i ApplicationArray) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationArrayOutput) +} + +// ApplicationMapInput is an input type that accepts ApplicationMap and ApplicationMapOutput values. +// You can construct a concrete instance of `ApplicationMapInput` via: +// +// ApplicationMap{ "key": ApplicationArgs{...} } +type ApplicationMapInput interface { + pulumi.Input + + ToApplicationMapOutput() ApplicationMapOutput + ToApplicationMapOutputWithContext(context.Context) ApplicationMapOutput +} + +type ApplicationMap map[string]ApplicationInput + +func (ApplicationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Application)(nil)).Elem() +} + +func (i ApplicationMap) ToApplicationMapOutput() ApplicationMapOutput { + return i.ToApplicationMapOutputWithContext(context.Background()) +} + +func (i ApplicationMap) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationMapOutput) +} + +type ApplicationOutput struct{ *pulumi.OutputState } + +func (ApplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Application)(nil)).Elem() +} + +func (o ApplicationOutput) ToApplicationOutput() ApplicationOutput { + return o +} + +func (o ApplicationOutput) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput { + return o +} + +// Id of the Application. +func (o ApplicationOutput) ApplicationId() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput) +} + +// ARN of the Application. +func (o ApplicationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Current version of the application deployed. +func (o ApplicationOutput) CurrentVersion() pulumi.IntOutput { + return o.ApplyT(func(v *Application) pulumi.IntOutput { return v.CurrentVersion }).(pulumi.IntOutput) +} + +// The application definition for this application. You can specify either inline JSON or an S3 bucket location. +func (o ApplicationOutput) Definition() ApplicationDefinitionPtrOutput { + return o.ApplyT(func(v *Application) ApplicationDefinitionPtrOutput { return v.Definition }).(ApplicationDefinitionPtrOutput) +} + +// Description of the application. +func (o ApplicationOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Engine type must be `microfocus | bluage`. +func (o ApplicationOutput) EngineType() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.EngineType }).(pulumi.StringOutput) +} + +// KMS Key to use for the Application. +func (o ApplicationOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// Unique identifier of the application. +// +// The following arguments are optional: +func (o ApplicationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// ARN of role for application to use to access AWS resources. +func (o ApplicationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// A map of tags assigned to the WorkSpaces Connection Alias. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ApplicationOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ApplicationOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o ApplicationOutput) Timeouts() ApplicationTimeoutsPtrOutput { + return o.ApplyT(func(v *Application) ApplicationTimeoutsPtrOutput { return v.Timeouts }).(ApplicationTimeoutsPtrOutput) +} + +type ApplicationArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Application)(nil)).Elem() +} + +func (o ApplicationArrayOutput) ToApplicationArrayOutput() ApplicationArrayOutput { + return o +} + +func (o ApplicationArrayOutput) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput { + return o +} + +func (o ApplicationArrayOutput) Index(i pulumi.IntInput) ApplicationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Application { + return vs[0].([]*Application)[vs[1].(int)] + }).(ApplicationOutput) +} + +type ApplicationMapOutput struct{ *pulumi.OutputState } + +func (ApplicationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Application)(nil)).Elem() +} + +func (o ApplicationMapOutput) ToApplicationMapOutput() ApplicationMapOutput { + return o +} + +func (o ApplicationMapOutput) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput { + return o +} + +func (o ApplicationMapOutput) MapIndex(k pulumi.StringInput) ApplicationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Application { + return vs[0].(map[string]*Application)[vs[1].(string)] + }).(ApplicationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInput)(nil)).Elem(), &Application{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationArrayInput)(nil)).Elem(), ApplicationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationMapInput)(nil)).Elem(), ApplicationMap{}) + pulumi.RegisterOutputType(ApplicationOutput{}) + pulumi.RegisterOutputType(ApplicationArrayOutput{}) + pulumi.RegisterOutputType(ApplicationMapOutput{}) +} diff --git a/sdk/go/aws/m2/deployment.go b/sdk/go/aws/m2/deployment.go new file mode 100644 index 00000000000..a3bb2e31f7c --- /dev/null +++ b/sdk/go/aws/m2/deployment.go @@ -0,0 +1,339 @@ +// 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 m2 + +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 Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/m2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := m2.NewDeployment(ctx, "test", &m2.DeploymentArgs{ +// EnvironmentId: pulumi.String("01234567890abcdef012345678"), +// ApplicationId: pulumi.String("34567890abcdef012345678012"), +// ApplicationVersion: pulumi.Int(1), +// Start: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: +// +// ```sh +// $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID +// ``` +type Deployment struct { + pulumi.CustomResourceState + + // Application to deploy. + ApplicationId pulumi.StringOutput `pulumi:"applicationId"` + // Version to application to deploy + ApplicationVersion pulumi.IntOutput `pulumi:"applicationVersion"` + DeploymentId pulumi.StringOutput `pulumi:"deploymentId"` + // Environment to deploy application to. + EnvironmentId pulumi.StringOutput `pulumi:"environmentId"` + ForceStop pulumi.BoolPtrOutput `pulumi:"forceStop"` + // Start the application once deployed. + Start pulumi.BoolOutput `pulumi:"start"` + Timeouts DeploymentTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewDeployment registers a new resource with the given unique name, arguments, and options. +func NewDeployment(ctx *pulumi.Context, + name string, args *DeploymentArgs, opts ...pulumi.ResourceOption) (*Deployment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ApplicationId == nil { + return nil, errors.New("invalid value for required argument 'ApplicationId'") + } + if args.ApplicationVersion == nil { + return nil, errors.New("invalid value for required argument 'ApplicationVersion'") + } + if args.EnvironmentId == nil { + return nil, errors.New("invalid value for required argument 'EnvironmentId'") + } + if args.Start == nil { + return nil, errors.New("invalid value for required argument 'Start'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Deployment + err := ctx.RegisterResource("aws:m2/deployment:Deployment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeployment gets an existing Deployment 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 GetDeployment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeploymentState, opts ...pulumi.ResourceOption) (*Deployment, error) { + var resource Deployment + err := ctx.ReadResource("aws:m2/deployment:Deployment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Deployment resources. +type deploymentState struct { + // Application to deploy. + ApplicationId *string `pulumi:"applicationId"` + // Version to application to deploy + ApplicationVersion *int `pulumi:"applicationVersion"` + DeploymentId *string `pulumi:"deploymentId"` + // Environment to deploy application to. + EnvironmentId *string `pulumi:"environmentId"` + ForceStop *bool `pulumi:"forceStop"` + // Start the application once deployed. + Start *bool `pulumi:"start"` + Timeouts *DeploymentTimeouts `pulumi:"timeouts"` +} + +type DeploymentState struct { + // Application to deploy. + ApplicationId pulumi.StringPtrInput + // Version to application to deploy + ApplicationVersion pulumi.IntPtrInput + DeploymentId pulumi.StringPtrInput + // Environment to deploy application to. + EnvironmentId pulumi.StringPtrInput + ForceStop pulumi.BoolPtrInput + // Start the application once deployed. + Start pulumi.BoolPtrInput + Timeouts DeploymentTimeoutsPtrInput +} + +func (DeploymentState) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentState)(nil)).Elem() +} + +type deploymentArgs struct { + // Application to deploy. + ApplicationId string `pulumi:"applicationId"` + // Version to application to deploy + ApplicationVersion int `pulumi:"applicationVersion"` + // Environment to deploy application to. + EnvironmentId string `pulumi:"environmentId"` + ForceStop *bool `pulumi:"forceStop"` + // Start the application once deployed. + Start bool `pulumi:"start"` + Timeouts *DeploymentTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a Deployment resource. +type DeploymentArgs struct { + // Application to deploy. + ApplicationId pulumi.StringInput + // Version to application to deploy + ApplicationVersion pulumi.IntInput + // Environment to deploy application to. + EnvironmentId pulumi.StringInput + ForceStop pulumi.BoolPtrInput + // Start the application once deployed. + Start pulumi.BoolInput + Timeouts DeploymentTimeoutsPtrInput +} + +func (DeploymentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentArgs)(nil)).Elem() +} + +type DeploymentInput interface { + pulumi.Input + + ToDeploymentOutput() DeploymentOutput + ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput +} + +func (*Deployment) ElementType() reflect.Type { + return reflect.TypeOf((**Deployment)(nil)).Elem() +} + +func (i *Deployment) ToDeploymentOutput() DeploymentOutput { + return i.ToDeploymentOutputWithContext(context.Background()) +} + +func (i *Deployment) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentOutput) +} + +// DeploymentArrayInput is an input type that accepts DeploymentArray and DeploymentArrayOutput values. +// You can construct a concrete instance of `DeploymentArrayInput` via: +// +// DeploymentArray{ DeploymentArgs{...} } +type DeploymentArrayInput interface { + pulumi.Input + + ToDeploymentArrayOutput() DeploymentArrayOutput + ToDeploymentArrayOutputWithContext(context.Context) DeploymentArrayOutput +} + +type DeploymentArray []DeploymentInput + +func (DeploymentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Deployment)(nil)).Elem() +} + +func (i DeploymentArray) ToDeploymentArrayOutput() DeploymentArrayOutput { + return i.ToDeploymentArrayOutputWithContext(context.Background()) +} + +func (i DeploymentArray) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentArrayOutput) +} + +// DeploymentMapInput is an input type that accepts DeploymentMap and DeploymentMapOutput values. +// You can construct a concrete instance of `DeploymentMapInput` via: +// +// DeploymentMap{ "key": DeploymentArgs{...} } +type DeploymentMapInput interface { + pulumi.Input + + ToDeploymentMapOutput() DeploymentMapOutput + ToDeploymentMapOutputWithContext(context.Context) DeploymentMapOutput +} + +type DeploymentMap map[string]DeploymentInput + +func (DeploymentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Deployment)(nil)).Elem() +} + +func (i DeploymentMap) ToDeploymentMapOutput() DeploymentMapOutput { + return i.ToDeploymentMapOutputWithContext(context.Background()) +} + +func (i DeploymentMap) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentMapOutput) +} + +type DeploymentOutput struct{ *pulumi.OutputState } + +func (DeploymentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Deployment)(nil)).Elem() +} + +func (o DeploymentOutput) ToDeploymentOutput() DeploymentOutput { + return o +} + +func (o DeploymentOutput) ToDeploymentOutputWithContext(ctx context.Context) DeploymentOutput { + return o +} + +// Application to deploy. +func (o DeploymentOutput) ApplicationId() pulumi.StringOutput { + return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.ApplicationId }).(pulumi.StringOutput) +} + +// Version to application to deploy +func (o DeploymentOutput) ApplicationVersion() pulumi.IntOutput { + return o.ApplyT(func(v *Deployment) pulumi.IntOutput { return v.ApplicationVersion }).(pulumi.IntOutput) +} + +func (o DeploymentOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.DeploymentId }).(pulumi.StringOutput) +} + +// Environment to deploy application to. +func (o DeploymentOutput) EnvironmentId() pulumi.StringOutput { + return o.ApplyT(func(v *Deployment) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput) +} + +func (o DeploymentOutput) ForceStop() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Deployment) pulumi.BoolPtrOutput { return v.ForceStop }).(pulumi.BoolPtrOutput) +} + +// Start the application once deployed. +func (o DeploymentOutput) Start() pulumi.BoolOutput { + return o.ApplyT(func(v *Deployment) pulumi.BoolOutput { return v.Start }).(pulumi.BoolOutput) +} + +func (o DeploymentOutput) Timeouts() DeploymentTimeoutsPtrOutput { + return o.ApplyT(func(v *Deployment) DeploymentTimeoutsPtrOutput { return v.Timeouts }).(DeploymentTimeoutsPtrOutput) +} + +type DeploymentArrayOutput struct{ *pulumi.OutputState } + +func (DeploymentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Deployment)(nil)).Elem() +} + +func (o DeploymentArrayOutput) ToDeploymentArrayOutput() DeploymentArrayOutput { + return o +} + +func (o DeploymentArrayOutput) ToDeploymentArrayOutputWithContext(ctx context.Context) DeploymentArrayOutput { + return o +} + +func (o DeploymentArrayOutput) Index(i pulumi.IntInput) DeploymentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Deployment { + return vs[0].([]*Deployment)[vs[1].(int)] + }).(DeploymentOutput) +} + +type DeploymentMapOutput struct{ *pulumi.OutputState } + +func (DeploymentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Deployment)(nil)).Elem() +} + +func (o DeploymentMapOutput) ToDeploymentMapOutput() DeploymentMapOutput { + return o +} + +func (o DeploymentMapOutput) ToDeploymentMapOutputWithContext(ctx context.Context) DeploymentMapOutput { + return o +} + +func (o DeploymentMapOutput) MapIndex(k pulumi.StringInput) DeploymentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Deployment { + return vs[0].(map[string]*Deployment)[vs[1].(string)] + }).(DeploymentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentInput)(nil)).Elem(), &Deployment{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentArrayInput)(nil)).Elem(), DeploymentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentMapInput)(nil)).Elem(), DeploymentMap{}) + pulumi.RegisterOutputType(DeploymentOutput{}) + pulumi.RegisterOutputType(DeploymentArrayOutput{}) + pulumi.RegisterOutputType(DeploymentMapOutput{}) +} diff --git a/sdk/go/aws/m2/environment.go b/sdk/go/aws/m2/environment.go new file mode 100644 index 00000000000..2d6b1026caa --- /dev/null +++ b/sdk/go/aws/m2/environment.go @@ -0,0 +1,483 @@ +// 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 m2 + +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 Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). +// +// ## Example Usage +// +// ## Import +// +// Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: +// +// ```sh +// $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 +// ``` +type Environment struct { + pulumi.CustomResourceState + + ApplyChangesDuringMaintenanceWindow pulumi.BoolPtrOutput `pulumi:"applyChangesDuringMaintenanceWindow"` + // ARN of the Environment. + Arn pulumi.StringOutput `pulumi:"arn"` + Description pulumi.StringPtrOutput `pulumi:"description"` + // Engine type must be `microfocus` or `bluage`. + EngineType pulumi.StringOutput `pulumi:"engineType"` + // The specific version of the engine for the Environment. + EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // The id of the Environment. + EnvironmentId pulumi.StringOutput `pulumi:"environmentId"` + // Force update the environment even if applications are running. + ForceUpdate pulumi.BoolPtrOutput `pulumi:"forceUpdate"` + HighAvailabilityConfig EnvironmentHighAvailabilityConfigPtrOutput `pulumi:"highAvailabilityConfig"` + // M2 Instance Type. + // + // The following arguments are optional: + InstanceType pulumi.StringOutput `pulumi:"instanceType"` + // ARN of the KMS key to use for the Environment. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // ARN of the load balancer created by the Environment. + LoadBalancerArn pulumi.StringOutput `pulumi:"loadBalancerArn"` + // Name of the runtime environment. Must be unique within the account. + Name pulumi.StringOutput `pulumi:"name"` + // Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"` + // Allow applications deployed to this environment to be publicly accessible. + PubliclyAccessible pulumi.BoolOutput `pulumi:"publiclyAccessible"` + // List of security group ids. + SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` + StorageConfiguration EnvironmentStorageConfigurationPtrOutput `pulumi:"storageConfiguration"` + // List of subnet ids to deploy environment to. + SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` + // Key-value tags for the place index. 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 EnvironmentTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewEnvironment registers a new resource with the given unique name, arguments, and options. +func NewEnvironment(ctx *pulumi.Context, + name string, args *EnvironmentArgs, opts ...pulumi.ResourceOption) (*Environment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EngineType == nil { + return nil, errors.New("invalid value for required argument 'EngineType'") + } + if args.InstanceType == nil { + return nil, errors.New("invalid value for required argument 'InstanceType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Environment + err := ctx.RegisterResource("aws:m2/environment:Environment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEnvironment gets an existing Environment 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 GetEnvironment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EnvironmentState, opts ...pulumi.ResourceOption) (*Environment, error) { + var resource Environment + err := ctx.ReadResource("aws:m2/environment:Environment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Environment resources. +type environmentState struct { + ApplyChangesDuringMaintenanceWindow *bool `pulumi:"applyChangesDuringMaintenanceWindow"` + // ARN of the Environment. + Arn *string `pulumi:"arn"` + Description *string `pulumi:"description"` + // Engine type must be `microfocus` or `bluage`. + EngineType *string `pulumi:"engineType"` + // The specific version of the engine for the Environment. + EngineVersion *string `pulumi:"engineVersion"` + // The id of the Environment. + EnvironmentId *string `pulumi:"environmentId"` + // Force update the environment even if applications are running. + ForceUpdate *bool `pulumi:"forceUpdate"` + HighAvailabilityConfig *EnvironmentHighAvailabilityConfig `pulumi:"highAvailabilityConfig"` + // M2 Instance Type. + // + // The following arguments are optional: + InstanceType *string `pulumi:"instanceType"` + // ARN of the KMS key to use for the Environment. + KmsKeyId *string `pulumi:"kmsKeyId"` + // ARN of the load balancer created by the Environment. + LoadBalancerArn *string `pulumi:"loadBalancerArn"` + // Name of the runtime environment. Must be unique within the account. + Name *string `pulumi:"name"` + // Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"` + // Allow applications deployed to this environment to be publicly accessible. + PubliclyAccessible *bool `pulumi:"publiclyAccessible"` + // List of security group ids. + SecurityGroupIds []string `pulumi:"securityGroupIds"` + StorageConfiguration *EnvironmentStorageConfiguration `pulumi:"storageConfiguration"` + // List of subnet ids to deploy environment to. + SubnetIds []string `pulumi:"subnetIds"` + // Key-value tags for the place index. 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 *EnvironmentTimeouts `pulumi:"timeouts"` +} + +type EnvironmentState struct { + ApplyChangesDuringMaintenanceWindow pulumi.BoolPtrInput + // ARN of the Environment. + Arn pulumi.StringPtrInput + Description pulumi.StringPtrInput + // Engine type must be `microfocus` or `bluage`. + EngineType pulumi.StringPtrInput + // The specific version of the engine for the Environment. + EngineVersion pulumi.StringPtrInput + // The id of the Environment. + EnvironmentId pulumi.StringPtrInput + // Force update the environment even if applications are running. + ForceUpdate pulumi.BoolPtrInput + HighAvailabilityConfig EnvironmentHighAvailabilityConfigPtrInput + // M2 Instance Type. + // + // The following arguments are optional: + InstanceType pulumi.StringPtrInput + // ARN of the KMS key to use for the Environment. + KmsKeyId pulumi.StringPtrInput + // ARN of the load balancer created by the Environment. + LoadBalancerArn pulumi.StringPtrInput + // Name of the runtime environment. Must be unique within the account. + Name pulumi.StringPtrInput + // Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + PreferredMaintenanceWindow pulumi.StringPtrInput + // Allow applications deployed to this environment to be publicly accessible. + PubliclyAccessible pulumi.BoolPtrInput + // List of security group ids. + SecurityGroupIds pulumi.StringArrayInput + StorageConfiguration EnvironmentStorageConfigurationPtrInput + // List of subnet ids to deploy environment to. + SubnetIds pulumi.StringArrayInput + // Key-value tags for the place index. 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 EnvironmentTimeoutsPtrInput +} + +func (EnvironmentState) ElementType() reflect.Type { + return reflect.TypeOf((*environmentState)(nil)).Elem() +} + +type environmentArgs struct { + ApplyChangesDuringMaintenanceWindow *bool `pulumi:"applyChangesDuringMaintenanceWindow"` + Description *string `pulumi:"description"` + // Engine type must be `microfocus` or `bluage`. + EngineType string `pulumi:"engineType"` + // The specific version of the engine for the Environment. + EngineVersion *string `pulumi:"engineVersion"` + // Force update the environment even if applications are running. + ForceUpdate *bool `pulumi:"forceUpdate"` + HighAvailabilityConfig *EnvironmentHighAvailabilityConfig `pulumi:"highAvailabilityConfig"` + // M2 Instance Type. + // + // The following arguments are optional: + InstanceType string `pulumi:"instanceType"` + // ARN of the KMS key to use for the Environment. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Name of the runtime environment. Must be unique within the account. + Name *string `pulumi:"name"` + // Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"` + // Allow applications deployed to this environment to be publicly accessible. + PubliclyAccessible *bool `pulumi:"publiclyAccessible"` + // List of security group ids. + SecurityGroupIds []string `pulumi:"securityGroupIds"` + StorageConfiguration *EnvironmentStorageConfiguration `pulumi:"storageConfiguration"` + // List of subnet ids to deploy environment to. + SubnetIds []string `pulumi:"subnetIds"` + // Key-value tags for the place index. 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 *EnvironmentTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a Environment resource. +type EnvironmentArgs struct { + ApplyChangesDuringMaintenanceWindow pulumi.BoolPtrInput + Description pulumi.StringPtrInput + // Engine type must be `microfocus` or `bluage`. + EngineType pulumi.StringInput + // The specific version of the engine for the Environment. + EngineVersion pulumi.StringPtrInput + // Force update the environment even if applications are running. + ForceUpdate pulumi.BoolPtrInput + HighAvailabilityConfig EnvironmentHighAvailabilityConfigPtrInput + // M2 Instance Type. + // + // The following arguments are optional: + InstanceType pulumi.StringInput + // ARN of the KMS key to use for the Environment. + KmsKeyId pulumi.StringPtrInput + // Name of the runtime environment. Must be unique within the account. + Name pulumi.StringPtrInput + // Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + PreferredMaintenanceWindow pulumi.StringPtrInput + // Allow applications deployed to this environment to be publicly accessible. + PubliclyAccessible pulumi.BoolPtrInput + // List of security group ids. + SecurityGroupIds pulumi.StringArrayInput + StorageConfiguration EnvironmentStorageConfigurationPtrInput + // List of subnet ids to deploy environment to. + SubnetIds pulumi.StringArrayInput + // Key-value tags for the place index. 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 EnvironmentTimeoutsPtrInput +} + +func (EnvironmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*environmentArgs)(nil)).Elem() +} + +type EnvironmentInput interface { + pulumi.Input + + ToEnvironmentOutput() EnvironmentOutput + ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput +} + +func (*Environment) ElementType() reflect.Type { + return reflect.TypeOf((**Environment)(nil)).Elem() +} + +func (i *Environment) ToEnvironmentOutput() EnvironmentOutput { + return i.ToEnvironmentOutputWithContext(context.Background()) +} + +func (i *Environment) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentOutput) +} + +// EnvironmentArrayInput is an input type that accepts EnvironmentArray and EnvironmentArrayOutput values. +// You can construct a concrete instance of `EnvironmentArrayInput` via: +// +// EnvironmentArray{ EnvironmentArgs{...} } +type EnvironmentArrayInput interface { + pulumi.Input + + ToEnvironmentArrayOutput() EnvironmentArrayOutput + ToEnvironmentArrayOutputWithContext(context.Context) EnvironmentArrayOutput +} + +type EnvironmentArray []EnvironmentInput + +func (EnvironmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Environment)(nil)).Elem() +} + +func (i EnvironmentArray) ToEnvironmentArrayOutput() EnvironmentArrayOutput { + return i.ToEnvironmentArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentArray) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentArrayOutput) +} + +// EnvironmentMapInput is an input type that accepts EnvironmentMap and EnvironmentMapOutput values. +// You can construct a concrete instance of `EnvironmentMapInput` via: +// +// EnvironmentMap{ "key": EnvironmentArgs{...} } +type EnvironmentMapInput interface { + pulumi.Input + + ToEnvironmentMapOutput() EnvironmentMapOutput + ToEnvironmentMapOutputWithContext(context.Context) EnvironmentMapOutput +} + +type EnvironmentMap map[string]EnvironmentInput + +func (EnvironmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Environment)(nil)).Elem() +} + +func (i EnvironmentMap) ToEnvironmentMapOutput() EnvironmentMapOutput { + return i.ToEnvironmentMapOutputWithContext(context.Background()) +} + +func (i EnvironmentMap) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentMapOutput) +} + +type EnvironmentOutput struct{ *pulumi.OutputState } + +func (EnvironmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Environment)(nil)).Elem() +} + +func (o EnvironmentOutput) ToEnvironmentOutput() EnvironmentOutput { + return o +} + +func (o EnvironmentOutput) ToEnvironmentOutputWithContext(ctx context.Context) EnvironmentOutput { + return o +} + +func (o EnvironmentOutput) ApplyChangesDuringMaintenanceWindow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Environment) pulumi.BoolPtrOutput { return v.ApplyChangesDuringMaintenanceWindow }).(pulumi.BoolPtrOutput) +} + +// ARN of the Environment. +func (o EnvironmentOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o EnvironmentOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Engine type must be `microfocus` or `bluage`. +func (o EnvironmentOutput) EngineType() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EngineType }).(pulumi.StringOutput) +} + +// The specific version of the engine for the Environment. +func (o EnvironmentOutput) EngineVersion() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) +} + +// The id of the Environment. +func (o EnvironmentOutput) EnvironmentId() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput) +} + +// Force update the environment even if applications are running. +func (o EnvironmentOutput) ForceUpdate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Environment) pulumi.BoolPtrOutput { return v.ForceUpdate }).(pulumi.BoolPtrOutput) +} + +func (o EnvironmentOutput) HighAvailabilityConfig() EnvironmentHighAvailabilityConfigPtrOutput { + return o.ApplyT(func(v *Environment) EnvironmentHighAvailabilityConfigPtrOutput { return v.HighAvailabilityConfig }).(EnvironmentHighAvailabilityConfigPtrOutput) +} + +// M2 Instance Type. +// +// The following arguments are optional: +func (o EnvironmentOutput) InstanceType() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.InstanceType }).(pulumi.StringOutput) +} + +// ARN of the KMS key to use for the Environment. +func (o EnvironmentOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Environment) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// ARN of the load balancer created by the Environment. +func (o EnvironmentOutput) LoadBalancerArn() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.LoadBalancerArn }).(pulumi.StringOutput) +} + +// Name of the runtime environment. Must be unique within the account. +func (o EnvironmentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. +func (o EnvironmentOutput) PreferredMaintenanceWindow() pulumi.StringOutput { + return o.ApplyT(func(v *Environment) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput) +} + +// Allow applications deployed to this environment to be publicly accessible. +func (o EnvironmentOutput) PubliclyAccessible() pulumi.BoolOutput { + return o.ApplyT(func(v *Environment) pulumi.BoolOutput { return v.PubliclyAccessible }).(pulumi.BoolOutput) +} + +// List of security group ids. +func (o EnvironmentOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) +} + +func (o EnvironmentOutput) StorageConfiguration() EnvironmentStorageConfigurationPtrOutput { + return o.ApplyT(func(v *Environment) EnvironmentStorageConfigurationPtrOutput { return v.StorageConfiguration }).(EnvironmentStorageConfigurationPtrOutput) +} + +// List of subnet ids to deploy environment to. +func (o EnvironmentOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Environment) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) +} + +// Key-value tags for the place index. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EnvironmentOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Deprecated: Please use `tags` instead. +func (o EnvironmentOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Environment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o EnvironmentOutput) Timeouts() EnvironmentTimeoutsPtrOutput { + return o.ApplyT(func(v *Environment) EnvironmentTimeoutsPtrOutput { return v.Timeouts }).(EnvironmentTimeoutsPtrOutput) +} + +type EnvironmentArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Environment)(nil)).Elem() +} + +func (o EnvironmentArrayOutput) ToEnvironmentArrayOutput() EnvironmentArrayOutput { + return o +} + +func (o EnvironmentArrayOutput) ToEnvironmentArrayOutputWithContext(ctx context.Context) EnvironmentArrayOutput { + return o +} + +func (o EnvironmentArrayOutput) Index(i pulumi.IntInput) EnvironmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Environment { + return vs[0].([]*Environment)[vs[1].(int)] + }).(EnvironmentOutput) +} + +type EnvironmentMapOutput struct{ *pulumi.OutputState } + +func (EnvironmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Environment)(nil)).Elem() +} + +func (o EnvironmentMapOutput) ToEnvironmentMapOutput() EnvironmentMapOutput { + return o +} + +func (o EnvironmentMapOutput) ToEnvironmentMapOutputWithContext(ctx context.Context) EnvironmentMapOutput { + return o +} + +func (o EnvironmentMapOutput) MapIndex(k pulumi.StringInput) EnvironmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Environment { + return vs[0].(map[string]*Environment)[vs[1].(string)] + }).(EnvironmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentInput)(nil)).Elem(), &Environment{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentArrayInput)(nil)).Elem(), EnvironmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentMapInput)(nil)).Elem(), EnvironmentMap{}) + pulumi.RegisterOutputType(EnvironmentOutput{}) + pulumi.RegisterOutputType(EnvironmentArrayOutput{}) + pulumi.RegisterOutputType(EnvironmentMapOutput{}) +} diff --git a/sdk/go/aws/m2/init.go b/sdk/go/aws/m2/init.go new file mode 100644 index 00000000000..f6147b6e7b2 --- /dev/null +++ b/sdk/go/aws/m2/init.go @@ -0,0 +1,58 @@ +// 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 m2 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:m2/application:Application": + r = &Application{} + case "aws:m2/deployment:Deployment": + r = &Deployment{} + case "aws:m2/environment:Environment": + r = &Environment{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "m2/application", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "m2/deployment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "m2/environment", + &module{version}, + ) +} diff --git a/sdk/go/aws/m2/pulumiTypes.go b/sdk/go/aws/m2/pulumiTypes.go new file mode 100644 index 00000000000..71213528a53 --- /dev/null +++ b/sdk/go/aws/m2/pulumiTypes.go @@ -0,0 +1,1327 @@ +// 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 m2 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type ApplicationDefinition struct { + // JSON application definition. Either this or `s3Location` must be specified. + Content *string `pulumi:"content"` + // Location of the application definition in S3. Either this or `content` must be specified. + S3Location *string `pulumi:"s3Location"` +} + +// ApplicationDefinitionInput is an input type that accepts ApplicationDefinitionArgs and ApplicationDefinitionOutput values. +// You can construct a concrete instance of `ApplicationDefinitionInput` via: +// +// ApplicationDefinitionArgs{...} +type ApplicationDefinitionInput interface { + pulumi.Input + + ToApplicationDefinitionOutput() ApplicationDefinitionOutput + ToApplicationDefinitionOutputWithContext(context.Context) ApplicationDefinitionOutput +} + +type ApplicationDefinitionArgs struct { + // JSON application definition. Either this or `s3Location` must be specified. + Content pulumi.StringPtrInput `pulumi:"content"` + // Location of the application definition in S3. Either this or `content` must be specified. + S3Location pulumi.StringPtrInput `pulumi:"s3Location"` +} + +func (ApplicationDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationDefinition)(nil)).Elem() +} + +func (i ApplicationDefinitionArgs) ToApplicationDefinitionOutput() ApplicationDefinitionOutput { + return i.ToApplicationDefinitionOutputWithContext(context.Background()) +} + +func (i ApplicationDefinitionArgs) ToApplicationDefinitionOutputWithContext(ctx context.Context) ApplicationDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinitionOutput) +} + +func (i ApplicationDefinitionArgs) ToApplicationDefinitionPtrOutput() ApplicationDefinitionPtrOutput { + return i.ToApplicationDefinitionPtrOutputWithContext(context.Background()) +} + +func (i ApplicationDefinitionArgs) ToApplicationDefinitionPtrOutputWithContext(ctx context.Context) ApplicationDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinitionOutput).ToApplicationDefinitionPtrOutputWithContext(ctx) +} + +// ApplicationDefinitionPtrInput is an input type that accepts ApplicationDefinitionArgs, ApplicationDefinitionPtr and ApplicationDefinitionPtrOutput values. +// You can construct a concrete instance of `ApplicationDefinitionPtrInput` via: +// +// ApplicationDefinitionArgs{...} +// +// or: +// +// nil +type ApplicationDefinitionPtrInput interface { + pulumi.Input + + ToApplicationDefinitionPtrOutput() ApplicationDefinitionPtrOutput + ToApplicationDefinitionPtrOutputWithContext(context.Context) ApplicationDefinitionPtrOutput +} + +type applicationDefinitionPtrType ApplicationDefinitionArgs + +func ApplicationDefinitionPtr(v *ApplicationDefinitionArgs) ApplicationDefinitionPtrInput { + return (*applicationDefinitionPtrType)(v) +} + +func (*applicationDefinitionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition)(nil)).Elem() +} + +func (i *applicationDefinitionPtrType) ToApplicationDefinitionPtrOutput() ApplicationDefinitionPtrOutput { + return i.ToApplicationDefinitionPtrOutputWithContext(context.Background()) +} + +func (i *applicationDefinitionPtrType) ToApplicationDefinitionPtrOutputWithContext(ctx context.Context) ApplicationDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinitionPtrOutput) +} + +type ApplicationDefinitionOutput struct{ *pulumi.OutputState } + +func (ApplicationDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationDefinition)(nil)).Elem() +} + +func (o ApplicationDefinitionOutput) ToApplicationDefinitionOutput() ApplicationDefinitionOutput { + return o +} + +func (o ApplicationDefinitionOutput) ToApplicationDefinitionOutputWithContext(ctx context.Context) ApplicationDefinitionOutput { + return o +} + +func (o ApplicationDefinitionOutput) ToApplicationDefinitionPtrOutput() ApplicationDefinitionPtrOutput { + return o.ToApplicationDefinitionPtrOutputWithContext(context.Background()) +} + +func (o ApplicationDefinitionOutput) ToApplicationDefinitionPtrOutputWithContext(ctx context.Context) ApplicationDefinitionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationDefinition) *ApplicationDefinition { + return &v + }).(ApplicationDefinitionPtrOutput) +} + +// JSON application definition. Either this or `s3Location` must be specified. +func (o ApplicationDefinitionOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationDefinition) *string { return v.Content }).(pulumi.StringPtrOutput) +} + +// Location of the application definition in S3. Either this or `content` must be specified. +func (o ApplicationDefinitionOutput) S3Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationDefinition) *string { return v.S3Location }).(pulumi.StringPtrOutput) +} + +type ApplicationDefinitionPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationDefinitionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition)(nil)).Elem() +} + +func (o ApplicationDefinitionPtrOutput) ToApplicationDefinitionPtrOutput() ApplicationDefinitionPtrOutput { + return o +} + +func (o ApplicationDefinitionPtrOutput) ToApplicationDefinitionPtrOutputWithContext(ctx context.Context) ApplicationDefinitionPtrOutput { + return o +} + +func (o ApplicationDefinitionPtrOutput) Elem() ApplicationDefinitionOutput { + return o.ApplyT(func(v *ApplicationDefinition) ApplicationDefinition { + if v != nil { + return *v + } + var ret ApplicationDefinition + return ret + }).(ApplicationDefinitionOutput) +} + +// JSON application definition. Either this or `s3Location` must be specified. +func (o ApplicationDefinitionPtrOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationDefinition) *string { + if v == nil { + return nil + } + return v.Content + }).(pulumi.StringPtrOutput) +} + +// Location of the application definition in S3. Either this or `content` must be specified. +func (o ApplicationDefinitionPtrOutput) S3Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationDefinition) *string { + if v == nil { + return nil + } + return v.S3Location + }).(pulumi.StringPtrOutput) +} + +type ApplicationTimeouts 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"` +} + +// ApplicationTimeoutsInput is an input type that accepts ApplicationTimeoutsArgs and ApplicationTimeoutsOutput values. +// You can construct a concrete instance of `ApplicationTimeoutsInput` via: +// +// ApplicationTimeoutsArgs{...} +type ApplicationTimeoutsInput interface { + pulumi.Input + + ToApplicationTimeoutsOutput() ApplicationTimeoutsOutput + ToApplicationTimeoutsOutputWithContext(context.Context) ApplicationTimeoutsOutput +} + +type ApplicationTimeoutsArgs 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 (ApplicationTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationTimeouts)(nil)).Elem() +} + +func (i ApplicationTimeoutsArgs) ToApplicationTimeoutsOutput() ApplicationTimeoutsOutput { + return i.ToApplicationTimeoutsOutputWithContext(context.Background()) +} + +func (i ApplicationTimeoutsArgs) ToApplicationTimeoutsOutputWithContext(ctx context.Context) ApplicationTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationTimeoutsOutput) +} + +func (i ApplicationTimeoutsArgs) ToApplicationTimeoutsPtrOutput() ApplicationTimeoutsPtrOutput { + return i.ToApplicationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i ApplicationTimeoutsArgs) ToApplicationTimeoutsPtrOutputWithContext(ctx context.Context) ApplicationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationTimeoutsOutput).ToApplicationTimeoutsPtrOutputWithContext(ctx) +} + +// ApplicationTimeoutsPtrInput is an input type that accepts ApplicationTimeoutsArgs, ApplicationTimeoutsPtr and ApplicationTimeoutsPtrOutput values. +// You can construct a concrete instance of `ApplicationTimeoutsPtrInput` via: +// +// ApplicationTimeoutsArgs{...} +// +// or: +// +// nil +type ApplicationTimeoutsPtrInput interface { + pulumi.Input + + ToApplicationTimeoutsPtrOutput() ApplicationTimeoutsPtrOutput + ToApplicationTimeoutsPtrOutputWithContext(context.Context) ApplicationTimeoutsPtrOutput +} + +type applicationTimeoutsPtrType ApplicationTimeoutsArgs + +func ApplicationTimeoutsPtr(v *ApplicationTimeoutsArgs) ApplicationTimeoutsPtrInput { + return (*applicationTimeoutsPtrType)(v) +} + +func (*applicationTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationTimeouts)(nil)).Elem() +} + +func (i *applicationTimeoutsPtrType) ToApplicationTimeoutsPtrOutput() ApplicationTimeoutsPtrOutput { + return i.ToApplicationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *applicationTimeoutsPtrType) ToApplicationTimeoutsPtrOutputWithContext(ctx context.Context) ApplicationTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationTimeoutsPtrOutput) +} + +type ApplicationTimeoutsOutput struct{ *pulumi.OutputState } + +func (ApplicationTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationTimeouts)(nil)).Elem() +} + +func (o ApplicationTimeoutsOutput) ToApplicationTimeoutsOutput() ApplicationTimeoutsOutput { + return o +} + +func (o ApplicationTimeoutsOutput) ToApplicationTimeoutsOutputWithContext(ctx context.Context) ApplicationTimeoutsOutput { + return o +} + +func (o ApplicationTimeoutsOutput) ToApplicationTimeoutsPtrOutput() ApplicationTimeoutsPtrOutput { + return o.ToApplicationTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o ApplicationTimeoutsOutput) ToApplicationTimeoutsPtrOutputWithContext(ctx context.Context) ApplicationTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationTimeouts) *ApplicationTimeouts { + return &v + }).(ApplicationTimeoutsPtrOutput) +} + +// 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 ApplicationTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationTimeouts) *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 ApplicationTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationTimeouts) *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 ApplicationTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type ApplicationTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationTimeouts)(nil)).Elem() +} + +func (o ApplicationTimeoutsPtrOutput) ToApplicationTimeoutsPtrOutput() ApplicationTimeoutsPtrOutput { + return o +} + +func (o ApplicationTimeoutsPtrOutput) ToApplicationTimeoutsPtrOutputWithContext(ctx context.Context) ApplicationTimeoutsPtrOutput { + return o +} + +func (o ApplicationTimeoutsPtrOutput) Elem() ApplicationTimeoutsOutput { + return o.ApplyT(func(v *ApplicationTimeouts) ApplicationTimeouts { + if v != nil { + return *v + } + var ret ApplicationTimeouts + return ret + }).(ApplicationTimeoutsOutput) +} + +// 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 ApplicationTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationTimeouts) *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 ApplicationTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationTimeouts) *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 ApplicationTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type DeploymentTimeouts 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"` +} + +// DeploymentTimeoutsInput is an input type that accepts DeploymentTimeoutsArgs and DeploymentTimeoutsOutput values. +// You can construct a concrete instance of `DeploymentTimeoutsInput` via: +// +// DeploymentTimeoutsArgs{...} +type DeploymentTimeoutsInput interface { + pulumi.Input + + ToDeploymentTimeoutsOutput() DeploymentTimeoutsOutput + ToDeploymentTimeoutsOutputWithContext(context.Context) DeploymentTimeoutsOutput +} + +type DeploymentTimeoutsArgs 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 (DeploymentTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentTimeouts)(nil)).Elem() +} + +func (i DeploymentTimeoutsArgs) ToDeploymentTimeoutsOutput() DeploymentTimeoutsOutput { + return i.ToDeploymentTimeoutsOutputWithContext(context.Background()) +} + +func (i DeploymentTimeoutsArgs) ToDeploymentTimeoutsOutputWithContext(ctx context.Context) DeploymentTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentTimeoutsOutput) +} + +func (i DeploymentTimeoutsArgs) ToDeploymentTimeoutsPtrOutput() DeploymentTimeoutsPtrOutput { + return i.ToDeploymentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i DeploymentTimeoutsArgs) ToDeploymentTimeoutsPtrOutputWithContext(ctx context.Context) DeploymentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentTimeoutsOutput).ToDeploymentTimeoutsPtrOutputWithContext(ctx) +} + +// DeploymentTimeoutsPtrInput is an input type that accepts DeploymentTimeoutsArgs, DeploymentTimeoutsPtr and DeploymentTimeoutsPtrOutput values. +// You can construct a concrete instance of `DeploymentTimeoutsPtrInput` via: +// +// DeploymentTimeoutsArgs{...} +// +// or: +// +// nil +type DeploymentTimeoutsPtrInput interface { + pulumi.Input + + ToDeploymentTimeoutsPtrOutput() DeploymentTimeoutsPtrOutput + ToDeploymentTimeoutsPtrOutputWithContext(context.Context) DeploymentTimeoutsPtrOutput +} + +type deploymentTimeoutsPtrType DeploymentTimeoutsArgs + +func DeploymentTimeoutsPtr(v *DeploymentTimeoutsArgs) DeploymentTimeoutsPtrInput { + return (*deploymentTimeoutsPtrType)(v) +} + +func (*deploymentTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentTimeouts)(nil)).Elem() +} + +func (i *deploymentTimeoutsPtrType) ToDeploymentTimeoutsPtrOutput() DeploymentTimeoutsPtrOutput { + return i.ToDeploymentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *deploymentTimeoutsPtrType) ToDeploymentTimeoutsPtrOutputWithContext(ctx context.Context) DeploymentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentTimeoutsPtrOutput) +} + +type DeploymentTimeoutsOutput struct{ *pulumi.OutputState } + +func (DeploymentTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentTimeouts)(nil)).Elem() +} + +func (o DeploymentTimeoutsOutput) ToDeploymentTimeoutsOutput() DeploymentTimeoutsOutput { + return o +} + +func (o DeploymentTimeoutsOutput) ToDeploymentTimeoutsOutputWithContext(ctx context.Context) DeploymentTimeoutsOutput { + return o +} + +func (o DeploymentTimeoutsOutput) ToDeploymentTimeoutsPtrOutput() DeploymentTimeoutsPtrOutput { + return o.ToDeploymentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o DeploymentTimeoutsOutput) ToDeploymentTimeoutsPtrOutputWithContext(ctx context.Context) DeploymentTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentTimeouts) *DeploymentTimeouts { + return &v + }).(DeploymentTimeoutsPtrOutput) +} + +// 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 DeploymentTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentTimeouts) *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 DeploymentTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentTimeouts) *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 DeploymentTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type DeploymentTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (DeploymentTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentTimeouts)(nil)).Elem() +} + +func (o DeploymentTimeoutsPtrOutput) ToDeploymentTimeoutsPtrOutput() DeploymentTimeoutsPtrOutput { + return o +} + +func (o DeploymentTimeoutsPtrOutput) ToDeploymentTimeoutsPtrOutputWithContext(ctx context.Context) DeploymentTimeoutsPtrOutput { + return o +} + +func (o DeploymentTimeoutsPtrOutput) Elem() DeploymentTimeoutsOutput { + return o.ApplyT(func(v *DeploymentTimeouts) DeploymentTimeouts { + if v != nil { + return *v + } + var ret DeploymentTimeouts + return ret + }).(DeploymentTimeoutsOutput) +} + +// 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 DeploymentTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentTimeouts) *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 DeploymentTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentTimeouts) *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 DeploymentTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type EnvironmentHighAvailabilityConfig struct { + // Desired number of instances for the Environment. + DesiredCapacity int `pulumi:"desiredCapacity"` +} + +// EnvironmentHighAvailabilityConfigInput is an input type that accepts EnvironmentHighAvailabilityConfigArgs and EnvironmentHighAvailabilityConfigOutput values. +// You can construct a concrete instance of `EnvironmentHighAvailabilityConfigInput` via: +// +// EnvironmentHighAvailabilityConfigArgs{...} +type EnvironmentHighAvailabilityConfigInput interface { + pulumi.Input + + ToEnvironmentHighAvailabilityConfigOutput() EnvironmentHighAvailabilityConfigOutput + ToEnvironmentHighAvailabilityConfigOutputWithContext(context.Context) EnvironmentHighAvailabilityConfigOutput +} + +type EnvironmentHighAvailabilityConfigArgs struct { + // Desired number of instances for the Environment. + DesiredCapacity pulumi.IntInput `pulumi:"desiredCapacity"` +} + +func (EnvironmentHighAvailabilityConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentHighAvailabilityConfig)(nil)).Elem() +} + +func (i EnvironmentHighAvailabilityConfigArgs) ToEnvironmentHighAvailabilityConfigOutput() EnvironmentHighAvailabilityConfigOutput { + return i.ToEnvironmentHighAvailabilityConfigOutputWithContext(context.Background()) +} + +func (i EnvironmentHighAvailabilityConfigArgs) ToEnvironmentHighAvailabilityConfigOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentHighAvailabilityConfigOutput) +} + +func (i EnvironmentHighAvailabilityConfigArgs) ToEnvironmentHighAvailabilityConfigPtrOutput() EnvironmentHighAvailabilityConfigPtrOutput { + return i.ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(context.Background()) +} + +func (i EnvironmentHighAvailabilityConfigArgs) ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentHighAvailabilityConfigOutput).ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(ctx) +} + +// EnvironmentHighAvailabilityConfigPtrInput is an input type that accepts EnvironmentHighAvailabilityConfigArgs, EnvironmentHighAvailabilityConfigPtr and EnvironmentHighAvailabilityConfigPtrOutput values. +// You can construct a concrete instance of `EnvironmentHighAvailabilityConfigPtrInput` via: +// +// EnvironmentHighAvailabilityConfigArgs{...} +// +// or: +// +// nil +type EnvironmentHighAvailabilityConfigPtrInput interface { + pulumi.Input + + ToEnvironmentHighAvailabilityConfigPtrOutput() EnvironmentHighAvailabilityConfigPtrOutput + ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(context.Context) EnvironmentHighAvailabilityConfigPtrOutput +} + +type environmentHighAvailabilityConfigPtrType EnvironmentHighAvailabilityConfigArgs + +func EnvironmentHighAvailabilityConfigPtr(v *EnvironmentHighAvailabilityConfigArgs) EnvironmentHighAvailabilityConfigPtrInput { + return (*environmentHighAvailabilityConfigPtrType)(v) +} + +func (*environmentHighAvailabilityConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentHighAvailabilityConfig)(nil)).Elem() +} + +func (i *environmentHighAvailabilityConfigPtrType) ToEnvironmentHighAvailabilityConfigPtrOutput() EnvironmentHighAvailabilityConfigPtrOutput { + return i.ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(context.Background()) +} + +func (i *environmentHighAvailabilityConfigPtrType) ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentHighAvailabilityConfigPtrOutput) +} + +type EnvironmentHighAvailabilityConfigOutput struct{ *pulumi.OutputState } + +func (EnvironmentHighAvailabilityConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentHighAvailabilityConfig)(nil)).Elem() +} + +func (o EnvironmentHighAvailabilityConfigOutput) ToEnvironmentHighAvailabilityConfigOutput() EnvironmentHighAvailabilityConfigOutput { + return o +} + +func (o EnvironmentHighAvailabilityConfigOutput) ToEnvironmentHighAvailabilityConfigOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigOutput { + return o +} + +func (o EnvironmentHighAvailabilityConfigOutput) ToEnvironmentHighAvailabilityConfigPtrOutput() EnvironmentHighAvailabilityConfigPtrOutput { + return o.ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(context.Background()) +} + +func (o EnvironmentHighAvailabilityConfigOutput) ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EnvironmentHighAvailabilityConfig) *EnvironmentHighAvailabilityConfig { + return &v + }).(EnvironmentHighAvailabilityConfigPtrOutput) +} + +// Desired number of instances for the Environment. +func (o EnvironmentHighAvailabilityConfigOutput) DesiredCapacity() pulumi.IntOutput { + return o.ApplyT(func(v EnvironmentHighAvailabilityConfig) int { return v.DesiredCapacity }).(pulumi.IntOutput) +} + +type EnvironmentHighAvailabilityConfigPtrOutput struct{ *pulumi.OutputState } + +func (EnvironmentHighAvailabilityConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentHighAvailabilityConfig)(nil)).Elem() +} + +func (o EnvironmentHighAvailabilityConfigPtrOutput) ToEnvironmentHighAvailabilityConfigPtrOutput() EnvironmentHighAvailabilityConfigPtrOutput { + return o +} + +func (o EnvironmentHighAvailabilityConfigPtrOutput) ToEnvironmentHighAvailabilityConfigPtrOutputWithContext(ctx context.Context) EnvironmentHighAvailabilityConfigPtrOutput { + return o +} + +func (o EnvironmentHighAvailabilityConfigPtrOutput) Elem() EnvironmentHighAvailabilityConfigOutput { + return o.ApplyT(func(v *EnvironmentHighAvailabilityConfig) EnvironmentHighAvailabilityConfig { + if v != nil { + return *v + } + var ret EnvironmentHighAvailabilityConfig + return ret + }).(EnvironmentHighAvailabilityConfigOutput) +} + +// Desired number of instances for the Environment. +func (o EnvironmentHighAvailabilityConfigPtrOutput) DesiredCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EnvironmentHighAvailabilityConfig) *int { + if v == nil { + return nil + } + return &v.DesiredCapacity + }).(pulumi.IntPtrOutput) +} + +type EnvironmentStorageConfiguration struct { + Efs *EnvironmentStorageConfigurationEfs `pulumi:"efs"` + Fsx *EnvironmentStorageConfigurationFsx `pulumi:"fsx"` +} + +// EnvironmentStorageConfigurationInput is an input type that accepts EnvironmentStorageConfigurationArgs and EnvironmentStorageConfigurationOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationInput` via: +// +// EnvironmentStorageConfigurationArgs{...} +type EnvironmentStorageConfigurationInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationOutput() EnvironmentStorageConfigurationOutput + ToEnvironmentStorageConfigurationOutputWithContext(context.Context) EnvironmentStorageConfigurationOutput +} + +type EnvironmentStorageConfigurationArgs struct { + Efs EnvironmentStorageConfigurationEfsPtrInput `pulumi:"efs"` + Fsx EnvironmentStorageConfigurationFsxPtrInput `pulumi:"fsx"` +} + +func (EnvironmentStorageConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfiguration)(nil)).Elem() +} + +func (i EnvironmentStorageConfigurationArgs) ToEnvironmentStorageConfigurationOutput() EnvironmentStorageConfigurationOutput { + return i.ToEnvironmentStorageConfigurationOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationArgs) ToEnvironmentStorageConfigurationOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationOutput) +} + +func (i EnvironmentStorageConfigurationArgs) ToEnvironmentStorageConfigurationPtrOutput() EnvironmentStorageConfigurationPtrOutput { + return i.ToEnvironmentStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationArgs) ToEnvironmentStorageConfigurationPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationOutput).ToEnvironmentStorageConfigurationPtrOutputWithContext(ctx) +} + +// EnvironmentStorageConfigurationPtrInput is an input type that accepts EnvironmentStorageConfigurationArgs, EnvironmentStorageConfigurationPtr and EnvironmentStorageConfigurationPtrOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationPtrInput` via: +// +// EnvironmentStorageConfigurationArgs{...} +// +// or: +// +// nil +type EnvironmentStorageConfigurationPtrInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationPtrOutput() EnvironmentStorageConfigurationPtrOutput + ToEnvironmentStorageConfigurationPtrOutputWithContext(context.Context) EnvironmentStorageConfigurationPtrOutput +} + +type environmentStorageConfigurationPtrType EnvironmentStorageConfigurationArgs + +func EnvironmentStorageConfigurationPtr(v *EnvironmentStorageConfigurationArgs) EnvironmentStorageConfigurationPtrInput { + return (*environmentStorageConfigurationPtrType)(v) +} + +func (*environmentStorageConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfiguration)(nil)).Elem() +} + +func (i *environmentStorageConfigurationPtrType) ToEnvironmentStorageConfigurationPtrOutput() EnvironmentStorageConfigurationPtrOutput { + return i.ToEnvironmentStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *environmentStorageConfigurationPtrType) ToEnvironmentStorageConfigurationPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationPtrOutput) +} + +type EnvironmentStorageConfigurationOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfiguration)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationOutput) ToEnvironmentStorageConfigurationOutput() EnvironmentStorageConfigurationOutput { + return o +} + +func (o EnvironmentStorageConfigurationOutput) ToEnvironmentStorageConfigurationOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationOutput { + return o +} + +func (o EnvironmentStorageConfigurationOutput) ToEnvironmentStorageConfigurationPtrOutput() EnvironmentStorageConfigurationPtrOutput { + return o.ToEnvironmentStorageConfigurationPtrOutputWithContext(context.Background()) +} + +func (o EnvironmentStorageConfigurationOutput) ToEnvironmentStorageConfigurationPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EnvironmentStorageConfiguration) *EnvironmentStorageConfiguration { + return &v + }).(EnvironmentStorageConfigurationPtrOutput) +} + +func (o EnvironmentStorageConfigurationOutput) Efs() EnvironmentStorageConfigurationEfsPtrOutput { + return o.ApplyT(func(v EnvironmentStorageConfiguration) *EnvironmentStorageConfigurationEfs { return v.Efs }).(EnvironmentStorageConfigurationEfsPtrOutput) +} + +func (o EnvironmentStorageConfigurationOutput) Fsx() EnvironmentStorageConfigurationFsxPtrOutput { + return o.ApplyT(func(v EnvironmentStorageConfiguration) *EnvironmentStorageConfigurationFsx { return v.Fsx }).(EnvironmentStorageConfigurationFsxPtrOutput) +} + +type EnvironmentStorageConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfiguration)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationPtrOutput) ToEnvironmentStorageConfigurationPtrOutput() EnvironmentStorageConfigurationPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationPtrOutput) ToEnvironmentStorageConfigurationPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationPtrOutput) Elem() EnvironmentStorageConfigurationOutput { + return o.ApplyT(func(v *EnvironmentStorageConfiguration) EnvironmentStorageConfiguration { + if v != nil { + return *v + } + var ret EnvironmentStorageConfiguration + return ret + }).(EnvironmentStorageConfigurationOutput) +} + +func (o EnvironmentStorageConfigurationPtrOutput) Efs() EnvironmentStorageConfigurationEfsPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfiguration) *EnvironmentStorageConfigurationEfs { + if v == nil { + return nil + } + return v.Efs + }).(EnvironmentStorageConfigurationEfsPtrOutput) +} + +func (o EnvironmentStorageConfigurationPtrOutput) Fsx() EnvironmentStorageConfigurationFsxPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfiguration) *EnvironmentStorageConfigurationFsx { + if v == nil { + return nil + } + return v.Fsx + }).(EnvironmentStorageConfigurationFsxPtrOutput) +} + +type EnvironmentStorageConfigurationEfs struct { + // Id of the EFS filesystem to mount. + FileSystemId string `pulumi:"fileSystemId"` + // Path to mount the filesystem on, must start with `/m2/mount/`. + MountPoint string `pulumi:"mountPoint"` +} + +// EnvironmentStorageConfigurationEfsInput is an input type that accepts EnvironmentStorageConfigurationEfsArgs and EnvironmentStorageConfigurationEfsOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationEfsInput` via: +// +// EnvironmentStorageConfigurationEfsArgs{...} +type EnvironmentStorageConfigurationEfsInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationEfsOutput() EnvironmentStorageConfigurationEfsOutput + ToEnvironmentStorageConfigurationEfsOutputWithContext(context.Context) EnvironmentStorageConfigurationEfsOutput +} + +type EnvironmentStorageConfigurationEfsArgs struct { + // Id of the EFS filesystem to mount. + FileSystemId pulumi.StringInput `pulumi:"fileSystemId"` + // Path to mount the filesystem on, must start with `/m2/mount/`. + MountPoint pulumi.StringInput `pulumi:"mountPoint"` +} + +func (EnvironmentStorageConfigurationEfsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfigurationEfs)(nil)).Elem() +} + +func (i EnvironmentStorageConfigurationEfsArgs) ToEnvironmentStorageConfigurationEfsOutput() EnvironmentStorageConfigurationEfsOutput { + return i.ToEnvironmentStorageConfigurationEfsOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationEfsArgs) ToEnvironmentStorageConfigurationEfsOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationEfsOutput) +} + +func (i EnvironmentStorageConfigurationEfsArgs) ToEnvironmentStorageConfigurationEfsPtrOutput() EnvironmentStorageConfigurationEfsPtrOutput { + return i.ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationEfsArgs) ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationEfsOutput).ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(ctx) +} + +// EnvironmentStorageConfigurationEfsPtrInput is an input type that accepts EnvironmentStorageConfigurationEfsArgs, EnvironmentStorageConfigurationEfsPtr and EnvironmentStorageConfigurationEfsPtrOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationEfsPtrInput` via: +// +// EnvironmentStorageConfigurationEfsArgs{...} +// +// or: +// +// nil +type EnvironmentStorageConfigurationEfsPtrInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationEfsPtrOutput() EnvironmentStorageConfigurationEfsPtrOutput + ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(context.Context) EnvironmentStorageConfigurationEfsPtrOutput +} + +type environmentStorageConfigurationEfsPtrType EnvironmentStorageConfigurationEfsArgs + +func EnvironmentStorageConfigurationEfsPtr(v *EnvironmentStorageConfigurationEfsArgs) EnvironmentStorageConfigurationEfsPtrInput { + return (*environmentStorageConfigurationEfsPtrType)(v) +} + +func (*environmentStorageConfigurationEfsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfigurationEfs)(nil)).Elem() +} + +func (i *environmentStorageConfigurationEfsPtrType) ToEnvironmentStorageConfigurationEfsPtrOutput() EnvironmentStorageConfigurationEfsPtrOutput { + return i.ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(context.Background()) +} + +func (i *environmentStorageConfigurationEfsPtrType) ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationEfsPtrOutput) +} + +type EnvironmentStorageConfigurationEfsOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationEfsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfigurationEfs)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationEfsOutput) ToEnvironmentStorageConfigurationEfsOutput() EnvironmentStorageConfigurationEfsOutput { + return o +} + +func (o EnvironmentStorageConfigurationEfsOutput) ToEnvironmentStorageConfigurationEfsOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsOutput { + return o +} + +func (o EnvironmentStorageConfigurationEfsOutput) ToEnvironmentStorageConfigurationEfsPtrOutput() EnvironmentStorageConfigurationEfsPtrOutput { + return o.ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(context.Background()) +} + +func (o EnvironmentStorageConfigurationEfsOutput) ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EnvironmentStorageConfigurationEfs) *EnvironmentStorageConfigurationEfs { + return &v + }).(EnvironmentStorageConfigurationEfsPtrOutput) +} + +// Id of the EFS filesystem to mount. +func (o EnvironmentStorageConfigurationEfsOutput) FileSystemId() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentStorageConfigurationEfs) string { return v.FileSystemId }).(pulumi.StringOutput) +} + +// Path to mount the filesystem on, must start with `/m2/mount/`. +func (o EnvironmentStorageConfigurationEfsOutput) MountPoint() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentStorageConfigurationEfs) string { return v.MountPoint }).(pulumi.StringOutput) +} + +type EnvironmentStorageConfigurationEfsPtrOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationEfsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfigurationEfs)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationEfsPtrOutput) ToEnvironmentStorageConfigurationEfsPtrOutput() EnvironmentStorageConfigurationEfsPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationEfsPtrOutput) ToEnvironmentStorageConfigurationEfsPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationEfsPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationEfsPtrOutput) Elem() EnvironmentStorageConfigurationEfsOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationEfs) EnvironmentStorageConfigurationEfs { + if v != nil { + return *v + } + var ret EnvironmentStorageConfigurationEfs + return ret + }).(EnvironmentStorageConfigurationEfsOutput) +} + +// Id of the EFS filesystem to mount. +func (o EnvironmentStorageConfigurationEfsPtrOutput) FileSystemId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationEfs) *string { + if v == nil { + return nil + } + return &v.FileSystemId + }).(pulumi.StringPtrOutput) +} + +// Path to mount the filesystem on, must start with `/m2/mount/`. +func (o EnvironmentStorageConfigurationEfsPtrOutput) MountPoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationEfs) *string { + if v == nil { + return nil + } + return &v.MountPoint + }).(pulumi.StringPtrOutput) +} + +type EnvironmentStorageConfigurationFsx struct { + // Id of the FSX filesystem to mount. + FileSystemId string `pulumi:"fileSystemId"` + // Path to mount the filesystem on, must start with `/m2/mount/`. + MountPoint string `pulumi:"mountPoint"` +} + +// EnvironmentStorageConfigurationFsxInput is an input type that accepts EnvironmentStorageConfigurationFsxArgs and EnvironmentStorageConfigurationFsxOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationFsxInput` via: +// +// EnvironmentStorageConfigurationFsxArgs{...} +type EnvironmentStorageConfigurationFsxInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationFsxOutput() EnvironmentStorageConfigurationFsxOutput + ToEnvironmentStorageConfigurationFsxOutputWithContext(context.Context) EnvironmentStorageConfigurationFsxOutput +} + +type EnvironmentStorageConfigurationFsxArgs struct { + // Id of the FSX filesystem to mount. + FileSystemId pulumi.StringInput `pulumi:"fileSystemId"` + // Path to mount the filesystem on, must start with `/m2/mount/`. + MountPoint pulumi.StringInput `pulumi:"mountPoint"` +} + +func (EnvironmentStorageConfigurationFsxArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfigurationFsx)(nil)).Elem() +} + +func (i EnvironmentStorageConfigurationFsxArgs) ToEnvironmentStorageConfigurationFsxOutput() EnvironmentStorageConfigurationFsxOutput { + return i.ToEnvironmentStorageConfigurationFsxOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationFsxArgs) ToEnvironmentStorageConfigurationFsxOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationFsxOutput) +} + +func (i EnvironmentStorageConfigurationFsxArgs) ToEnvironmentStorageConfigurationFsxPtrOutput() EnvironmentStorageConfigurationFsxPtrOutput { + return i.ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(context.Background()) +} + +func (i EnvironmentStorageConfigurationFsxArgs) ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationFsxOutput).ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(ctx) +} + +// EnvironmentStorageConfigurationFsxPtrInput is an input type that accepts EnvironmentStorageConfigurationFsxArgs, EnvironmentStorageConfigurationFsxPtr and EnvironmentStorageConfigurationFsxPtrOutput values. +// You can construct a concrete instance of `EnvironmentStorageConfigurationFsxPtrInput` via: +// +// EnvironmentStorageConfigurationFsxArgs{...} +// +// or: +// +// nil +type EnvironmentStorageConfigurationFsxPtrInput interface { + pulumi.Input + + ToEnvironmentStorageConfigurationFsxPtrOutput() EnvironmentStorageConfigurationFsxPtrOutput + ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(context.Context) EnvironmentStorageConfigurationFsxPtrOutput +} + +type environmentStorageConfigurationFsxPtrType EnvironmentStorageConfigurationFsxArgs + +func EnvironmentStorageConfigurationFsxPtr(v *EnvironmentStorageConfigurationFsxArgs) EnvironmentStorageConfigurationFsxPtrInput { + return (*environmentStorageConfigurationFsxPtrType)(v) +} + +func (*environmentStorageConfigurationFsxPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfigurationFsx)(nil)).Elem() +} + +func (i *environmentStorageConfigurationFsxPtrType) ToEnvironmentStorageConfigurationFsxPtrOutput() EnvironmentStorageConfigurationFsxPtrOutput { + return i.ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(context.Background()) +} + +func (i *environmentStorageConfigurationFsxPtrType) ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentStorageConfigurationFsxPtrOutput) +} + +type EnvironmentStorageConfigurationFsxOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationFsxOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentStorageConfigurationFsx)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationFsxOutput) ToEnvironmentStorageConfigurationFsxOutput() EnvironmentStorageConfigurationFsxOutput { + return o +} + +func (o EnvironmentStorageConfigurationFsxOutput) ToEnvironmentStorageConfigurationFsxOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxOutput { + return o +} + +func (o EnvironmentStorageConfigurationFsxOutput) ToEnvironmentStorageConfigurationFsxPtrOutput() EnvironmentStorageConfigurationFsxPtrOutput { + return o.ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(context.Background()) +} + +func (o EnvironmentStorageConfigurationFsxOutput) ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EnvironmentStorageConfigurationFsx) *EnvironmentStorageConfigurationFsx { + return &v + }).(EnvironmentStorageConfigurationFsxPtrOutput) +} + +// Id of the FSX filesystem to mount. +func (o EnvironmentStorageConfigurationFsxOutput) FileSystemId() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentStorageConfigurationFsx) string { return v.FileSystemId }).(pulumi.StringOutput) +} + +// Path to mount the filesystem on, must start with `/m2/mount/`. +func (o EnvironmentStorageConfigurationFsxOutput) MountPoint() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentStorageConfigurationFsx) string { return v.MountPoint }).(pulumi.StringOutput) +} + +type EnvironmentStorageConfigurationFsxPtrOutput struct{ *pulumi.OutputState } + +func (EnvironmentStorageConfigurationFsxPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentStorageConfigurationFsx)(nil)).Elem() +} + +func (o EnvironmentStorageConfigurationFsxPtrOutput) ToEnvironmentStorageConfigurationFsxPtrOutput() EnvironmentStorageConfigurationFsxPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationFsxPtrOutput) ToEnvironmentStorageConfigurationFsxPtrOutputWithContext(ctx context.Context) EnvironmentStorageConfigurationFsxPtrOutput { + return o +} + +func (o EnvironmentStorageConfigurationFsxPtrOutput) Elem() EnvironmentStorageConfigurationFsxOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationFsx) EnvironmentStorageConfigurationFsx { + if v != nil { + return *v + } + var ret EnvironmentStorageConfigurationFsx + return ret + }).(EnvironmentStorageConfigurationFsxOutput) +} + +// Id of the FSX filesystem to mount. +func (o EnvironmentStorageConfigurationFsxPtrOutput) FileSystemId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationFsx) *string { + if v == nil { + return nil + } + return &v.FileSystemId + }).(pulumi.StringPtrOutput) +} + +// Path to mount the filesystem on, must start with `/m2/mount/`. +func (o EnvironmentStorageConfigurationFsxPtrOutput) MountPoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentStorageConfigurationFsx) *string { + if v == nil { + return nil + } + return &v.MountPoint + }).(pulumi.StringPtrOutput) +} + +type EnvironmentTimeouts 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"` +} + +// EnvironmentTimeoutsInput is an input type that accepts EnvironmentTimeoutsArgs and EnvironmentTimeoutsOutput values. +// You can construct a concrete instance of `EnvironmentTimeoutsInput` via: +// +// EnvironmentTimeoutsArgs{...} +type EnvironmentTimeoutsInput interface { + pulumi.Input + + ToEnvironmentTimeoutsOutput() EnvironmentTimeoutsOutput + ToEnvironmentTimeoutsOutputWithContext(context.Context) EnvironmentTimeoutsOutput +} + +type EnvironmentTimeoutsArgs 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 (EnvironmentTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentTimeouts)(nil)).Elem() +} + +func (i EnvironmentTimeoutsArgs) ToEnvironmentTimeoutsOutput() EnvironmentTimeoutsOutput { + return i.ToEnvironmentTimeoutsOutputWithContext(context.Background()) +} + +func (i EnvironmentTimeoutsArgs) ToEnvironmentTimeoutsOutputWithContext(ctx context.Context) EnvironmentTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentTimeoutsOutput) +} + +func (i EnvironmentTimeoutsArgs) ToEnvironmentTimeoutsPtrOutput() EnvironmentTimeoutsPtrOutput { + return i.ToEnvironmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i EnvironmentTimeoutsArgs) ToEnvironmentTimeoutsPtrOutputWithContext(ctx context.Context) EnvironmentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentTimeoutsOutput).ToEnvironmentTimeoutsPtrOutputWithContext(ctx) +} + +// EnvironmentTimeoutsPtrInput is an input type that accepts EnvironmentTimeoutsArgs, EnvironmentTimeoutsPtr and EnvironmentTimeoutsPtrOutput values. +// You can construct a concrete instance of `EnvironmentTimeoutsPtrInput` via: +// +// EnvironmentTimeoutsArgs{...} +// +// or: +// +// nil +type EnvironmentTimeoutsPtrInput interface { + pulumi.Input + + ToEnvironmentTimeoutsPtrOutput() EnvironmentTimeoutsPtrOutput + ToEnvironmentTimeoutsPtrOutputWithContext(context.Context) EnvironmentTimeoutsPtrOutput +} + +type environmentTimeoutsPtrType EnvironmentTimeoutsArgs + +func EnvironmentTimeoutsPtr(v *EnvironmentTimeoutsArgs) EnvironmentTimeoutsPtrInput { + return (*environmentTimeoutsPtrType)(v) +} + +func (*environmentTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentTimeouts)(nil)).Elem() +} + +func (i *environmentTimeoutsPtrType) ToEnvironmentTimeoutsPtrOutput() EnvironmentTimeoutsPtrOutput { + return i.ToEnvironmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *environmentTimeoutsPtrType) ToEnvironmentTimeoutsPtrOutputWithContext(ctx context.Context) EnvironmentTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentTimeoutsPtrOutput) +} + +type EnvironmentTimeoutsOutput struct{ *pulumi.OutputState } + +func (EnvironmentTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentTimeouts)(nil)).Elem() +} + +func (o EnvironmentTimeoutsOutput) ToEnvironmentTimeoutsOutput() EnvironmentTimeoutsOutput { + return o +} + +func (o EnvironmentTimeoutsOutput) ToEnvironmentTimeoutsOutputWithContext(ctx context.Context) EnvironmentTimeoutsOutput { + return o +} + +func (o EnvironmentTimeoutsOutput) ToEnvironmentTimeoutsPtrOutput() EnvironmentTimeoutsPtrOutput { + return o.ToEnvironmentTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o EnvironmentTimeoutsOutput) ToEnvironmentTimeoutsPtrOutputWithContext(ctx context.Context) EnvironmentTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EnvironmentTimeouts) *EnvironmentTimeouts { + return &v + }).(EnvironmentTimeoutsPtrOutput) +} + +// 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 EnvironmentTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentTimeouts) *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 EnvironmentTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentTimeouts) *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 EnvironmentTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type EnvironmentTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (EnvironmentTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentTimeouts)(nil)).Elem() +} + +func (o EnvironmentTimeoutsPtrOutput) ToEnvironmentTimeoutsPtrOutput() EnvironmentTimeoutsPtrOutput { + return o +} + +func (o EnvironmentTimeoutsPtrOutput) ToEnvironmentTimeoutsPtrOutputWithContext(ctx context.Context) EnvironmentTimeoutsPtrOutput { + return o +} + +func (o EnvironmentTimeoutsPtrOutput) Elem() EnvironmentTimeoutsOutput { + return o.ApplyT(func(v *EnvironmentTimeouts) EnvironmentTimeouts { + if v != nil { + return *v + } + var ret EnvironmentTimeouts + return ret + }).(EnvironmentTimeoutsOutput) +} + +// 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 EnvironmentTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentTimeouts) *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 EnvironmentTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentTimeouts) *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 EnvironmentTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EnvironmentTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinitionInput)(nil)).Elem(), ApplicationDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinitionPtrInput)(nil)).Elem(), ApplicationDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationTimeoutsInput)(nil)).Elem(), ApplicationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationTimeoutsPtrInput)(nil)).Elem(), ApplicationTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentTimeoutsInput)(nil)).Elem(), DeploymentTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeploymentTimeoutsPtrInput)(nil)).Elem(), DeploymentTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentHighAvailabilityConfigInput)(nil)).Elem(), EnvironmentHighAvailabilityConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentHighAvailabilityConfigPtrInput)(nil)).Elem(), EnvironmentHighAvailabilityConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationInput)(nil)).Elem(), EnvironmentStorageConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationPtrInput)(nil)).Elem(), EnvironmentStorageConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationEfsInput)(nil)).Elem(), EnvironmentStorageConfigurationEfsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationEfsPtrInput)(nil)).Elem(), EnvironmentStorageConfigurationEfsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationFsxInput)(nil)).Elem(), EnvironmentStorageConfigurationFsxArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentStorageConfigurationFsxPtrInput)(nil)).Elem(), EnvironmentStorageConfigurationFsxArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentTimeoutsInput)(nil)).Elem(), EnvironmentTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentTimeoutsPtrInput)(nil)).Elem(), EnvironmentTimeoutsArgs{}) + pulumi.RegisterOutputType(ApplicationDefinitionOutput{}) + pulumi.RegisterOutputType(ApplicationDefinitionPtrOutput{}) + pulumi.RegisterOutputType(ApplicationTimeoutsOutput{}) + pulumi.RegisterOutputType(ApplicationTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(DeploymentTimeoutsOutput{}) + pulumi.RegisterOutputType(DeploymentTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentHighAvailabilityConfigOutput{}) + pulumi.RegisterOutputType(EnvironmentHighAvailabilityConfigPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationEfsOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationEfsPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationFsxOutput{}) + pulumi.RegisterOutputType(EnvironmentStorageConfigurationFsxPtrOutput{}) + pulumi.RegisterOutputType(EnvironmentTimeoutsOutput{}) + pulumi.RegisterOutputType(EnvironmentTimeoutsPtrOutput{}) +} diff --git a/sdk/go/aws/mediastore/containerPolicy.go b/sdk/go/aws/mediastore/containerPolicy.go index 7744c643455..f0109378768 100644 --- a/sdk/go/aws/mediastore/containerPolicy.go +++ b/sdk/go/aws/mediastore/containerPolicy.go @@ -12,8 +12,6 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Provides a MediaStore Container Policy. -// // ## Example Usage // // diff --git a/sdk/go/aws/pulumiTypes.go b/sdk/go/aws/pulumiTypes.go index 2cf76d23e5f..ddbb95b9273 100644 --- a/sdk/go/aws/pulumiTypes.go +++ b/sdk/go/aws/pulumiTypes.go @@ -852,6 +852,8 @@ type ProviderEndpoint struct { // Use this to override the default service endpoint URL Datasync *string `pulumi:"datasync"` // Use this to override the default service endpoint URL + Datazone *string `pulumi:"datazone"` + // Use this to override the default service endpoint URL Dax *string `pulumi:"dax"` // Use this to override the default service endpoint URL Deploy *string `pulumi:"deploy"` @@ -1072,6 +1074,8 @@ type ProviderEndpoint struct { // Use this to override the default service endpoint URL Outposts *string `pulumi:"outposts"` // Use this to override the default service endpoint URL + Paymentcryptography *string `pulumi:"paymentcryptography"` + // Use this to override the default service endpoint URL Pcaconnectorad *string `pulumi:"pcaconnectorad"` // Use this to override the default service endpoint URL Pinpoint *string `pulumi:"pinpoint"` @@ -1414,6 +1418,8 @@ type ProviderEndpointArgs struct { // Use this to override the default service endpoint URL Datasync pulumi.StringPtrInput `pulumi:"datasync"` // Use this to override the default service endpoint URL + Datazone pulumi.StringPtrInput `pulumi:"datazone"` + // Use this to override the default service endpoint URL Dax pulumi.StringPtrInput `pulumi:"dax"` // Use this to override the default service endpoint URL Deploy pulumi.StringPtrInput `pulumi:"deploy"` @@ -1634,6 +1640,8 @@ type ProviderEndpointArgs struct { // Use this to override the default service endpoint URL Outposts pulumi.StringPtrInput `pulumi:"outposts"` // Use this to override the default service endpoint URL + Paymentcryptography pulumi.StringPtrInput `pulumi:"paymentcryptography"` + // Use this to override the default service endpoint URL Pcaconnectorad pulumi.StringPtrInput `pulumi:"pcaconnectorad"` // Use this to override the default service endpoint URL Pinpoint pulumi.StringPtrInput `pulumi:"pinpoint"` @@ -2266,6 +2274,11 @@ func (o ProviderEndpointOutput) Datasync() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Datasync }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o ProviderEndpointOutput) Datazone() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.Datazone }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o ProviderEndpointOutput) Dax() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Dax }).(pulumi.StringPtrOutput) @@ -2816,6 +2829,11 @@ func (o ProviderEndpointOutput) Outposts() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Outposts }).(pulumi.StringPtrOutput) } +// Use this to override the default service endpoint URL +func (o ProviderEndpointOutput) Paymentcryptography() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.Paymentcryptography }).(pulumi.StringPtrOutput) +} + // Use this to override the default service endpoint URL func (o ProviderEndpointOutput) Pcaconnectorad() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Pcaconnectorad }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/rds/getSnapshot.go b/sdk/go/aws/rds/getSnapshot.go index ff739912ca3..447c361846a 100644 --- a/sdk/go/aws/rds/getSnapshot.go +++ b/sdk/go/aws/rds/getSnapshot.go @@ -130,8 +130,10 @@ type LookupSnapshotResult struct { MostRecent *bool `pulumi:"mostRecent"` // Provides the option group name for the DB snapshot. OptionGroupName string `pulumi:"optionGroupName"` - Port int `pulumi:"port"` - // Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + // Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + OriginalSnapshotCreateTime string `pulumi:"originalSnapshotCreateTime"` + Port int `pulumi:"port"` + // Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. SnapshotCreateTime string `pulumi:"snapshotCreateTime"` SnapshotType *string `pulumi:"snapshotType"` // DB snapshot ARN that the DB snapshot was copied from. It only has value in case of cross customer or cross region copy. @@ -279,11 +281,16 @@ func (o LookupSnapshotResultOutput) OptionGroupName() pulumi.StringOutput { return o.ApplyT(func(v LookupSnapshotResult) string { return v.OptionGroupName }).(pulumi.StringOutput) } +// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. +func (o LookupSnapshotResultOutput) OriginalSnapshotCreateTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupSnapshotResult) string { return v.OriginalSnapshotCreateTime }).(pulumi.StringOutput) +} + func (o LookupSnapshotResultOutput) Port() pulumi.IntOutput { return o.ApplyT(func(v LookupSnapshotResult) int { return v.Port }).(pulumi.IntOutput) } -// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). +// Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. func (o LookupSnapshotResultOutput) SnapshotCreateTime() pulumi.StringOutput { return o.ApplyT(func(v LookupSnapshotResult) string { return v.SnapshotCreateTime }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/redshiftserverless/customDomainAssociation.go b/sdk/go/aws/redshiftserverless/customDomainAssociation.go new file mode 100644 index 00000000000..72d2d8d3663 --- /dev/null +++ b/sdk/go/aws/redshiftserverless/customDomainAssociation.go @@ -0,0 +1,324 @@ +// 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 redshiftserverless + +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 Redshift Serverless Custom Domain Association. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/acm" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshiftserverless" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := acm.NewCertificate(ctx, "example", &acm.CertificateArgs{ +// DomainName: pulumi.String("example.com"), +// }) +// if err != nil { +// return err +// } +// exampleNamespace, err := redshiftserverless.NewNamespace(ctx, "example", &redshiftserverless.NamespaceArgs{ +// NamespaceName: pulumi.String("example-namespace"), +// }) +// if err != nil { +// return err +// } +// exampleWorkgroup, err := redshiftserverless.NewWorkgroup(ctx, "example", &redshiftserverless.WorkgroupArgs{ +// WorkgroupName: pulumi.String("example-workgroup"), +// NamespaceName: exampleNamespace.NamespaceName, +// }) +// if err != nil { +// return err +// } +// _, err = redshiftserverless.NewCustomDomainAssociation(ctx, "example", &redshiftserverless.CustomDomainAssociationArgs{ +// WorkgroupName: exampleWorkgroup.WorkgroupName, +// CustomDomainName: pulumi.String("example.com"), +// CustomDomainCertificateArn: example.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: +// +// ```sh +// $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com +// ``` +type CustomDomainAssociation struct { + pulumi.CustomResourceState + + // ARN of the certificate for the custom domain association. + CustomDomainCertificateArn pulumi.StringOutput `pulumi:"customDomainCertificateArn"` + // Expiration time for the certificate. + CustomDomainCertificateExpiryTime pulumi.StringOutput `pulumi:"customDomainCertificateExpiryTime"` + // Custom domain to associate with the workgroup. + CustomDomainName pulumi.StringOutput `pulumi:"customDomainName"` + // Name of the workgroup. + WorkgroupName pulumi.StringOutput `pulumi:"workgroupName"` +} + +// NewCustomDomainAssociation registers a new resource with the given unique name, arguments, and options. +func NewCustomDomainAssociation(ctx *pulumi.Context, + name string, args *CustomDomainAssociationArgs, opts ...pulumi.ResourceOption) (*CustomDomainAssociation, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CustomDomainCertificateArn == nil { + return nil, errors.New("invalid value for required argument 'CustomDomainCertificateArn'") + } + if args.CustomDomainName == nil { + return nil, errors.New("invalid value for required argument 'CustomDomainName'") + } + if args.WorkgroupName == nil { + return nil, errors.New("invalid value for required argument 'WorkgroupName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CustomDomainAssociation + err := ctx.RegisterResource("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCustomDomainAssociation gets an existing CustomDomainAssociation 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 GetCustomDomainAssociation(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CustomDomainAssociationState, opts ...pulumi.ResourceOption) (*CustomDomainAssociation, error) { + var resource CustomDomainAssociation + err := ctx.ReadResource("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CustomDomainAssociation resources. +type customDomainAssociationState struct { + // ARN of the certificate for the custom domain association. + CustomDomainCertificateArn *string `pulumi:"customDomainCertificateArn"` + // Expiration time for the certificate. + CustomDomainCertificateExpiryTime *string `pulumi:"customDomainCertificateExpiryTime"` + // Custom domain to associate with the workgroup. + CustomDomainName *string `pulumi:"customDomainName"` + // Name of the workgroup. + WorkgroupName *string `pulumi:"workgroupName"` +} + +type CustomDomainAssociationState struct { + // ARN of the certificate for the custom domain association. + CustomDomainCertificateArn pulumi.StringPtrInput + // Expiration time for the certificate. + CustomDomainCertificateExpiryTime pulumi.StringPtrInput + // Custom domain to associate with the workgroup. + CustomDomainName pulumi.StringPtrInput + // Name of the workgroup. + WorkgroupName pulumi.StringPtrInput +} + +func (CustomDomainAssociationState) ElementType() reflect.Type { + return reflect.TypeOf((*customDomainAssociationState)(nil)).Elem() +} + +type customDomainAssociationArgs struct { + // ARN of the certificate for the custom domain association. + CustomDomainCertificateArn string `pulumi:"customDomainCertificateArn"` + // Custom domain to associate with the workgroup. + CustomDomainName string `pulumi:"customDomainName"` + // Name of the workgroup. + WorkgroupName string `pulumi:"workgroupName"` +} + +// The set of arguments for constructing a CustomDomainAssociation resource. +type CustomDomainAssociationArgs struct { + // ARN of the certificate for the custom domain association. + CustomDomainCertificateArn pulumi.StringInput + // Custom domain to associate with the workgroup. + CustomDomainName pulumi.StringInput + // Name of the workgroup. + WorkgroupName pulumi.StringInput +} + +func (CustomDomainAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*customDomainAssociationArgs)(nil)).Elem() +} + +type CustomDomainAssociationInput interface { + pulumi.Input + + ToCustomDomainAssociationOutput() CustomDomainAssociationOutput + ToCustomDomainAssociationOutputWithContext(ctx context.Context) CustomDomainAssociationOutput +} + +func (*CustomDomainAssociation) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainAssociation)(nil)).Elem() +} + +func (i *CustomDomainAssociation) ToCustomDomainAssociationOutput() CustomDomainAssociationOutput { + return i.ToCustomDomainAssociationOutputWithContext(context.Background()) +} + +func (i *CustomDomainAssociation) ToCustomDomainAssociationOutputWithContext(ctx context.Context) CustomDomainAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainAssociationOutput) +} + +// CustomDomainAssociationArrayInput is an input type that accepts CustomDomainAssociationArray and CustomDomainAssociationArrayOutput values. +// You can construct a concrete instance of `CustomDomainAssociationArrayInput` via: +// +// CustomDomainAssociationArray{ CustomDomainAssociationArgs{...} } +type CustomDomainAssociationArrayInput interface { + pulumi.Input + + ToCustomDomainAssociationArrayOutput() CustomDomainAssociationArrayOutput + ToCustomDomainAssociationArrayOutputWithContext(context.Context) CustomDomainAssociationArrayOutput +} + +type CustomDomainAssociationArray []CustomDomainAssociationInput + +func (CustomDomainAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CustomDomainAssociation)(nil)).Elem() +} + +func (i CustomDomainAssociationArray) ToCustomDomainAssociationArrayOutput() CustomDomainAssociationArrayOutput { + return i.ToCustomDomainAssociationArrayOutputWithContext(context.Background()) +} + +func (i CustomDomainAssociationArray) ToCustomDomainAssociationArrayOutputWithContext(ctx context.Context) CustomDomainAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainAssociationArrayOutput) +} + +// CustomDomainAssociationMapInput is an input type that accepts CustomDomainAssociationMap and CustomDomainAssociationMapOutput values. +// You can construct a concrete instance of `CustomDomainAssociationMapInput` via: +// +// CustomDomainAssociationMap{ "key": CustomDomainAssociationArgs{...} } +type CustomDomainAssociationMapInput interface { + pulumi.Input + + ToCustomDomainAssociationMapOutput() CustomDomainAssociationMapOutput + ToCustomDomainAssociationMapOutputWithContext(context.Context) CustomDomainAssociationMapOutput +} + +type CustomDomainAssociationMap map[string]CustomDomainAssociationInput + +func (CustomDomainAssociationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CustomDomainAssociation)(nil)).Elem() +} + +func (i CustomDomainAssociationMap) ToCustomDomainAssociationMapOutput() CustomDomainAssociationMapOutput { + return i.ToCustomDomainAssociationMapOutputWithContext(context.Background()) +} + +func (i CustomDomainAssociationMap) ToCustomDomainAssociationMapOutputWithContext(ctx context.Context) CustomDomainAssociationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainAssociationMapOutput) +} + +type CustomDomainAssociationOutput struct{ *pulumi.OutputState } + +func (CustomDomainAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainAssociation)(nil)).Elem() +} + +func (o CustomDomainAssociationOutput) ToCustomDomainAssociationOutput() CustomDomainAssociationOutput { + return o +} + +func (o CustomDomainAssociationOutput) ToCustomDomainAssociationOutputWithContext(ctx context.Context) CustomDomainAssociationOutput { + return o +} + +// ARN of the certificate for the custom domain association. +func (o CustomDomainAssociationOutput) CustomDomainCertificateArn() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomainAssociation) pulumi.StringOutput { return v.CustomDomainCertificateArn }).(pulumi.StringOutput) +} + +// Expiration time for the certificate. +func (o CustomDomainAssociationOutput) CustomDomainCertificateExpiryTime() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomainAssociation) pulumi.StringOutput { return v.CustomDomainCertificateExpiryTime }).(pulumi.StringOutput) +} + +// Custom domain to associate with the workgroup. +func (o CustomDomainAssociationOutput) CustomDomainName() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomainAssociation) pulumi.StringOutput { return v.CustomDomainName }).(pulumi.StringOutput) +} + +// Name of the workgroup. +func (o CustomDomainAssociationOutput) WorkgroupName() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomainAssociation) pulumi.StringOutput { return v.WorkgroupName }).(pulumi.StringOutput) +} + +type CustomDomainAssociationArrayOutput struct{ *pulumi.OutputState } + +func (CustomDomainAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CustomDomainAssociation)(nil)).Elem() +} + +func (o CustomDomainAssociationArrayOutput) ToCustomDomainAssociationArrayOutput() CustomDomainAssociationArrayOutput { + return o +} + +func (o CustomDomainAssociationArrayOutput) ToCustomDomainAssociationArrayOutputWithContext(ctx context.Context) CustomDomainAssociationArrayOutput { + return o +} + +func (o CustomDomainAssociationArrayOutput) Index(i pulumi.IntInput) CustomDomainAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CustomDomainAssociation { + return vs[0].([]*CustomDomainAssociation)[vs[1].(int)] + }).(CustomDomainAssociationOutput) +} + +type CustomDomainAssociationMapOutput struct{ *pulumi.OutputState } + +func (CustomDomainAssociationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CustomDomainAssociation)(nil)).Elem() +} + +func (o CustomDomainAssociationMapOutput) ToCustomDomainAssociationMapOutput() CustomDomainAssociationMapOutput { + return o +} + +func (o CustomDomainAssociationMapOutput) ToCustomDomainAssociationMapOutputWithContext(ctx context.Context) CustomDomainAssociationMapOutput { + return o +} + +func (o CustomDomainAssociationMapOutput) MapIndex(k pulumi.StringInput) CustomDomainAssociationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CustomDomainAssociation { + return vs[0].(map[string]*CustomDomainAssociation)[vs[1].(string)] + }).(CustomDomainAssociationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainAssociationInput)(nil)).Elem(), &CustomDomainAssociation{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainAssociationArrayInput)(nil)).Elem(), CustomDomainAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainAssociationMapInput)(nil)).Elem(), CustomDomainAssociationMap{}) + pulumi.RegisterOutputType(CustomDomainAssociationOutput{}) + pulumi.RegisterOutputType(CustomDomainAssociationArrayOutput{}) + pulumi.RegisterOutputType(CustomDomainAssociationMapOutput{}) +} diff --git a/sdk/go/aws/redshiftserverless/init.go b/sdk/go/aws/redshiftserverless/init.go index a550a097951..c97bd16729b 100644 --- a/sdk/go/aws/redshiftserverless/init.go +++ b/sdk/go/aws/redshiftserverless/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation": + r = &CustomDomainAssociation{} case "aws:redshiftserverless/endpointAccess:EndpointAccess": r = &EndpointAccess{} case "aws:redshiftserverless/namespace:Namespace": @@ -46,6 +48,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "aws", + "redshiftserverless/customDomainAssociation", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "redshiftserverless/endpointAccess", diff --git a/sdk/go/aws/resourceexplorer/pulumiTypes.go b/sdk/go/aws/resourceexplorer/pulumiTypes.go index 371585060aa..d4a438ebba3 100644 --- a/sdk/go/aws/resourceexplorer/pulumiTypes.go +++ b/sdk/go/aws/resourceexplorer/pulumiTypes.go @@ -188,6 +188,375 @@ func (o IndexTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type SearchResource struct { + // Amazon resource name of resource. + Arn string `pulumi:"arn"` + // The date and time that the information about this resource property was last updated. + LastReportedAt string `pulumi:"lastReportedAt"` + // Amazon Web Services account that owns the resource. + OwningAccountId string `pulumi:"owningAccountId"` + // Amazon Web Services Region in which the resource was created and exists. + Region string `pulumi:"region"` + // Structure with additional type-specific details about the resource. See `resourceProperty` below. + ResourceProperties []SearchResourceResourceProperty `pulumi:"resourceProperties"` + // Type of the resource. + ResourceType string `pulumi:"resourceType"` + // Amazon Web Service that owns the resource and is responsible for creating and updating it. + Service string `pulumi:"service"` +} + +// SearchResourceInput is an input type that accepts SearchResourceArgs and SearchResourceOutput values. +// You can construct a concrete instance of `SearchResourceInput` via: +// +// SearchResourceArgs{...} +type SearchResourceInput interface { + pulumi.Input + + ToSearchResourceOutput() SearchResourceOutput + ToSearchResourceOutputWithContext(context.Context) SearchResourceOutput +} + +type SearchResourceArgs struct { + // Amazon resource name of resource. + Arn pulumi.StringInput `pulumi:"arn"` + // The date and time that the information about this resource property was last updated. + LastReportedAt pulumi.StringInput `pulumi:"lastReportedAt"` + // Amazon Web Services account that owns the resource. + OwningAccountId pulumi.StringInput `pulumi:"owningAccountId"` + // Amazon Web Services Region in which the resource was created and exists. + Region pulumi.StringInput `pulumi:"region"` + // Structure with additional type-specific details about the resource. See `resourceProperty` below. + ResourceProperties SearchResourceResourcePropertyArrayInput `pulumi:"resourceProperties"` + // Type of the resource. + ResourceType pulumi.StringInput `pulumi:"resourceType"` + // Amazon Web Service that owns the resource and is responsible for creating and updating it. + Service pulumi.StringInput `pulumi:"service"` +} + +func (SearchResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResource)(nil)).Elem() +} + +func (i SearchResourceArgs) ToSearchResourceOutput() SearchResourceOutput { + return i.ToSearchResourceOutputWithContext(context.Background()) +} + +func (i SearchResourceArgs) ToSearchResourceOutputWithContext(ctx context.Context) SearchResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceOutput) +} + +// SearchResourceArrayInput is an input type that accepts SearchResourceArray and SearchResourceArrayOutput values. +// You can construct a concrete instance of `SearchResourceArrayInput` via: +// +// SearchResourceArray{ SearchResourceArgs{...} } +type SearchResourceArrayInput interface { + pulumi.Input + + ToSearchResourceArrayOutput() SearchResourceArrayOutput + ToSearchResourceArrayOutputWithContext(context.Context) SearchResourceArrayOutput +} + +type SearchResourceArray []SearchResourceInput + +func (SearchResourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResource)(nil)).Elem() +} + +func (i SearchResourceArray) ToSearchResourceArrayOutput() SearchResourceArrayOutput { + return i.ToSearchResourceArrayOutputWithContext(context.Background()) +} + +func (i SearchResourceArray) ToSearchResourceArrayOutputWithContext(ctx context.Context) SearchResourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceArrayOutput) +} + +type SearchResourceOutput struct{ *pulumi.OutputState } + +func (SearchResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResource)(nil)).Elem() +} + +func (o SearchResourceOutput) ToSearchResourceOutput() SearchResourceOutput { + return o +} + +func (o SearchResourceOutput) ToSearchResourceOutputWithContext(ctx context.Context) SearchResourceOutput { + return o +} + +// Amazon resource name of resource. +func (o SearchResourceOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.Arn }).(pulumi.StringOutput) +} + +// The date and time that the information about this resource property was last updated. +func (o SearchResourceOutput) LastReportedAt() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.LastReportedAt }).(pulumi.StringOutput) +} + +// Amazon Web Services account that owns the resource. +func (o SearchResourceOutput) OwningAccountId() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.OwningAccountId }).(pulumi.StringOutput) +} + +// Amazon Web Services Region in which the resource was created and exists. +func (o SearchResourceOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.Region }).(pulumi.StringOutput) +} + +// Structure with additional type-specific details about the resource. See `resourceProperty` below. +func (o SearchResourceOutput) ResourceProperties() SearchResourceResourcePropertyArrayOutput { + return o.ApplyT(func(v SearchResource) []SearchResourceResourceProperty { return v.ResourceProperties }).(SearchResourceResourcePropertyArrayOutput) +} + +// Type of the resource. +func (o SearchResourceOutput) ResourceType() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.ResourceType }).(pulumi.StringOutput) +} + +// Amazon Web Service that owns the resource and is responsible for creating and updating it. +func (o SearchResourceOutput) Service() pulumi.StringOutput { + return o.ApplyT(func(v SearchResource) string { return v.Service }).(pulumi.StringOutput) +} + +type SearchResourceArrayOutput struct{ *pulumi.OutputState } + +func (SearchResourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResource)(nil)).Elem() +} + +func (o SearchResourceArrayOutput) ToSearchResourceArrayOutput() SearchResourceArrayOutput { + return o +} + +func (o SearchResourceArrayOutput) ToSearchResourceArrayOutputWithContext(ctx context.Context) SearchResourceArrayOutput { + return o +} + +func (o SearchResourceArrayOutput) Index(i pulumi.IntInput) SearchResourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SearchResource { + return vs[0].([]SearchResource)[vs[1].(int)] + }).(SearchResourceOutput) +} + +type SearchResourceCount struct { + Completed bool `pulumi:"completed"` + // Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + TotalResources int `pulumi:"totalResources"` +} + +// SearchResourceCountInput is an input type that accepts SearchResourceCountArgs and SearchResourceCountOutput values. +// You can construct a concrete instance of `SearchResourceCountInput` via: +// +// SearchResourceCountArgs{...} +type SearchResourceCountInput interface { + pulumi.Input + + ToSearchResourceCountOutput() SearchResourceCountOutput + ToSearchResourceCountOutputWithContext(context.Context) SearchResourceCountOutput +} + +type SearchResourceCountArgs struct { + Completed pulumi.BoolInput `pulumi:"completed"` + // Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + TotalResources pulumi.IntInput `pulumi:"totalResources"` +} + +func (SearchResourceCountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResourceCount)(nil)).Elem() +} + +func (i SearchResourceCountArgs) ToSearchResourceCountOutput() SearchResourceCountOutput { + return i.ToSearchResourceCountOutputWithContext(context.Background()) +} + +func (i SearchResourceCountArgs) ToSearchResourceCountOutputWithContext(ctx context.Context) SearchResourceCountOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceCountOutput) +} + +// SearchResourceCountArrayInput is an input type that accepts SearchResourceCountArray and SearchResourceCountArrayOutput values. +// You can construct a concrete instance of `SearchResourceCountArrayInput` via: +// +// SearchResourceCountArray{ SearchResourceCountArgs{...} } +type SearchResourceCountArrayInput interface { + pulumi.Input + + ToSearchResourceCountArrayOutput() SearchResourceCountArrayOutput + ToSearchResourceCountArrayOutputWithContext(context.Context) SearchResourceCountArrayOutput +} + +type SearchResourceCountArray []SearchResourceCountInput + +func (SearchResourceCountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResourceCount)(nil)).Elem() +} + +func (i SearchResourceCountArray) ToSearchResourceCountArrayOutput() SearchResourceCountArrayOutput { + return i.ToSearchResourceCountArrayOutputWithContext(context.Background()) +} + +func (i SearchResourceCountArray) ToSearchResourceCountArrayOutputWithContext(ctx context.Context) SearchResourceCountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceCountArrayOutput) +} + +type SearchResourceCountOutput struct{ *pulumi.OutputState } + +func (SearchResourceCountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResourceCount)(nil)).Elem() +} + +func (o SearchResourceCountOutput) ToSearchResourceCountOutput() SearchResourceCountOutput { + return o +} + +func (o SearchResourceCountOutput) ToSearchResourceCountOutputWithContext(ctx context.Context) SearchResourceCountOutput { + return o +} + +func (o SearchResourceCountOutput) Completed() pulumi.BoolOutput { + return o.ApplyT(func(v SearchResourceCount) bool { return v.Completed }).(pulumi.BoolOutput) +} + +// Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. +func (o SearchResourceCountOutput) TotalResources() pulumi.IntOutput { + return o.ApplyT(func(v SearchResourceCount) int { return v.TotalResources }).(pulumi.IntOutput) +} + +type SearchResourceCountArrayOutput struct{ *pulumi.OutputState } + +func (SearchResourceCountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResourceCount)(nil)).Elem() +} + +func (o SearchResourceCountArrayOutput) ToSearchResourceCountArrayOutput() SearchResourceCountArrayOutput { + return o +} + +func (o SearchResourceCountArrayOutput) ToSearchResourceCountArrayOutputWithContext(ctx context.Context) SearchResourceCountArrayOutput { + return o +} + +func (o SearchResourceCountArrayOutput) Index(i pulumi.IntInput) SearchResourceCountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SearchResourceCount { + return vs[0].([]SearchResourceCount)[vs[1].(int)] + }).(SearchResourceCountOutput) +} + +type SearchResourceResourceProperty struct { + // Details about this property. The content of this field is a JSON object that varies based on the resource type. + Data string `pulumi:"data"` + // The date and time that the information about this resource property was last updated. + LastReportedAt string `pulumi:"lastReportedAt"` + // Name of this property of the resource. + Name string `pulumi:"name"` +} + +// SearchResourceResourcePropertyInput is an input type that accepts SearchResourceResourcePropertyArgs and SearchResourceResourcePropertyOutput values. +// You can construct a concrete instance of `SearchResourceResourcePropertyInput` via: +// +// SearchResourceResourcePropertyArgs{...} +type SearchResourceResourcePropertyInput interface { + pulumi.Input + + ToSearchResourceResourcePropertyOutput() SearchResourceResourcePropertyOutput + ToSearchResourceResourcePropertyOutputWithContext(context.Context) SearchResourceResourcePropertyOutput +} + +type SearchResourceResourcePropertyArgs struct { + // Details about this property. The content of this field is a JSON object that varies based on the resource type. + Data pulumi.StringInput `pulumi:"data"` + // The date and time that the information about this resource property was last updated. + LastReportedAt pulumi.StringInput `pulumi:"lastReportedAt"` + // Name of this property of the resource. + Name pulumi.StringInput `pulumi:"name"` +} + +func (SearchResourceResourcePropertyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResourceResourceProperty)(nil)).Elem() +} + +func (i SearchResourceResourcePropertyArgs) ToSearchResourceResourcePropertyOutput() SearchResourceResourcePropertyOutput { + return i.ToSearchResourceResourcePropertyOutputWithContext(context.Background()) +} + +func (i SearchResourceResourcePropertyArgs) ToSearchResourceResourcePropertyOutputWithContext(ctx context.Context) SearchResourceResourcePropertyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceResourcePropertyOutput) +} + +// SearchResourceResourcePropertyArrayInput is an input type that accepts SearchResourceResourcePropertyArray and SearchResourceResourcePropertyArrayOutput values. +// You can construct a concrete instance of `SearchResourceResourcePropertyArrayInput` via: +// +// SearchResourceResourcePropertyArray{ SearchResourceResourcePropertyArgs{...} } +type SearchResourceResourcePropertyArrayInput interface { + pulumi.Input + + ToSearchResourceResourcePropertyArrayOutput() SearchResourceResourcePropertyArrayOutput + ToSearchResourceResourcePropertyArrayOutputWithContext(context.Context) SearchResourceResourcePropertyArrayOutput +} + +type SearchResourceResourcePropertyArray []SearchResourceResourcePropertyInput + +func (SearchResourceResourcePropertyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResourceResourceProperty)(nil)).Elem() +} + +func (i SearchResourceResourcePropertyArray) ToSearchResourceResourcePropertyArrayOutput() SearchResourceResourcePropertyArrayOutput { + return i.ToSearchResourceResourcePropertyArrayOutputWithContext(context.Background()) +} + +func (i SearchResourceResourcePropertyArray) ToSearchResourceResourcePropertyArrayOutputWithContext(ctx context.Context) SearchResourceResourcePropertyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SearchResourceResourcePropertyArrayOutput) +} + +type SearchResourceResourcePropertyOutput struct{ *pulumi.OutputState } + +func (SearchResourceResourcePropertyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResourceResourceProperty)(nil)).Elem() +} + +func (o SearchResourceResourcePropertyOutput) ToSearchResourceResourcePropertyOutput() SearchResourceResourcePropertyOutput { + return o +} + +func (o SearchResourceResourcePropertyOutput) ToSearchResourceResourcePropertyOutputWithContext(ctx context.Context) SearchResourceResourcePropertyOutput { + return o +} + +// Details about this property. The content of this field is a JSON object that varies based on the resource type. +func (o SearchResourceResourcePropertyOutput) Data() pulumi.StringOutput { + return o.ApplyT(func(v SearchResourceResourceProperty) string { return v.Data }).(pulumi.StringOutput) +} + +// The date and time that the information about this resource property was last updated. +func (o SearchResourceResourcePropertyOutput) LastReportedAt() pulumi.StringOutput { + return o.ApplyT(func(v SearchResourceResourceProperty) string { return v.LastReportedAt }).(pulumi.StringOutput) +} + +// Name of this property of the resource. +func (o SearchResourceResourcePropertyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v SearchResourceResourceProperty) string { return v.Name }).(pulumi.StringOutput) +} + +type SearchResourceResourcePropertyArrayOutput struct{ *pulumi.OutputState } + +func (SearchResourceResourcePropertyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SearchResourceResourceProperty)(nil)).Elem() +} + +func (o SearchResourceResourcePropertyArrayOutput) ToSearchResourceResourcePropertyArrayOutput() SearchResourceResourcePropertyArrayOutput { + return o +} + +func (o SearchResourceResourcePropertyArrayOutput) ToSearchResourceResourcePropertyArrayOutputWithContext(ctx context.Context) SearchResourceResourcePropertyArrayOutput { + return o +} + +func (o SearchResourceResourcePropertyArrayOutput) Index(i pulumi.IntInput) SearchResourceResourcePropertyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SearchResourceResourceProperty { + return vs[0].([]SearchResourceResourceProperty)[vs[1].(int)] + }).(SearchResourceResourcePropertyOutput) +} + type ViewFilters struct { // The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a search operation. For more details, see [Search query syntax](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). FilterString string `pulumi:"filterString"` @@ -425,12 +794,24 @@ func (o ViewIncludedPropertyArrayOutput) Index(i pulumi.IntInput) ViewIncludedPr func init() { pulumi.RegisterInputType(reflect.TypeOf((*IndexTimeoutsInput)(nil)).Elem(), IndexTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*IndexTimeoutsPtrInput)(nil)).Elem(), IndexTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceInput)(nil)).Elem(), SearchResourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceArrayInput)(nil)).Elem(), SearchResourceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceCountInput)(nil)).Elem(), SearchResourceCountArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceCountArrayInput)(nil)).Elem(), SearchResourceCountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceResourcePropertyInput)(nil)).Elem(), SearchResourceResourcePropertyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SearchResourceResourcePropertyArrayInput)(nil)).Elem(), SearchResourceResourcePropertyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ViewFiltersInput)(nil)).Elem(), ViewFiltersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ViewFiltersPtrInput)(nil)).Elem(), ViewFiltersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ViewIncludedPropertyInput)(nil)).Elem(), ViewIncludedPropertyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ViewIncludedPropertyArrayInput)(nil)).Elem(), ViewIncludedPropertyArray{}) pulumi.RegisterOutputType(IndexTimeoutsOutput{}) pulumi.RegisterOutputType(IndexTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(SearchResourceOutput{}) + pulumi.RegisterOutputType(SearchResourceArrayOutput{}) + pulumi.RegisterOutputType(SearchResourceCountOutput{}) + pulumi.RegisterOutputType(SearchResourceCountArrayOutput{}) + pulumi.RegisterOutputType(SearchResourceResourcePropertyOutput{}) + pulumi.RegisterOutputType(SearchResourceResourcePropertyArrayOutput{}) pulumi.RegisterOutputType(ViewFiltersOutput{}) pulumi.RegisterOutputType(ViewFiltersPtrOutput{}) pulumi.RegisterOutputType(ViewIncludedPropertyOutput{}) diff --git a/sdk/go/aws/resourceexplorer/search.go b/sdk/go/aws/resourceexplorer/search.go new file mode 100644 index 00000000000..951f6681a62 --- /dev/null +++ b/sdk/go/aws/resourceexplorer/search.go @@ -0,0 +1,153 @@ +// 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 resourceexplorer + +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 Resource Explorer Search. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/resourceexplorer" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := resourceexplorer.Search(ctx, &resourceexplorer.SearchArgs{ +// QueryString: "region:us-west-2", +// ViewArn: pulumi.StringRef(test.Arn), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +func Search(ctx *pulumi.Context, args *SearchArgs, opts ...pulumi.InvokeOption) (*SearchResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv SearchResult + err := ctx.Invoke("aws:resourceexplorer/search:Search", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking Search. +type SearchArgs struct { + // String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + // + // The following arguments are optional: + QueryString string `pulumi:"queryString"` + // Number of resources that match the query. See `resourceCount` below. + ResourceCounts []SearchResourceCount `pulumi:"resourceCounts"` + // List of structures that describe the resources that match the query. See `resources` below. + Resources []SearchResource `pulumi:"resources"` + // Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + ViewArn *string `pulumi:"viewArn"` +} + +// A collection of values returned by Search. +type SearchResult struct { + // Query String. + Id string `pulumi:"id"` + QueryString string `pulumi:"queryString"` + // Number of resources that match the query. See `resourceCount` below. + ResourceCounts []SearchResourceCount `pulumi:"resourceCounts"` + // List of structures that describe the resources that match the query. See `resources` below. + Resources []SearchResource `pulumi:"resources"` + ViewArn *string `pulumi:"viewArn"` +} + +func SearchOutput(ctx *pulumi.Context, args SearchOutputArgs, opts ...pulumi.InvokeOption) SearchResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (SearchResult, error) { + args := v.(SearchArgs) + r, err := Search(ctx, &args, opts...) + var s SearchResult + if r != nil { + s = *r + } + return s, err + }).(SearchResultOutput) +} + +// A collection of arguments for invoking Search. +type SearchOutputArgs struct { + // String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + // + // The following arguments are optional: + QueryString pulumi.StringInput `pulumi:"queryString"` + // Number of resources that match the query. See `resourceCount` below. + ResourceCounts SearchResourceCountArrayInput `pulumi:"resourceCounts"` + // List of structures that describe the resources that match the query. See `resources` below. + Resources SearchResourceArrayInput `pulumi:"resources"` + // Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + ViewArn pulumi.StringPtrInput `pulumi:"viewArn"` +} + +func (SearchOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SearchArgs)(nil)).Elem() +} + +// A collection of values returned by Search. +type SearchResultOutput struct{ *pulumi.OutputState } + +func (SearchResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SearchResult)(nil)).Elem() +} + +func (o SearchResultOutput) ToSearchResultOutput() SearchResultOutput { + return o +} + +func (o SearchResultOutput) ToSearchResultOutputWithContext(ctx context.Context) SearchResultOutput { + return o +} + +// Query String. +func (o SearchResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v SearchResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o SearchResultOutput) QueryString() pulumi.StringOutput { + return o.ApplyT(func(v SearchResult) string { return v.QueryString }).(pulumi.StringOutput) +} + +// Number of resources that match the query. See `resourceCount` below. +func (o SearchResultOutput) ResourceCounts() SearchResourceCountArrayOutput { + return o.ApplyT(func(v SearchResult) []SearchResourceCount { return v.ResourceCounts }).(SearchResourceCountArrayOutput) +} + +// List of structures that describe the resources that match the query. See `resources` below. +func (o SearchResultOutput) Resources() SearchResourceArrayOutput { + return o.ApplyT(func(v SearchResult) []SearchResource { return v.Resources }).(SearchResourceArrayOutput) +} + +func (o SearchResultOutput) ViewArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v SearchResult) *string { return v.ViewArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(SearchResultOutput{}) +} diff --git a/sdk/go/aws/secretsmanager/secretVersion.go b/sdk/go/aws/secretsmanager/secretVersion.go index 32c545823d9..d35d8a93cc3 100644 --- a/sdk/go/aws/secretsmanager/secretVersion.go +++ b/sdk/go/aws/secretsmanager/secretVersion.go @@ -108,11 +108,11 @@ type SecretVersion struct { // The ARN of the secret. Arn pulumi.StringOutput `pulumi:"arn"` - // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. SecretBinary pulumi.StringPtrOutput `pulumi:"secretBinary"` // Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. SecretId pulumi.StringOutput `pulumi:"secretId"` - // Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + // Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. SecretString pulumi.StringPtrOutput `pulumi:"secretString"` // The unique identifier of the version of the secret. VersionId pulumi.StringOutput `pulumi:"versionId"` @@ -168,11 +168,11 @@ func GetSecretVersion(ctx *pulumi.Context, type secretVersionState struct { // The ARN of the secret. Arn *string `pulumi:"arn"` - // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. SecretBinary *string `pulumi:"secretBinary"` // Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. SecretId *string `pulumi:"secretId"` - // Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + // Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. SecretString *string `pulumi:"secretString"` // The unique identifier of the version of the secret. VersionId *string `pulumi:"versionId"` @@ -185,11 +185,11 @@ type secretVersionState struct { type SecretVersionState struct { // The ARN of the secret. Arn pulumi.StringPtrInput - // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. SecretBinary pulumi.StringPtrInput // Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. SecretId pulumi.StringPtrInput - // Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + // Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. SecretString pulumi.StringPtrInput // The unique identifier of the version of the secret. VersionId pulumi.StringPtrInput @@ -204,11 +204,11 @@ func (SecretVersionState) ElementType() reflect.Type { } type secretVersionArgs struct { - // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. SecretBinary *string `pulumi:"secretBinary"` // Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. SecretId string `pulumi:"secretId"` - // Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + // Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. SecretString *string `pulumi:"secretString"` // Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. // @@ -218,11 +218,11 @@ type secretVersionArgs struct { // The set of arguments for constructing a SecretVersion resource. type SecretVersionArgs struct { - // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + // Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. SecretBinary pulumi.StringPtrInput // Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. SecretId pulumi.StringInput - // Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + // Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. SecretString pulumi.StringPtrInput // Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. // @@ -322,7 +322,7 @@ func (o SecretVersionOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *SecretVersion) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. +// Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. func (o SecretVersionOutput) SecretBinary() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecretVersion) pulumi.StringPtrOutput { return v.SecretBinary }).(pulumi.StringPtrOutput) } @@ -332,7 +332,7 @@ func (o SecretVersionOutput) SecretId() pulumi.StringOutput { return o.ApplyT(func(v *SecretVersion) pulumi.StringOutput { return v.SecretId }).(pulumi.StringOutput) } -// Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. +// Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. func (o SecretVersionOutput) SecretString() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecretVersion) pulumi.StringPtrOutput { return v.SecretString }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/servicecatalog/appregistryApplication.go b/sdk/go/aws/servicecatalog/appregistryApplication.go new file mode 100644 index 00000000000..3c65ce2f022 --- /dev/null +++ b/sdk/go/aws/servicecatalog/appregistryApplication.go @@ -0,0 +1,331 @@ +// 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 servicecatalog + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource for managing an AWS Service Catalog AppRegistry Application. +// +// > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := servicecatalog.NewAppregistryApplication(ctx, "example", &servicecatalog.AppregistryApplicationArgs{ +// Name: pulumi.String("example-app"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ### Connecting Resources +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := servicecatalog.NewAppregistryApplication(ctx, "example", &servicecatalog.AppregistryApplicationArgs{ +// Name: pulumi.String("example-app"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketV2(ctx, "bucket", &s3.BucketV2Args{ +// Bucket: pulumi.String("example-bucket"), +// Tags: pulumi.StringMap{ +// "awsApplication": example.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: +// +// ```sh +// $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 +// ``` +type AppregistryApplication struct { + pulumi.CustomResourceState + + // ARN (Amazon Resource Name) of the application. + Arn pulumi.StringOutput `pulumi:"arn"` + // Description of the application. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Name of the application. The name must be unique within an AWS region. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewAppregistryApplication registers a new resource with the given unique name, arguments, and options. +func NewAppregistryApplication(ctx *pulumi.Context, + name string, args *AppregistryApplicationArgs, opts ...pulumi.ResourceOption) (*AppregistryApplication, error) { + if args == nil { + args = &AppregistryApplicationArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource AppregistryApplication + err := ctx.RegisterResource("aws:servicecatalog/appregistryApplication:AppregistryApplication", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAppregistryApplication gets an existing AppregistryApplication 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 GetAppregistryApplication(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AppregistryApplicationState, opts ...pulumi.ResourceOption) (*AppregistryApplication, error) { + var resource AppregistryApplication + err := ctx.ReadResource("aws:servicecatalog/appregistryApplication:AppregistryApplication", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AppregistryApplication resources. +type appregistryApplicationState struct { + // ARN (Amazon Resource Name) of the application. + Arn *string `pulumi:"arn"` + // Description of the application. + Description *string `pulumi:"description"` + // Name of the application. The name must be unique within an AWS region. + // + // The following arguments are optional: + Name *string `pulumi:"name"` +} + +type AppregistryApplicationState struct { + // ARN (Amazon Resource Name) of the application. + Arn pulumi.StringPtrInput + // Description of the application. + Description pulumi.StringPtrInput + // Name of the application. The name must be unique within an AWS region. + // + // The following arguments are optional: + Name pulumi.StringPtrInput +} + +func (AppregistryApplicationState) ElementType() reflect.Type { + return reflect.TypeOf((*appregistryApplicationState)(nil)).Elem() +} + +type appregistryApplicationArgs struct { + // Description of the application. + Description *string `pulumi:"description"` + // Name of the application. The name must be unique within an AWS region. + // + // The following arguments are optional: + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a AppregistryApplication resource. +type AppregistryApplicationArgs struct { + // Description of the application. + Description pulumi.StringPtrInput + // Name of the application. The name must be unique within an AWS region. + // + // The following arguments are optional: + Name pulumi.StringPtrInput +} + +func (AppregistryApplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*appregistryApplicationArgs)(nil)).Elem() +} + +type AppregistryApplicationInput interface { + pulumi.Input + + ToAppregistryApplicationOutput() AppregistryApplicationOutput + ToAppregistryApplicationOutputWithContext(ctx context.Context) AppregistryApplicationOutput +} + +func (*AppregistryApplication) ElementType() reflect.Type { + return reflect.TypeOf((**AppregistryApplication)(nil)).Elem() +} + +func (i *AppregistryApplication) ToAppregistryApplicationOutput() AppregistryApplicationOutput { + return i.ToAppregistryApplicationOutputWithContext(context.Background()) +} + +func (i *AppregistryApplication) ToAppregistryApplicationOutputWithContext(ctx context.Context) AppregistryApplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppregistryApplicationOutput) +} + +// AppregistryApplicationArrayInput is an input type that accepts AppregistryApplicationArray and AppregistryApplicationArrayOutput values. +// You can construct a concrete instance of `AppregistryApplicationArrayInput` via: +// +// AppregistryApplicationArray{ AppregistryApplicationArgs{...} } +type AppregistryApplicationArrayInput interface { + pulumi.Input + + ToAppregistryApplicationArrayOutput() AppregistryApplicationArrayOutput + ToAppregistryApplicationArrayOutputWithContext(context.Context) AppregistryApplicationArrayOutput +} + +type AppregistryApplicationArray []AppregistryApplicationInput + +func (AppregistryApplicationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AppregistryApplication)(nil)).Elem() +} + +func (i AppregistryApplicationArray) ToAppregistryApplicationArrayOutput() AppregistryApplicationArrayOutput { + return i.ToAppregistryApplicationArrayOutputWithContext(context.Background()) +} + +func (i AppregistryApplicationArray) ToAppregistryApplicationArrayOutputWithContext(ctx context.Context) AppregistryApplicationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppregistryApplicationArrayOutput) +} + +// AppregistryApplicationMapInput is an input type that accepts AppregistryApplicationMap and AppregistryApplicationMapOutput values. +// You can construct a concrete instance of `AppregistryApplicationMapInput` via: +// +// AppregistryApplicationMap{ "key": AppregistryApplicationArgs{...} } +type AppregistryApplicationMapInput interface { + pulumi.Input + + ToAppregistryApplicationMapOutput() AppregistryApplicationMapOutput + ToAppregistryApplicationMapOutputWithContext(context.Context) AppregistryApplicationMapOutput +} + +type AppregistryApplicationMap map[string]AppregistryApplicationInput + +func (AppregistryApplicationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AppregistryApplication)(nil)).Elem() +} + +func (i AppregistryApplicationMap) ToAppregistryApplicationMapOutput() AppregistryApplicationMapOutput { + return i.ToAppregistryApplicationMapOutputWithContext(context.Background()) +} + +func (i AppregistryApplicationMap) ToAppregistryApplicationMapOutputWithContext(ctx context.Context) AppregistryApplicationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppregistryApplicationMapOutput) +} + +type AppregistryApplicationOutput struct{ *pulumi.OutputState } + +func (AppregistryApplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppregistryApplication)(nil)).Elem() +} + +func (o AppregistryApplicationOutput) ToAppregistryApplicationOutput() AppregistryApplicationOutput { + return o +} + +func (o AppregistryApplicationOutput) ToAppregistryApplicationOutputWithContext(ctx context.Context) AppregistryApplicationOutput { + return o +} + +// ARN (Amazon Resource Name) of the application. +func (o AppregistryApplicationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *AppregistryApplication) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Description of the application. +func (o AppregistryApplicationOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AppregistryApplication) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Name of the application. The name must be unique within an AWS region. +// +// The following arguments are optional: +func (o AppregistryApplicationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AppregistryApplication) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type AppregistryApplicationArrayOutput struct{ *pulumi.OutputState } + +func (AppregistryApplicationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AppregistryApplication)(nil)).Elem() +} + +func (o AppregistryApplicationArrayOutput) ToAppregistryApplicationArrayOutput() AppregistryApplicationArrayOutput { + return o +} + +func (o AppregistryApplicationArrayOutput) ToAppregistryApplicationArrayOutputWithContext(ctx context.Context) AppregistryApplicationArrayOutput { + return o +} + +func (o AppregistryApplicationArrayOutput) Index(i pulumi.IntInput) AppregistryApplicationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AppregistryApplication { + return vs[0].([]*AppregistryApplication)[vs[1].(int)] + }).(AppregistryApplicationOutput) +} + +type AppregistryApplicationMapOutput struct{ *pulumi.OutputState } + +func (AppregistryApplicationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AppregistryApplication)(nil)).Elem() +} + +func (o AppregistryApplicationMapOutput) ToAppregistryApplicationMapOutput() AppregistryApplicationMapOutput { + return o +} + +func (o AppregistryApplicationMapOutput) ToAppregistryApplicationMapOutputWithContext(ctx context.Context) AppregistryApplicationMapOutput { + return o +} + +func (o AppregistryApplicationMapOutput) MapIndex(k pulumi.StringInput) AppregistryApplicationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AppregistryApplication { + return vs[0].(map[string]*AppregistryApplication)[vs[1].(string)] + }).(AppregistryApplicationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AppregistryApplicationInput)(nil)).Elem(), &AppregistryApplication{}) + pulumi.RegisterInputType(reflect.TypeOf((*AppregistryApplicationArrayInput)(nil)).Elem(), AppregistryApplicationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AppregistryApplicationMapInput)(nil)).Elem(), AppregistryApplicationMap{}) + pulumi.RegisterOutputType(AppregistryApplicationOutput{}) + pulumi.RegisterOutputType(AppregistryApplicationArrayOutput{}) + pulumi.RegisterOutputType(AppregistryApplicationMapOutput{}) +} diff --git a/sdk/go/aws/servicecatalog/getAppregistryApplication.go b/sdk/go/aws/servicecatalog/getAppregistryApplication.go new file mode 100644 index 00000000000..1bc273fc639 --- /dev/null +++ b/sdk/go/aws/servicecatalog/getAppregistryApplication.go @@ -0,0 +1,131 @@ +// 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 servicecatalog + +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 Service Catalog AppRegistry Application. +// +// ## Example Usage +// +// ### Basic Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/servicecatalog" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := servicecatalog.LookupAppregistryApplication(ctx, &servicecatalog.LookupAppregistryApplicationArgs{ +// Id: "application-1234", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +func LookupAppregistryApplication(ctx *pulumi.Context, args *LookupAppregistryApplicationArgs, opts ...pulumi.InvokeOption) (*LookupAppregistryApplicationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAppregistryApplicationResult + err := ctx.Invoke("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAppregistryApplication. +type LookupAppregistryApplicationArgs struct { + // Application identifier. + Id string `pulumi:"id"` +} + +// A collection of values returned by getAppregistryApplication. +type LookupAppregistryApplicationResult struct { + // ARN (Amazon Resource Name) of the application. + Arn string `pulumi:"arn"` + // Description of the application. + Description string `pulumi:"description"` + Id string `pulumi:"id"` + // Name of the application. + Name string `pulumi:"name"` +} + +func LookupAppregistryApplicationOutput(ctx *pulumi.Context, args LookupAppregistryApplicationOutputArgs, opts ...pulumi.InvokeOption) LookupAppregistryApplicationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAppregistryApplicationResult, error) { + args := v.(LookupAppregistryApplicationArgs) + r, err := LookupAppregistryApplication(ctx, &args, opts...) + var s LookupAppregistryApplicationResult + if r != nil { + s = *r + } + return s, err + }).(LookupAppregistryApplicationResultOutput) +} + +// A collection of arguments for invoking getAppregistryApplication. +type LookupAppregistryApplicationOutputArgs struct { + // Application identifier. + Id pulumi.StringInput `pulumi:"id"` +} + +func (LookupAppregistryApplicationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAppregistryApplicationArgs)(nil)).Elem() +} + +// A collection of values returned by getAppregistryApplication. +type LookupAppregistryApplicationResultOutput struct{ *pulumi.OutputState } + +func (LookupAppregistryApplicationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAppregistryApplicationResult)(nil)).Elem() +} + +func (o LookupAppregistryApplicationResultOutput) ToLookupAppregistryApplicationResultOutput() LookupAppregistryApplicationResultOutput { + return o +} + +func (o LookupAppregistryApplicationResultOutput) ToLookupAppregistryApplicationResultOutputWithContext(ctx context.Context) LookupAppregistryApplicationResultOutput { + return o +} + +// ARN (Amazon Resource Name) of the application. +func (o LookupAppregistryApplicationResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupAppregistryApplicationResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Description of the application. +func (o LookupAppregistryApplicationResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupAppregistryApplicationResult) string { return v.Description }).(pulumi.StringOutput) +} + +func (o LookupAppregistryApplicationResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAppregistryApplicationResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the application. +func (o LookupAppregistryApplicationResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupAppregistryApplicationResult) string { return v.Name }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAppregistryApplicationResultOutput{}) +} diff --git a/sdk/go/aws/servicecatalog/init.go b/sdk/go/aws/servicecatalog/init.go index d8c82e056b1..b1e36a54dbf 100644 --- a/sdk/go/aws/servicecatalog/init.go +++ b/sdk/go/aws/servicecatalog/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "aws:servicecatalog/appregistryApplication:AppregistryApplication": + r = &AppregistryApplication{} case "aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation": r = &BudgetResourceAssociation{} case "aws:servicecatalog/constraint:Constraint": @@ -60,6 +62,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "aws", + "servicecatalog/appregistryApplication", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "servicecatalog/budgetResourceAssociation", diff --git a/sdk/go/aws/ssoadmin/permissionSetInlinePolicy.go b/sdk/go/aws/ssoadmin/permissionSetInlinePolicy.go index f963d275bfa..d4f1902e3fb 100644 --- a/sdk/go/aws/ssoadmin/permissionSetInlinePolicy.go +++ b/sdk/go/aws/ssoadmin/permissionSetInlinePolicy.go @@ -12,10 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource -// -// > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `ssoadmin.PermissionSet` resource. -// Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. +// ## Example Usage // // ## Import // diff --git a/sdk/go/aws/transfer/access.go b/sdk/go/aws/transfer/access.go index a9cf24155a3..4d5d477f240 100644 --- a/sdk/go/aws/transfer/access.go +++ b/sdk/go/aws/transfer/access.go @@ -14,6 +14,8 @@ import ( // Provides a AWS Transfer Access resource. // +// > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. +// // ## Example Usage // // ### Basic S3 diff --git a/sdk/go/aws/transfer/user.go b/sdk/go/aws/transfer/user.go index 82ba1de7211..0bcb459d1d0 100644 --- a/sdk/go/aws/transfer/user.go +++ b/sdk/go/aws/transfer/user.go @@ -12,8 +12,6 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `transfer.SshKey` resource. -// // ## Example Usage // // diff --git a/sdk/java/src/main/java/com/pulumi/aws/acmpca/Certificate.java b/sdk/java/src/main/java/com/pulumi/aws/acmpca/Certificate.java index acf78b561bd..f53cbc514a9 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/acmpca/Certificate.java +++ b/sdk/java/src/main/java/com/pulumi/aws/acmpca/Certificate.java @@ -36,6 +36,8 @@ * import com.pulumi.core.Output; * import com.pulumi.aws.acmpca.CertificateAuthority; * import com.pulumi.aws.acmpca.CertificateAuthorityArgs; + * import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs; + * import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs; * import com.pulumi.tls.PrivateKey; * import com.pulumi.tls.PrivateKeyArgs; * import com.pulumi.tls.CertRequest; @@ -58,7 +60,13 @@ * * public static void stack(Context ctx) { * var exampleCertificateAuthority = new CertificateAuthority("exampleCertificateAuthority", CertificateAuthorityArgs.builder() - * .privateCertificateConfiguration(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) + * .certificateAuthorityConfiguration(CertificateAuthorityCertificateAuthorityConfigurationArgs.builder() + * .keyAlgorithm("RSA_4096") + * .signingAlgorithm("SHA512WITHRSA") + * .subject(CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs.builder() + * .commonName("example.com") + * .build()) + * .build()) * .permanentDeletionTimeInDays(7) * .build()); * @@ -67,7 +75,6 @@ * .build()); * * var csr = new CertRequest("csr", CertRequestArgs.builder() - * .keyAlgorithm("RSA") * .privateKeyPem(key.privateKeyPem()) * .subject(CertRequestSubjectArgs.builder() * .commonName("example") diff --git a/sdk/java/src/main/java/com/pulumi/aws/apigateway/MethodResponse.java b/sdk/java/src/main/java/com/pulumi/aws/apigateway/MethodResponse.java index fb0168d64e8..d9c0fa15d9f 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/apigateway/MethodResponse.java +++ b/sdk/java/src/main/java/com/pulumi/aws/apigateway/MethodResponse.java @@ -173,7 +173,7 @@ * .resourceId(myDemoResource.id()) * .httpMethod(myDemoMethod.httpMethod()) * .statusCode("200") - * .responseModels(Map.of("application-json", "MyDemoResponseModel")) + * .responseModels(Map.of("application/json", "MyDemoResponseModel")) * .responseParameters(Map.ofEntries( * Map.entry("method.response.header.Content-Type", false), * Map.entry("method-response-header.X-My-Demo-Header", false) diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Function.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Function.java index c11fd57766f..578f8452b8a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Function.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/Function.java @@ -12,6 +12,7 @@ import com.pulumi.core.internal.Codegen; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Optional; import javax.annotation.Nullable; @@ -91,6 +92,20 @@ public Output> comment() { public Output etag() { return this.etag; } + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + @Export(name="keyValueStoreAssociations", refs={List.class,String.class}, tree="[0,1]") + private Output> keyValueStoreAssociations; + + /** + * @return List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + public Output>> keyValueStoreAssociations() { + return Codegen.optional(this.keyValueStoreAssociations); + } /** * ETag hash of any `LIVE` stage of the function. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/FunctionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/FunctionArgs.java index bccdce269f2..78c7f4c4889 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/FunctionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/FunctionArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -47,6 +48,21 @@ public Optional> comment() { return Optional.ofNullable(this.comment); } + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + @Import(name="keyValueStoreAssociations") + private @Nullable Output> keyValueStoreAssociations; + + /** + * @return List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + public Optional>> keyValueStoreAssociations() { + return Optional.ofNullable(this.keyValueStoreAssociations); + } + /** * Unique name for your CloudFront Function. * @@ -101,6 +117,7 @@ private FunctionArgs() {} private FunctionArgs(FunctionArgs $) { this.code = $.code; this.comment = $.comment; + this.keyValueStoreAssociations = $.keyValueStoreAssociations; this.name = $.name; this.publish = $.publish; this.runtime = $.runtime; @@ -166,6 +183,37 @@ public Builder comment(String comment) { return comment(Output.of(comment)); } + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(@Nullable Output> keyValueStoreAssociations) { + $.keyValueStoreAssociations = keyValueStoreAssociations; + return this; + } + + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(List keyValueStoreAssociations) { + return keyValueStoreAssociations(Output.of(keyValueStoreAssociations)); + } + + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(String... keyValueStoreAssociations) { + return keyValueStoreAssociations(List.of(keyValueStoreAssociations)); + } + /** * @param name Unique name for your CloudFront Function. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKey.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKey.java new file mode 100644 index 00000000000..d69af2231db --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKey.java @@ -0,0 +1,180 @@ +// *** 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.cloudfront; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.cloudfront.KeyvaluestoreKeyArgs; +import com.pulumi.aws.cloudfront.inputs.KeyvaluestoreKeyState; +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.Integer; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS CloudFront KeyValueStore Key. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.cloudfront.KeyValueStore; + * import com.pulumi.aws.cloudfront.KeyValueStoreArgs; + * import com.pulumi.aws.cloudfront.KeyvaluestoreKey; + * import com.pulumi.aws.cloudfront.KeyvaluestoreKeyArgs; + * 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 KeyValueStore("example", KeyValueStoreArgs.builder() + * .name("ExampleKeyValueStore") + * .comment("This is an example key value store") + * .build()); + * + * var exampleKeyvaluestoreKey = new KeyvaluestoreKey("exampleKeyvaluestoreKey", KeyvaluestoreKeyArgs.builder() + * .keyValueStoreArn(example.arn()) + * .key("Test Key") + * .value("Test Value") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: + * + * ```sh + * $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey + * ``` + * + */ +@ResourceType(type="aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey") +public class KeyvaluestoreKey extends com.pulumi.resources.CustomResource { + /** + * Key to put. + * + */ + @Export(name="key", refs={String.class}, tree="[0]") + private Output key; + + /** + * @return Key to put. + * + */ + public Output key() { + return this.key; + } + /** + * Amazon Resource Name (ARN) of the Key Value Store. + * + */ + @Export(name="keyValueStoreArn", refs={String.class}, tree="[0]") + private Output keyValueStoreArn; + + /** + * @return Amazon Resource Name (ARN) of the Key Value Store. + * + */ + public Output keyValueStoreArn() { + return this.keyValueStoreArn; + } + /** + * Total size of the Key Value Store in bytes. + * + */ + @Export(name="totalSizeInBytes", refs={Integer.class}, tree="[0]") + private Output totalSizeInBytes; + + /** + * @return Total size of the Key Value Store in bytes. + * + */ + public Output totalSizeInBytes() { + return this.totalSizeInBytes; + } + /** + * Value to put. + * + */ + @Export(name="value", refs={String.class}, tree="[0]") + private Output value; + + /** + * @return Value to put. + * + */ + public Output value() { + return this.value; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public KeyvaluestoreKey(String name) { + this(name, KeyvaluestoreKeyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public KeyvaluestoreKey(String name, KeyvaluestoreKeyArgs 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 KeyvaluestoreKey(String name, KeyvaluestoreKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", name, args == null ? KeyvaluestoreKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private KeyvaluestoreKey(String name, Output id, @Nullable KeyvaluestoreKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static KeyvaluestoreKey get(String name, Output id, @Nullable KeyvaluestoreKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new KeyvaluestoreKey(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKeyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKeyArgs.java new file mode 100644 index 00000000000..d8616cc5fc7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/KeyvaluestoreKeyArgs.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.cloudfront; + +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 KeyvaluestoreKeyArgs extends com.pulumi.resources.ResourceArgs { + + public static final KeyvaluestoreKeyArgs Empty = new KeyvaluestoreKeyArgs(); + + /** + * Key to put. + * + */ + @Import(name="key", required=true) + private Output key; + + /** + * @return Key to put. + * + */ + public Output key() { + return this.key; + } + + /** + * Amazon Resource Name (ARN) of the Key Value Store. + * + */ + @Import(name="keyValueStoreArn", required=true) + private Output keyValueStoreArn; + + /** + * @return Amazon Resource Name (ARN) of the Key Value Store. + * + */ + public Output keyValueStoreArn() { + return this.keyValueStoreArn; + } + + /** + * Value to put. + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Value to put. + * + */ + public Output value() { + return this.value; + } + + private KeyvaluestoreKeyArgs() {} + + private KeyvaluestoreKeyArgs(KeyvaluestoreKeyArgs $) { + this.key = $.key; + this.keyValueStoreArn = $.keyValueStoreArn; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(KeyvaluestoreKeyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private KeyvaluestoreKeyArgs $; + + public Builder() { + $ = new KeyvaluestoreKeyArgs(); + } + + public Builder(KeyvaluestoreKeyArgs defaults) { + $ = new KeyvaluestoreKeyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param key Key to put. + * + * @return builder + * + */ + public Builder key(Output key) { + $.key = key; + return this; + } + + /** + * @param key Key to put. + * + * @return builder + * + */ + public Builder key(String key) { + return key(Output.of(key)); + } + + /** + * @param keyValueStoreArn Amazon Resource Name (ARN) of the Key Value Store. + * + * @return builder + * + */ + public Builder keyValueStoreArn(Output keyValueStoreArn) { + $.keyValueStoreArn = keyValueStoreArn; + return this; + } + + /** + * @param keyValueStoreArn Amazon Resource Name (ARN) of the Key Value Store. + * + * @return builder + * + */ + public Builder keyValueStoreArn(String keyValueStoreArn) { + return keyValueStoreArn(Output.of(keyValueStoreArn)); + } + + /** + * @param value Value to put. + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Value to put. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public KeyvaluestoreKeyArgs build() { + if ($.key == null) { + throw new MissingRequiredPropertyException("KeyvaluestoreKeyArgs", "key"); + } + if ($.keyValueStoreArn == null) { + throw new MissingRequiredPropertyException("KeyvaluestoreKeyArgs", "keyValueStoreArn"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("KeyvaluestoreKeyArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/FunctionState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/FunctionState.java index 5439adcd628..160e927ccbd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/FunctionState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/FunctionState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import java.lang.Boolean; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -76,6 +77,21 @@ public Optional> etag() { return Optional.ofNullable(this.etag); } + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + @Import(name="keyValueStoreAssociations") + private @Nullable Output> keyValueStoreAssociations; + + /** + * @return List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + */ + public Optional>> keyValueStoreAssociations() { + return Optional.ofNullable(this.keyValueStoreAssociations); + } + /** * ETag hash of any `LIVE` stage of the function. * @@ -162,6 +178,7 @@ private FunctionState(FunctionState $) { this.code = $.code; this.comment = $.comment; this.etag = $.etag; + this.keyValueStoreAssociations = $.keyValueStoreAssociations; this.liveStageEtag = $.liveStageEtag; this.name = $.name; this.publish = $.publish; @@ -271,6 +288,37 @@ public Builder etag(String etag) { return etag(Output.of(etag)); } + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(@Nullable Output> keyValueStoreAssociations) { + $.keyValueStoreAssociations = keyValueStoreAssociations; + return this; + } + + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(List keyValueStoreAssociations) { + return keyValueStoreAssociations(Output.of(keyValueStoreAssociations)); + } + + /** + * @param keyValueStoreAssociations List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + * + * @return builder + * + */ + public Builder keyValueStoreAssociations(String... keyValueStoreAssociations) { + return keyValueStoreAssociations(List.of(keyValueStoreAssociations)); + } + /** * @param liveStageEtag ETag hash of any `LIVE` stage of the function. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/KeyvaluestoreKeyState.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/KeyvaluestoreKeyState.java new file mode 100644 index 00000000000..fd73392252c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/inputs/KeyvaluestoreKeyState.java @@ -0,0 +1,195 @@ +// *** 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.cloudfront.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class KeyvaluestoreKeyState extends com.pulumi.resources.ResourceArgs { + + public static final KeyvaluestoreKeyState Empty = new KeyvaluestoreKeyState(); + + /** + * Key to put. + * + */ + @Import(name="key") + private @Nullable Output key; + + /** + * @return Key to put. + * + */ + public Optional> key() { + return Optional.ofNullable(this.key); + } + + /** + * Amazon Resource Name (ARN) of the Key Value Store. + * + */ + @Import(name="keyValueStoreArn") + private @Nullable Output keyValueStoreArn; + + /** + * @return Amazon Resource Name (ARN) of the Key Value Store. + * + */ + public Optional> keyValueStoreArn() { + return Optional.ofNullable(this.keyValueStoreArn); + } + + /** + * Total size of the Key Value Store in bytes. + * + */ + @Import(name="totalSizeInBytes") + private @Nullable Output totalSizeInBytes; + + /** + * @return Total size of the Key Value Store in bytes. + * + */ + public Optional> totalSizeInBytes() { + return Optional.ofNullable(this.totalSizeInBytes); + } + + /** + * Value to put. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return Value to put. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private KeyvaluestoreKeyState() {} + + private KeyvaluestoreKeyState(KeyvaluestoreKeyState $) { + this.key = $.key; + this.keyValueStoreArn = $.keyValueStoreArn; + this.totalSizeInBytes = $.totalSizeInBytes; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(KeyvaluestoreKeyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private KeyvaluestoreKeyState $; + + public Builder() { + $ = new KeyvaluestoreKeyState(); + } + + public Builder(KeyvaluestoreKeyState defaults) { + $ = new KeyvaluestoreKeyState(Objects.requireNonNull(defaults)); + } + + /** + * @param key Key to put. + * + * @return builder + * + */ + public Builder key(@Nullable Output key) { + $.key = key; + return this; + } + + /** + * @param key Key to put. + * + * @return builder + * + */ + public Builder key(String key) { + return key(Output.of(key)); + } + + /** + * @param keyValueStoreArn Amazon Resource Name (ARN) of the Key Value Store. + * + * @return builder + * + */ + public Builder keyValueStoreArn(@Nullable Output keyValueStoreArn) { + $.keyValueStoreArn = keyValueStoreArn; + return this; + } + + /** + * @param keyValueStoreArn Amazon Resource Name (ARN) of the Key Value Store. + * + * @return builder + * + */ + public Builder keyValueStoreArn(String keyValueStoreArn) { + return keyValueStoreArn(Output.of(keyValueStoreArn)); + } + + /** + * @param totalSizeInBytes Total size of the Key Value Store in bytes. + * + * @return builder + * + */ + public Builder totalSizeInBytes(@Nullable Output totalSizeInBytes) { + $.totalSizeInBytes = totalSizeInBytes; + return this; + } + + /** + * @param totalSizeInBytes Total size of the Key Value Store in bytes. + * + * @return builder + * + */ + public Builder totalSizeInBytes(Integer totalSizeInBytes) { + return totalSizeInBytes(Output.of(totalSizeInBytes)); + } + + /** + * @param value Value to put. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value Value to put. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public KeyvaluestoreKeyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetFunctionResult.java b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetFunctionResult.java index 42e5555be47..9e7bdc16ca6 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetFunctionResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/cloudfront/outputs/GetFunctionResult.java @@ -6,6 +6,7 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.String; +import java.util.List; import java.util.Objects; @CustomType @@ -35,6 +36,11 @@ public final class GetFunctionResult { * */ private String id; + /** + * @return List of `aws.cloudfront.KeyValueStore` ARNs associated to the function. + * + */ + private List keyValueStoreAssociations; /** * @return When this resource was last modified. * @@ -89,6 +95,13 @@ public String etag() { public String id() { return this.id; } + /** + * @return List of `aws.cloudfront.KeyValueStore` ARNs associated to the function. + * + */ + public List keyValueStoreAssociations() { + return this.keyValueStoreAssociations; + } /** * @return When this resource was last modified. * @@ -131,6 +144,7 @@ public static final class Builder { private String comment; private String etag; private String id; + private List keyValueStoreAssociations; private String lastModifiedTime; private String name; private String runtime; @@ -144,6 +158,7 @@ public Builder(GetFunctionResult defaults) { this.comment = defaults.comment; this.etag = defaults.etag; this.id = defaults.id; + this.keyValueStoreAssociations = defaults.keyValueStoreAssociations; this.lastModifiedTime = defaults.lastModifiedTime; this.name = defaults.name; this.runtime = defaults.runtime; @@ -192,6 +207,17 @@ public Builder id(String id) { return this; } @CustomType.Setter + public Builder keyValueStoreAssociations(List keyValueStoreAssociations) { + if (keyValueStoreAssociations == null) { + throw new MissingRequiredPropertyException("GetFunctionResult", "keyValueStoreAssociations"); + } + this.keyValueStoreAssociations = keyValueStoreAssociations; + return this; + } + public Builder keyValueStoreAssociations(String... keyValueStoreAssociations) { + return keyValueStoreAssociations(List.of(keyValueStoreAssociations)); + } + @CustomType.Setter public Builder lastModifiedTime(String lastModifiedTime) { if (lastModifiedTime == null) { throw new MissingRequiredPropertyException("GetFunctionResult", "lastModifiedTime"); @@ -238,6 +264,7 @@ public GetFunctionResult build() { _resultValue.comment = comment; _resultValue.etag = etag; _resultValue.id = id; + _resultValue.keyValueStoreAssociations = keyValueStoreAssociations; _resultValue.lastModifiedTime = lastModifiedTime; _resultValue.name = name; _resultValue.runtime = runtime; diff --git a/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java b/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java index d37b2abc8ff..dc60b6dec52 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java +++ b/sdk/java/src/main/java/com/pulumi/aws/config/inputs/Endpoints.java @@ -431,6 +431,11 @@ public final class Endpoints { * */ private @Nullable String datasync; + /** + * @return Use this to override the default service endpoint URL + * + */ + private @Nullable String datazone; /** * @return Use this to override the default service endpoint URL * @@ -981,6 +986,11 @@ public final class Endpoints { * */ private @Nullable String outposts; + /** + * @return Use this to override the default service endpoint URL + * + */ + private @Nullable String paymentcryptography; /** * @return Use this to override the default service endpoint URL * @@ -1971,6 +1981,13 @@ public Optional datapipeline() { public Optional datasync() { return Optional.ofNullable(this.datasync); } + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional datazone() { + return Optional.ofNullable(this.datazone); + } /** * @return Use this to override the default service endpoint URL * @@ -2741,6 +2758,13 @@ public Optional osis() { public Optional outposts() { return Optional.ofNullable(this.outposts); } + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional paymentcryptography() { + return Optional.ofNullable(this.paymentcryptography); + } /** * @return Use this to override the default service endpoint URL * @@ -3395,6 +3419,7 @@ public static final class Builder { private @Nullable String dataexchange; private @Nullable String datapipeline; private @Nullable String datasync; + private @Nullable String datazone; private @Nullable String dax; private @Nullable String deploy; private @Nullable String detective; @@ -3505,6 +3530,7 @@ public static final class Builder { private @Nullable String organizations; private @Nullable String osis; private @Nullable String outposts; + private @Nullable String paymentcryptography; private @Nullable String pcaconnectorad; private @Nullable String pinpoint; private @Nullable String pipes; @@ -3672,6 +3698,7 @@ public Builder(Endpoints defaults) { this.dataexchange = defaults.dataexchange; this.datapipeline = defaults.datapipeline; this.datasync = defaults.datasync; + this.datazone = defaults.datazone; this.dax = defaults.dax; this.deploy = defaults.deploy; this.detective = defaults.detective; @@ -3782,6 +3809,7 @@ public Builder(Endpoints defaults) { this.organizations = defaults.organizations; this.osis = defaults.osis; this.outposts = defaults.outposts; + this.paymentcryptography = defaults.paymentcryptography; this.pcaconnectorad = defaults.pcaconnectorad; this.pinpoint = defaults.pinpoint; this.pipes = defaults.pipes; @@ -4369,6 +4397,12 @@ public Builder datasync(@Nullable String datasync) { return this; } @CustomType.Setter + public Builder datazone(@Nullable String datazone) { + + this.datazone = datazone; + return this; + } + @CustomType.Setter public Builder dax(@Nullable String dax) { this.dax = dax; @@ -5029,6 +5063,12 @@ public Builder outposts(@Nullable String outposts) { return this; } @CustomType.Setter + public Builder paymentcryptography(@Nullable String paymentcryptography) { + + this.paymentcryptography = paymentcryptography; + return this; + } + @CustomType.Setter public Builder pcaconnectorad(@Nullable String pcaconnectorad) { this.pcaconnectorad = pcaconnectorad; @@ -5594,6 +5634,7 @@ public Endpoints build() { _resultValue.dataexchange = dataexchange; _resultValue.datapipeline = datapipeline; _resultValue.datasync = datasync; + _resultValue.datazone = datazone; _resultValue.dax = dax; _resultValue.deploy = deploy; _resultValue.detective = detective; @@ -5704,6 +5745,7 @@ public Endpoints build() { _resultValue.organizations = organizations; _resultValue.osis = osis; _resultValue.outposts = outposts; + _resultValue.paymentcryptography = paymentcryptography; _resultValue.pcaconnectorad = pcaconnectorad; _resultValue.pinpoint = pinpoint; _resultValue.pipes = pipes; diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannel.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannel.java new file mode 100644 index 00000000000..994d5c9b39a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannel.java @@ -0,0 +1,192 @@ +// *** 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.devopsguru; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.devopsguru.NotificationChannelArgs; +import com.pulumi.aws.devopsguru.inputs.NotificationChannelState; +import com.pulumi.aws.devopsguru.outputs.NotificationChannelFilters; +import com.pulumi.aws.devopsguru.outputs.NotificationChannelSns; +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.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an AWS DevOps Guru Notification Channel. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.devopsguru.NotificationChannel; + * import com.pulumi.aws.devopsguru.NotificationChannelArgs; + * import com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs; + * 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 NotificationChannel("example", NotificationChannelArgs.builder() + * .sns(NotificationChannelSnsArgs.builder() + * .topicArn(exampleAwsSnsTopic.arn()) + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### Filters + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.devopsguru.NotificationChannel; + * import com.pulumi.aws.devopsguru.NotificationChannelArgs; + * import com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs; + * import com.pulumi.aws.devopsguru.inputs.NotificationChannelFiltersArgs; + * 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 NotificationChannel("example", NotificationChannelArgs.builder() + * .sns(NotificationChannelSnsArgs.builder() + * .topicArn(exampleAwsSnsTopic.arn()) + * .build()) + * .filters(NotificationChannelFiltersArgs.builder() + * .messageTypes("NEW_INSIGHT") + * .severities("HIGH") + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: + * + * ```sh + * $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 + * ``` + * + */ +@ResourceType(type="aws:devopsguru/notificationChannel:NotificationChannel") +public class NotificationChannel extends com.pulumi.resources.CustomResource { + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + @Export(name="filters", refs={NotificationChannelFilters.class}, tree="[0]") + private Output filters; + + /** + * @return Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + public Output> filters() { + return Codegen.optional(this.filters); + } + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + @Export(name="sns", refs={NotificationChannelSns.class}, tree="[0]") + private Output sns; + + /** + * @return SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + public Output> sns() { + return Codegen.optional(this.sns); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public NotificationChannel(String name) { + this(name, NotificationChannelArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public NotificationChannel(String name, @Nullable NotificationChannelArgs 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 NotificationChannel(String name, @Nullable NotificationChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:devopsguru/notificationChannel:NotificationChannel", name, args == null ? NotificationChannelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private NotificationChannel(String name, Output id, @Nullable NotificationChannelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:devopsguru/notificationChannel:NotificationChannel", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static NotificationChannel get(String name, Output id, @Nullable NotificationChannelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new NotificationChannel(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannelArgs.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannelArgs.java new file mode 100644 index 00000000000..9edcfcd4d9e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/NotificationChannelArgs.java @@ -0,0 +1,129 @@ +// *** 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.devopsguru; + +import com.pulumi.aws.devopsguru.inputs.NotificationChannelFiltersArgs; +import com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class NotificationChannelArgs extends com.pulumi.resources.ResourceArgs { + + public static final NotificationChannelArgs Empty = new NotificationChannelArgs(); + + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + @Import(name="filters") + private @Nullable Output filters; + + /** + * @return Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + public Optional> filters() { + return Optional.ofNullable(this.filters); + } + + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + @Import(name="sns") + private @Nullable Output sns; + + /** + * @return SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + public Optional> sns() { + return Optional.ofNullable(this.sns); + } + + private NotificationChannelArgs() {} + + private NotificationChannelArgs(NotificationChannelArgs $) { + this.filters = $.filters; + this.sns = $.sns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NotificationChannelArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NotificationChannelArgs $; + + public Builder() { + $ = new NotificationChannelArgs(); + } + + public Builder(NotificationChannelArgs defaults) { + $ = new NotificationChannelArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param filters Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + * @return builder + * + */ + public Builder filters(@Nullable Output filters) { + $.filters = filters; + return this; + } + + /** + * @param filters Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + * @return builder + * + */ + public Builder filters(NotificationChannelFiltersArgs filters) { + return filters(Output.of(filters)); + } + + /** + * @param sns SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder sns(@Nullable Output sns) { + $.sns = sns; + return this; + } + + /** + * @param sns SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder sns(NotificationChannelSnsArgs sns) { + return sns(Output.of(sns)); + } + + public NotificationChannelArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelFiltersArgs.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelFiltersArgs.java new file mode 100644 index 00000000000..bb08eacd0d5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelFiltersArgs.java @@ -0,0 +1,141 @@ +// *** 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.devopsguru.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 NotificationChannelFiltersArgs extends com.pulumi.resources.ResourceArgs { + + public static final NotificationChannelFiltersArgs Empty = new NotificationChannelFiltersArgs(); + + /** + * Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + */ + @Import(name="messageTypes") + private @Nullable Output> messageTypes; + + /** + * @return Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + */ + public Optional>> messageTypes() { + return Optional.ofNullable(this.messageTypes); + } + + /** + * Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + */ + @Import(name="severities") + private @Nullable Output> severities; + + /** + * @return Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + */ + public Optional>> severities() { + return Optional.ofNullable(this.severities); + } + + private NotificationChannelFiltersArgs() {} + + private NotificationChannelFiltersArgs(NotificationChannelFiltersArgs $) { + this.messageTypes = $.messageTypes; + this.severities = $.severities; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NotificationChannelFiltersArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NotificationChannelFiltersArgs $; + + public Builder() { + $ = new NotificationChannelFiltersArgs(); + } + + public Builder(NotificationChannelFiltersArgs defaults) { + $ = new NotificationChannelFiltersArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param messageTypes Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + * @return builder + * + */ + public Builder messageTypes(@Nullable Output> messageTypes) { + $.messageTypes = messageTypes; + return this; + } + + /** + * @param messageTypes Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + * @return builder + * + */ + public Builder messageTypes(List messageTypes) { + return messageTypes(Output.of(messageTypes)); + } + + /** + * @param messageTypes Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + * @return builder + * + */ + public Builder messageTypes(String... messageTypes) { + return messageTypes(List.of(messageTypes)); + } + + /** + * @param severities Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + * @return builder + * + */ + public Builder severities(@Nullable Output> severities) { + $.severities = severities; + return this; + } + + /** + * @param severities Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + * @return builder + * + */ + public Builder severities(List severities) { + return severities(Output.of(severities)); + } + + /** + * @param severities Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + * @return builder + * + */ + public Builder severities(String... severities) { + return severities(List.of(severities)); + } + + public NotificationChannelFiltersArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelSnsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelSnsArgs.java new file mode 100644 index 00000000000..065cb907098 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelSnsArgs.java @@ -0,0 +1,65 @@ +// *** 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.devopsguru.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 NotificationChannelSnsArgs extends com.pulumi.resources.ResourceArgs { + + public static final NotificationChannelSnsArgs Empty = new NotificationChannelSnsArgs(); + + @Import(name="topicArn", required=true) + private Output topicArn; + + public Output topicArn() { + return this.topicArn; + } + + private NotificationChannelSnsArgs() {} + + private NotificationChannelSnsArgs(NotificationChannelSnsArgs $) { + this.topicArn = $.topicArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NotificationChannelSnsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NotificationChannelSnsArgs $; + + public Builder() { + $ = new NotificationChannelSnsArgs(); + } + + public Builder(NotificationChannelSnsArgs defaults) { + $ = new NotificationChannelSnsArgs(Objects.requireNonNull(defaults)); + } + + public Builder topicArn(Output topicArn) { + $.topicArn = topicArn; + return this; + } + + public Builder topicArn(String topicArn) { + return topicArn(Output.of(topicArn)); + } + + public NotificationChannelSnsArgs build() { + if ($.topicArn == null) { + throw new MissingRequiredPropertyException("NotificationChannelSnsArgs", "topicArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelState.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelState.java new file mode 100644 index 00000000000..7dc67518154 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/inputs/NotificationChannelState.java @@ -0,0 +1,129 @@ +// *** 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.devopsguru.inputs; + +import com.pulumi.aws.devopsguru.inputs.NotificationChannelFiltersArgs; +import com.pulumi.aws.devopsguru.inputs.NotificationChannelSnsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class NotificationChannelState extends com.pulumi.resources.ResourceArgs { + + public static final NotificationChannelState Empty = new NotificationChannelState(); + + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + @Import(name="filters") + private @Nullable Output filters; + + /** + * @return Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + */ + public Optional> filters() { + return Optional.ofNullable(this.filters); + } + + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + @Import(name="sns") + private @Nullable Output sns; + + /** + * @return SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + */ + public Optional> sns() { + return Optional.ofNullable(this.sns); + } + + private NotificationChannelState() {} + + private NotificationChannelState(NotificationChannelState $) { + this.filters = $.filters; + this.sns = $.sns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(NotificationChannelState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private NotificationChannelState $; + + public Builder() { + $ = new NotificationChannelState(); + } + + public Builder(NotificationChannelState defaults) { + $ = new NotificationChannelState(Objects.requireNonNull(defaults)); + } + + /** + * @param filters Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + * @return builder + * + */ + public Builder filters(@Nullable Output filters) { + $.filters = filters; + return this; + } + + /** + * @param filters Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + * + * @return builder + * + */ + public Builder filters(NotificationChannelFiltersArgs filters) { + return filters(Output.of(filters)); + } + + /** + * @param sns SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder sns(@Nullable Output sns) { + $.sns = sns; + return this; + } + + /** + * @param sns SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder sns(NotificationChannelSnsArgs sns) { + return sns(Output.of(sns)); + } + + public NotificationChannelState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelFilters.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelFilters.java new file mode 100644 index 00000000000..dabbd6e8e0b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelFilters.java @@ -0,0 +1,84 @@ +// *** 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.devopsguru.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 NotificationChannelFilters { + /** + * @return Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + */ + private @Nullable List messageTypes; + /** + * @return Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + */ + private @Nullable List severities; + + private NotificationChannelFilters() {} + /** + * @return Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + * + */ + public List messageTypes() { + return this.messageTypes == null ? List.of() : this.messageTypes; + } + /** + * @return Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + * + */ + public List severities() { + return this.severities == null ? List.of() : this.severities; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NotificationChannelFilters defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List messageTypes; + private @Nullable List severities; + public Builder() {} + public Builder(NotificationChannelFilters defaults) { + Objects.requireNonNull(defaults); + this.messageTypes = defaults.messageTypes; + this.severities = defaults.severities; + } + + @CustomType.Setter + public Builder messageTypes(@Nullable List messageTypes) { + + this.messageTypes = messageTypes; + return this; + } + public Builder messageTypes(String... messageTypes) { + return messageTypes(List.of(messageTypes)); + } + @CustomType.Setter + public Builder severities(@Nullable List severities) { + + this.severities = severities; + return this; + } + public Builder severities(String... severities) { + return severities(List.of(severities)); + } + public NotificationChannelFilters build() { + final var _resultValue = new NotificationChannelFilters(); + _resultValue.messageTypes = messageTypes; + _resultValue.severities = severities; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelSns.java b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelSns.java new file mode 100644 index 00000000000..187ff221035 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/devopsguru/outputs/NotificationChannelSns.java @@ -0,0 +1,50 @@ +// *** 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.devopsguru.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class NotificationChannelSns { + private String topicArn; + + private NotificationChannelSns() {} + public String topicArn() { + return this.topicArn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(NotificationChannelSns defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String topicArn; + public Builder() {} + public Builder(NotificationChannelSns defaults) { + Objects.requireNonNull(defaults); + this.topicArn = defaults.topicArn; + } + + @CustomType.Setter + public Builder topicArn(String topicArn) { + if (topicArn == null) { + throw new MissingRequiredPropertyException("NotificationChannelSns", "topicArn"); + } + this.topicArn = topicArn; + return this; + } + public NotificationChannelSns build() { + final var _resultValue = new NotificationChannelSns(); + _resultValue.topicArn = topicArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicy.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicy.java new file mode 100644 index 00000000000..86cb43ebb06 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicy.java @@ -0,0 +1,185 @@ +// *** 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.dynamodb; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.dynamodb.ResourcePolicyArgs; +import com.pulumi.aws.dynamodb.inputs.ResourcePolicyState; +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.Boolean; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * <!--- + * TIP: A few guiding principles for writing documentation: + * 1. Use simple language while avoiding jargon and figures of speech. + * 2. Focus on brevity and clarity to keep a reader's attention. + * 3. Use active voice and present tense whenever you can. + * 4. Document your feature as it exists now; do not mention the future or past if you can help it. + * 5. Use accessible and inclusive language. + * --->` + * + * Resource for managing an AWS DynamoDB Resource Policy. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.dynamodb.ResourcePolicy; + * import com.pulumi.aws.dynamodb.ResourcePolicyArgs; + * 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 ResourcePolicy("example", ResourcePolicyArgs.builder() + * .resourceArn(exampleAwsDynamodbTable.arn()) + * .policy(test.json()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: + * + * ```sh + * $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table + * ``` + * + */ +@ResourceType(type="aws:dynamodb/resourcePolicy:ResourcePolicy") +public class ResourcePolicy extends com.pulumi.resources.CustomResource { + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + @Export(name="confirmRemoveSelfResourceAccess", refs={Boolean.class}, tree="[0]") + private Output confirmRemoveSelfResourceAccess; + + /** + * @return Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + public Output confirmRemoveSelfResourceAccess() { + return this.confirmRemoveSelfResourceAccess; + } + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + @Export(name="policy", refs={String.class}, tree="[0]") + private Output policy; + + /** + * @return n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + public Output policy() { + return this.policy; + } + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + @Export(name="resourceArn", refs={String.class}, tree="[0]") + private Output resourceArn; + + /** + * @return The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + public Output resourceArn() { + return this.resourceArn; + } + /** + * A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + */ + @Export(name="revisionId", refs={String.class}, tree="[0]") + private Output revisionId; + + /** + * @return A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + */ + public Output revisionId() { + return this.revisionId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourcePolicy(String name) { + this(name, ResourcePolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourcePolicy(String name, ResourcePolicyArgs 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 ResourcePolicy(String name, ResourcePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:dynamodb/resourcePolicy:ResourcePolicy", name, args == null ? ResourcePolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private ResourcePolicy(String name, Output id, @Nullable ResourcePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:dynamodb/resourcePolicy:ResourcePolicy", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourcePolicy get(String name, Output id, @Nullable ResourcePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourcePolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicyArgs.java new file mode 100644 index 00000000000..75f67b25189 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/ResourcePolicyArgs.java @@ -0,0 +1,173 @@ +// *** 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.dynamodb; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourcePolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourcePolicyArgs Empty = new ResourcePolicyArgs(); + + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + @Import(name="confirmRemoveSelfResourceAccess") + private @Nullable Output confirmRemoveSelfResourceAccess; + + /** + * @return Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + public Optional> confirmRemoveSelfResourceAccess() { + return Optional.ofNullable(this.confirmRemoveSelfResourceAccess); + } + + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + @Import(name="policy", required=true) + private Output policy; + + /** + * @return n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + public Output policy() { + return this.policy; + } + + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + @Import(name="resourceArn", required=true) + private Output resourceArn; + + /** + * @return The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + public Output resourceArn() { + return this.resourceArn; + } + + private ResourcePolicyArgs() {} + + private ResourcePolicyArgs(ResourcePolicyArgs $) { + this.confirmRemoveSelfResourceAccess = $.confirmRemoveSelfResourceAccess; + this.policy = $.policy; + this.resourceArn = $.resourceArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourcePolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourcePolicyArgs $; + + public Builder() { + $ = new ResourcePolicyArgs(); + } + + public Builder(ResourcePolicyArgs defaults) { + $ = new ResourcePolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param confirmRemoveSelfResourceAccess Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + * @return builder + * + */ + public Builder confirmRemoveSelfResourceAccess(@Nullable Output confirmRemoveSelfResourceAccess) { + $.confirmRemoveSelfResourceAccess = confirmRemoveSelfResourceAccess; + return this; + } + + /** + * @param confirmRemoveSelfResourceAccess Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + * @return builder + * + */ + public Builder confirmRemoveSelfResourceAccess(Boolean confirmRemoveSelfResourceAccess) { + return confirmRemoveSelfResourceAccess(Output.of(confirmRemoveSelfResourceAccess)); + } + + /** + * @param policy n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(Output policy) { + $.policy = policy; + return this; + } + + /** + * @param policy n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(String policy) { + return policy(Output.of(policy)); + } + + /** + * @param resourceArn The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + * @return builder + * + */ + public Builder resourceArn(Output resourceArn) { + $.resourceArn = resourceArn; + return this; + } + + /** + * @param resourceArn The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + * @return builder + * + */ + public Builder resourceArn(String resourceArn) { + return resourceArn(Output.of(resourceArn)); + } + + public ResourcePolicyArgs build() { + if ($.policy == null) { + throw new MissingRequiredPropertyException("ResourcePolicyArgs", "policy"); + } + if ($.resourceArn == null) { + throw new MissingRequiredPropertyException("ResourcePolicyArgs", "resourceArn"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/ResourcePolicyState.java b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/ResourcePolicyState.java new file mode 100644 index 00000000000..77437feadcb --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/dynamodb/inputs/ResourcePolicyState.java @@ -0,0 +1,203 @@ +// *** 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.dynamodb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourcePolicyState extends com.pulumi.resources.ResourceArgs { + + public static final ResourcePolicyState Empty = new ResourcePolicyState(); + + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + @Import(name="confirmRemoveSelfResourceAccess") + private @Nullable Output confirmRemoveSelfResourceAccess; + + /** + * @return Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + */ + public Optional> confirmRemoveSelfResourceAccess() { + return Optional.ofNullable(this.confirmRemoveSelfResourceAccess); + } + + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + @Import(name="policy") + private @Nullable Output policy; + + /** + * @return n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + */ + public Optional> policy() { + return Optional.ofNullable(this.policy); + } + + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + @Import(name="resourceArn") + private @Nullable Output resourceArn; + + /** + * @return The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + */ + public Optional> resourceArn() { + return Optional.ofNullable(this.resourceArn); + } + + /** + * A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + */ + @Import(name="revisionId") + private @Nullable Output revisionId; + + /** + * @return A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + */ + public Optional> revisionId() { + return Optional.ofNullable(this.revisionId); + } + + private ResourcePolicyState() {} + + private ResourcePolicyState(ResourcePolicyState $) { + this.confirmRemoveSelfResourceAccess = $.confirmRemoveSelfResourceAccess; + this.policy = $.policy; + this.resourceArn = $.resourceArn; + this.revisionId = $.revisionId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourcePolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourcePolicyState $; + + public Builder() { + $ = new ResourcePolicyState(); + } + + public Builder(ResourcePolicyState defaults) { + $ = new ResourcePolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param confirmRemoveSelfResourceAccess Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + * @return builder + * + */ + public Builder confirmRemoveSelfResourceAccess(@Nullable Output confirmRemoveSelfResourceAccess) { + $.confirmRemoveSelfResourceAccess = confirmRemoveSelfResourceAccess; + return this; + } + + /** + * @param confirmRemoveSelfResourceAccess Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + * + * @return builder + * + */ + public Builder confirmRemoveSelfResourceAccess(Boolean confirmRemoveSelfResourceAccess) { + return confirmRemoveSelfResourceAccess(Output.of(confirmRemoveSelfResourceAccess)); + } + + /** + * @param policy n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(@Nullable Output policy) { + $.policy = policy; + return this; + } + + /** + * @param policy n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder policy(String policy) { + return policy(Output.of(policy)); + } + + /** + * @param resourceArn The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + * @return builder + * + */ + public Builder resourceArn(@Nullable Output resourceArn) { + $.resourceArn = resourceArn; + return this; + } + + /** + * @param resourceArn The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + * + * @return builder + * + */ + public Builder resourceArn(String resourceArn) { + return resourceArn(Output.of(resourceArn)); + } + + /** + * @param revisionId A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + * @return builder + * + */ + public Builder revisionId(@Nullable Output revisionId) { + $.revisionId = revisionId; + return this; + } + + /** + * @param revisionId A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + * + * @return builder + * + */ + public Builder revisionId(String revisionId) { + return revisionId(Output.of(revisionId)); + } + + public ResourcePolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaults.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaults.java new file mode 100644 index 00000000000..c3850c064e8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaults.java @@ -0,0 +1,167 @@ +// *** 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.ec2; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.ec2.InstanceMetadataDefaultsArgs; +import com.pulumi.aws.ec2.inputs.InstanceMetadataDefaultsState; +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.Integer; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Manages regional EC2 instance metadata default settings. + * More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.ec2.InstanceMetadataDefaults; + * import com.pulumi.aws.ec2.InstanceMetadataDefaultsArgs; + * 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 enforce_imdsv2 = new InstanceMetadataDefaults("enforce-imdsv2", InstanceMetadataDefaultsArgs.builder() + * .httpTokens("required") + * .httpPutResponseHopLimit(1) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * You cannot import this resource. + * + */ +@ResourceType(type="aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults") +public class InstanceMetadataDefaults extends com.pulumi.resources.CustomResource { + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Export(name="httpEndpoint", refs={String.class}, tree="[0]") + private Output httpEndpoint; + + /** + * @return Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Output httpEndpoint() { + return this.httpEndpoint; + } + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + @Export(name="httpPutResponseHopLimit", refs={Integer.class}, tree="[0]") + private Output httpPutResponseHopLimit; + + /** + * @return The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + public Output httpPutResponseHopLimit() { + return this.httpPutResponseHopLimit; + } + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Export(name="httpTokens", refs={String.class}, tree="[0]") + private Output httpTokens; + + /** + * @return Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Output httpTokens() { + return this.httpTokens; + } + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Export(name="instanceMetadataTags", refs={String.class}, tree="[0]") + private Output instanceMetadataTags; + + /** + * @return Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Output instanceMetadataTags() { + return this.instanceMetadataTags; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public InstanceMetadataDefaults(String name) { + this(name, InstanceMetadataDefaultsArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public InstanceMetadataDefaults(String name, @Nullable InstanceMetadataDefaultsArgs 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 InstanceMetadataDefaults(String name, @Nullable InstanceMetadataDefaultsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, args == null ? InstanceMetadataDefaultsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private InstanceMetadataDefaults(String name, Output id, @Nullable InstanceMetadataDefaultsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static InstanceMetadataDefaults get(String name, Output id, @Nullable InstanceMetadataDefaultsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new InstanceMetadataDefaults(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaultsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaultsArgs.java new file mode 100644 index 00000000000..b1987e672ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/InstanceMetadataDefaultsArgs.java @@ -0,0 +1,195 @@ +// *** 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.ec2; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class InstanceMetadataDefaultsArgs extends com.pulumi.resources.ResourceArgs { + + public static final InstanceMetadataDefaultsArgs Empty = new InstanceMetadataDefaultsArgs(); + + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="httpEndpoint") + private @Nullable Output httpEndpoint; + + /** + * @return Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> httpEndpoint() { + return Optional.ofNullable(this.httpEndpoint); + } + + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + @Import(name="httpPutResponseHopLimit") + private @Nullable Output httpPutResponseHopLimit; + + /** + * @return The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + public Optional> httpPutResponseHopLimit() { + return Optional.ofNullable(this.httpPutResponseHopLimit); + } + + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="httpTokens") + private @Nullable Output httpTokens; + + /** + * @return Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> httpTokens() { + return Optional.ofNullable(this.httpTokens); + } + + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="instanceMetadataTags") + private @Nullable Output instanceMetadataTags; + + /** + * @return Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> instanceMetadataTags() { + return Optional.ofNullable(this.instanceMetadataTags); + } + + private InstanceMetadataDefaultsArgs() {} + + private InstanceMetadataDefaultsArgs(InstanceMetadataDefaultsArgs $) { + this.httpEndpoint = $.httpEndpoint; + this.httpPutResponseHopLimit = $.httpPutResponseHopLimit; + this.httpTokens = $.httpTokens; + this.instanceMetadataTags = $.instanceMetadataTags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceMetadataDefaultsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceMetadataDefaultsArgs $; + + public Builder() { + $ = new InstanceMetadataDefaultsArgs(); + } + + public Builder(InstanceMetadataDefaultsArgs defaults) { + $ = new InstanceMetadataDefaultsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param httpEndpoint Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpEndpoint(@Nullable Output httpEndpoint) { + $.httpEndpoint = httpEndpoint; + return this; + } + + /** + * @param httpEndpoint Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpEndpoint(String httpEndpoint) { + return httpEndpoint(Output.of(httpEndpoint)); + } + + /** + * @param httpPutResponseHopLimit The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + * @return builder + * + */ + public Builder httpPutResponseHopLimit(@Nullable Output httpPutResponseHopLimit) { + $.httpPutResponseHopLimit = httpPutResponseHopLimit; + return this; + } + + /** + * @param httpPutResponseHopLimit The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + * @return builder + * + */ + public Builder httpPutResponseHopLimit(Integer httpPutResponseHopLimit) { + return httpPutResponseHopLimit(Output.of(httpPutResponseHopLimit)); + } + + /** + * @param httpTokens Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpTokens(@Nullable Output httpTokens) { + $.httpTokens = httpTokens; + return this; + } + + /** + * @param httpTokens Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpTokens(String httpTokens) { + return httpTokens(Output.of(httpTokens)); + } + + /** + * @param instanceMetadataTags Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder instanceMetadataTags(@Nullable Output instanceMetadataTags) { + $.instanceMetadataTags = instanceMetadataTags; + return this; + } + + /** + * @param instanceMetadataTags Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder instanceMetadataTags(String instanceMetadataTags) { + return instanceMetadataTags(Output.of(instanceMetadataTags)); + } + + public InstanceMetadataDefaultsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/Vpc.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/Vpc.java index 60553e5a903..5d4b04308ec 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/Vpc.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/Vpc.java @@ -247,9 +247,17 @@ public Output defaultRouteTableId() { public Output defaultSecurityGroupId() { return this.defaultSecurityGroupId; } + /** + * DHCP options id of the desired VPC. + * + */ @Export(name="dhcpOptionsId", refs={String.class}, tree="[0]") private Output dhcpOptionsId; + /** + * @return DHCP options id of the desired VPC. + * + */ public Output dhcpOptionsId() { return this.dhcpOptionsId; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpam.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpam.java index 7357cef9d86..db27af63301 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpam.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpam.java @@ -239,6 +239,20 @@ public Output>> tags() { public Output> tagsAll() { return this.tagsAll; } + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + @Export(name="tier", refs={String.class}, tree="[0]") + private Output tier; + + /** + * @return specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + public Output> tier() { + return Codegen.optional(this.tier); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpamArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpamArgs.java index d0c7d5c2991..611e3adee41 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpamArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpcIpamArgs.java @@ -80,6 +80,21 @@ public Optional>> tags() { return Optional.ofNullable(this.tags); } + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + @Import(name="tier") + private @Nullable Output tier; + + /** + * @return specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + public Optional> tier() { + return Optional.ofNullable(this.tier); + } + private VpcIpamArgs() {} private VpcIpamArgs(VpcIpamArgs $) { @@ -87,6 +102,7 @@ private VpcIpamArgs(VpcIpamArgs $) { this.description = $.description; this.operatingRegions = $.operatingRegions; this.tags = $.tags; + this.tier = $.tier; } public static Builder builder() { @@ -201,6 +217,27 @@ public Builder tags(Map tags) { return tags(Output.of(tags)); } + /** + * @param tier specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + * @return builder + * + */ + public Builder tier(@Nullable Output tier) { + $.tier = tier; + return this; + } + + /** + * @param tier specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + * @return builder + * + */ + public Builder tier(String tier) { + return tier(Output.of(tier)); + } + public VpcIpamArgs build() { if ($.operatingRegions == null) { throw new MissingRequiredPropertyException("VpcIpamArgs", "operatingRegions"); diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnection.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnection.java index 26e81e9c3ae..2f892e2ac3b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnection.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnection.java @@ -362,14 +362,14 @@ public Output remoteIpv4NetworkCidr() { return this.remoteIpv4NetworkCidr; } /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. * */ @Export(name="remoteIpv6NetworkCidr", refs={String.class}, tree="[0]") private Output remoteIpv6NetworkCidr; /** - * @return The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @return The IPv6 CIDR on the AWS side of the VPN connection. * */ public Output remoteIpv6NetworkCidr() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnectionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnectionArgs.java index 117a18b3ce4..fbec3862b85 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnectionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/VpnConnectionArgs.java @@ -113,14 +113,14 @@ public Optional> remoteIpv4NetworkCidr() { } /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. * */ @Import(name="remoteIpv6NetworkCidr") private @Nullable Output remoteIpv6NetworkCidr; /** - * @return The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @return The IPv6 CIDR on the AWS side of the VPN connection. * */ public Optional> remoteIpv6NetworkCidr() { @@ -1036,7 +1036,7 @@ public Builder remoteIpv4NetworkCidr(String remoteIpv4NetworkCidr) { } /** - * @param remoteIpv6NetworkCidr The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @param remoteIpv6NetworkCidr The IPv6 CIDR on the AWS side of the VPN connection. * * @return builder * @@ -1047,7 +1047,7 @@ public Builder remoteIpv6NetworkCidr(@Nullable Output remoteIpv6NetworkC } /** - * @param remoteIpv6NetworkCidr The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @param remoteIpv6NetworkCidr The IPv6 CIDR on the AWS side of the VPN connection. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/InstanceMetadataDefaultsState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/InstanceMetadataDefaultsState.java new file mode 100644 index 00000000000..75cd5a52cb9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/InstanceMetadataDefaultsState.java @@ -0,0 +1,195 @@ +// *** 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.ec2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class InstanceMetadataDefaultsState extends com.pulumi.resources.ResourceArgs { + + public static final InstanceMetadataDefaultsState Empty = new InstanceMetadataDefaultsState(); + + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="httpEndpoint") + private @Nullable Output httpEndpoint; + + /** + * @return Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> httpEndpoint() { + return Optional.ofNullable(this.httpEndpoint); + } + + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + @Import(name="httpPutResponseHopLimit") + private @Nullable Output httpPutResponseHopLimit; + + /** + * @return The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + */ + public Optional> httpPutResponseHopLimit() { + return Optional.ofNullable(this.httpPutResponseHopLimit); + } + + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="httpTokens") + private @Nullable Output httpTokens; + + /** + * @return Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> httpTokens() { + return Optional.ofNullable(this.httpTokens); + } + + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + @Import(name="instanceMetadataTags") + private @Nullable Output instanceMetadataTags; + + /** + * @return Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + */ + public Optional> instanceMetadataTags() { + return Optional.ofNullable(this.instanceMetadataTags); + } + + private InstanceMetadataDefaultsState() {} + + private InstanceMetadataDefaultsState(InstanceMetadataDefaultsState $) { + this.httpEndpoint = $.httpEndpoint; + this.httpPutResponseHopLimit = $.httpPutResponseHopLimit; + this.httpTokens = $.httpTokens; + this.instanceMetadataTags = $.instanceMetadataTags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceMetadataDefaultsState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceMetadataDefaultsState $; + + public Builder() { + $ = new InstanceMetadataDefaultsState(); + } + + public Builder(InstanceMetadataDefaultsState defaults) { + $ = new InstanceMetadataDefaultsState(Objects.requireNonNull(defaults)); + } + + /** + * @param httpEndpoint Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpEndpoint(@Nullable Output httpEndpoint) { + $.httpEndpoint = httpEndpoint; + return this; + } + + /** + * @param httpEndpoint Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpEndpoint(String httpEndpoint) { + return httpEndpoint(Output.of(httpEndpoint)); + } + + /** + * @param httpPutResponseHopLimit The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + * @return builder + * + */ + public Builder httpPutResponseHopLimit(@Nullable Output httpPutResponseHopLimit) { + $.httpPutResponseHopLimit = httpPutResponseHopLimit; + return this; + } + + /** + * @param httpPutResponseHopLimit The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + * + * @return builder + * + */ + public Builder httpPutResponseHopLimit(Integer httpPutResponseHopLimit) { + return httpPutResponseHopLimit(Output.of(httpPutResponseHopLimit)); + } + + /** + * @param httpTokens Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpTokens(@Nullable Output httpTokens) { + $.httpTokens = httpTokens; + return this; + } + + /** + * @param httpTokens Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder httpTokens(String httpTokens) { + return httpTokens(Output.of(httpTokens)); + } + + /** + * @param instanceMetadataTags Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder instanceMetadataTags(@Nullable Output instanceMetadataTags) { + $.instanceMetadataTags = instanceMetadataTags; + return this; + } + + /** + * @param instanceMetadataTags Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + * + * @return builder + * + */ + public Builder instanceMetadataTags(String instanceMetadataTags) { + return instanceMetadataTags(Output.of(instanceMetadataTags)); + } + + public InstanceMetadataDefaultsState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcIpamState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcIpamState.java index 369cb12cc18..4f6cc37ea6b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcIpamState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcIpamState.java @@ -195,6 +195,21 @@ public Optional>> tagsAll() { return Optional.ofNullable(this.tagsAll); } + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + @Import(name="tier") + private @Nullable Output tier; + + /** + * @return specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + */ + public Optional> tier() { + return Optional.ofNullable(this.tier); + } + private VpcIpamState() {} private VpcIpamState(VpcIpamState $) { @@ -209,6 +224,7 @@ private VpcIpamState(VpcIpamState $) { this.scopeCount = $.scopeCount; this.tags = $.tags; this.tagsAll = $.tagsAll; + this.tier = $.tier; } public static Builder builder() { @@ -480,6 +496,27 @@ public Builder tagsAll(Map tagsAll) { return tagsAll(Output.of(tagsAll)); } + /** + * @param tier specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + * @return builder + * + */ + public Builder tier(@Nullable Output tier) { + $.tier = tier; + return this; + } + + /** + * @param tier specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + * + * @return builder + * + */ + public Builder tier(String tier) { + return tier(Output.of(tier)); + } + public VpcIpamState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcState.java index 5003a296cdb..323072e6c99 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpcState.java @@ -108,9 +108,17 @@ public Optional> defaultSecurityGroupId() { return Optional.ofNullable(this.defaultSecurityGroupId); } + /** + * DHCP options id of the desired VPC. + * + */ @Import(name="dhcpOptionsId") private @Nullable Output dhcpOptionsId; + /** + * @return DHCP options id of the desired VPC. + * + */ public Optional> dhcpOptionsId() { return Optional.ofNullable(this.dhcpOptionsId); } @@ -523,11 +531,23 @@ public Builder defaultSecurityGroupId(String defaultSecurityGroupId) { return defaultSecurityGroupId(Output.of(defaultSecurityGroupId)); } + /** + * @param dhcpOptionsId DHCP options id of the desired VPC. + * + * @return builder + * + */ public Builder dhcpOptionsId(@Nullable Output dhcpOptionsId) { $.dhcpOptionsId = dhcpOptionsId; return this; } + /** + * @param dhcpOptionsId DHCP options id of the desired VPC. + * + * @return builder + * + */ public Builder dhcpOptionsId(String dhcpOptionsId) { return dhcpOptionsId(Output.of(dhcpOptionsId)); } diff --git a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpnConnectionState.java b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpnConnectionState.java index 8287c9630f5..ea7f827f417 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpnConnectionState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ec2/inputs/VpnConnectionState.java @@ -174,14 +174,14 @@ public Optional> remoteIpv4NetworkCidr() { } /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. * */ @Import(name="remoteIpv6NetworkCidr") private @Nullable Output remoteIpv6NetworkCidr; /** - * @return The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @return The IPv6 CIDR on the AWS side of the VPN connection. * */ public Optional> remoteIpv6NetworkCidr() { @@ -1417,7 +1417,7 @@ public Builder remoteIpv4NetworkCidr(String remoteIpv4NetworkCidr) { } /** - * @param remoteIpv6NetworkCidr The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @param remoteIpv6NetworkCidr The IPv6 CIDR on the AWS side of the VPN connection. * * @return builder * @@ -1428,7 +1428,7 @@ public Builder remoteIpv6NetworkCidr(@Nullable Output remoteIpv6NetworkC } /** - * @param remoteIpv6NetworkCidr The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * @param remoteIpv6NetworkCidr The IPv6 CIDR on the AWS side of the VPN connection. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/glacier/VaultLock.java b/sdk/java/src/main/java/com/pulumi/aws/glacier/VaultLock.java index 4f0a5e01269..7776198a5b5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/glacier/VaultLock.java +++ b/sdk/java/src/main/java/com/pulumi/aws/glacier/VaultLock.java @@ -16,12 +16,6 @@ import javax.annotation.Nullable; /** - * Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. - * - * > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `complete_lock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `complete_lock` argument to `true`. When changing `complete_lock` to `true`, it is expected the resource will show as recreating. - * - * !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignore_deletion_error` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. - * * ## Example Usage * * ### Testing Glacier Vault Lock Policy diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPolicy.java index 8e9e5b349d4..00c76125b79 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/GroupPolicy.java @@ -16,6 +16,8 @@ /** * Provides an IAM policy attached to a group. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfile.java b/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfile.java index 71d517cb031..b41cd28279b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfile.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfile.java @@ -18,6 +18,8 @@ /** * Provides an IAM instance profile. * + * > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> @@ -113,14 +115,14 @@ public Output createDate() { return this.createDate; } /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** - * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ public Output name() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfileArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfileArgs.java index 3ef69677fd2..77b0400b1e1 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfileArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/InstanceProfileArgs.java @@ -17,14 +17,14 @@ public final class InstanceProfileArgs extends com.pulumi.resources.ResourceArgs public static final InstanceProfileArgs Empty = new InstanceProfileArgs(); /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ @Import(name="name") private @Nullable Output name; /** - * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ public Optional> name() { @@ -120,7 +120,7 @@ public Builder(InstanceProfileArgs defaults) { } /** - * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * * @return builder * @@ -131,7 +131,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/Policy.java b/sdk/java/src/main/java/com/pulumi/aws/iam/Policy.java index 06d9f0bbb98..6b5cf15a6bd 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/Policy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/Policy.java @@ -18,6 +18,8 @@ /** * Provides an IAM policy. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> @@ -75,14 +77,14 @@ @ResourceType(type="aws:iam/policy:Policy") public class Policy extends com.pulumi.resources.CustomResource { /** - * The ARN assigned by AWS to this policy. + * ARN assigned by AWS to this policy. * */ @Export(name="arn", refs={String.class}, tree="[0]") private Output arn; /** - * @return The ARN assigned by AWS to this policy. + * @return ARN assigned by AWS to this policy. * */ public Output arn() { @@ -103,14 +105,14 @@ public Output> description() { return Codegen.optional(this.description); } /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** - * @return The name of the policy. If omitted, the provider will assign a random, unique name. + * @return Name of the policy. If omitted, the provider will assign a random, unique name. * */ public Output name() { @@ -131,44 +133,42 @@ public Output namePrefix() { return this.namePrefix; } /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ @Export(name="path", refs={String.class}, tree="[0]") private Output path; /** - * @return Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @return Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ public Output> path() { return Codegen.optional(this.path); } /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ @Export(name="policy", refs={String.class}, tree="[0]") private Output policy; /** - * @return The policy document. This is a JSON formatted string. + * @return Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ public Output policy() { return this.policy; } /** - * The policy's ID. + * Policy's ID. * */ @Export(name="policyId", refs={String.class}, tree="[0]") private Output policyId; /** - * @return The policy's ID. + * @return Policy's ID. * */ public Output policyId() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/PolicyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/iam/PolicyArgs.java index c6220025edc..5ea3a65ca77 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/PolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/PolicyArgs.java @@ -33,14 +33,14 @@ public Optional> description() { } /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. * */ @Import(name="name") private @Nullable Output name; /** - * @return The name of the policy. If omitted, the provider will assign a random, unique name. + * @return Name of the policy. If omitted, the provider will assign a random, unique name. * */ public Optional> name() { @@ -63,16 +63,14 @@ public Optional> namePrefix() { } /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ @Import(name="path") private @Nullable Output path; /** - * @return Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @return Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ public Optional> path() { @@ -80,14 +78,14 @@ public Optional> path() { } /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ @Import(name="policy", required=true) private Output policy; /** - * @return The policy document. This is a JSON formatted string. + * @return Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ public Output policy() { @@ -160,7 +158,7 @@ public Builder description(String description) { } /** - * @param name The name of the policy. If omitted, the provider will assign a random, unique name. + * @param name Name of the policy. If omitted, the provider will assign a random, unique name. * * @return builder * @@ -171,7 +169,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name The name of the policy. If omitted, the provider will assign a random, unique name. + * @param name Name of the policy. If omitted, the provider will assign a random, unique name. * * @return builder * @@ -202,8 +200,7 @@ public Builder namePrefix(String namePrefix) { } /** - * @param path Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @param path Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * * @return builder * @@ -214,8 +211,7 @@ public Builder path(@Nullable Output path) { } /** - * @param path Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @param path Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * * @return builder * @@ -225,7 +221,7 @@ public Builder path(String path) { } /** - * @param policy The policy document. This is a JSON formatted string. + * @param policy Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * * @return builder * @@ -236,7 +232,7 @@ public Builder policy(Output policy) { } /** - * @param policy The policy document. This is a JSON formatted string. + * @param policy Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/Role.java b/sdk/java/src/main/java/com/pulumi/aws/iam/Role.java index 72e0f60730a..e5c92a79fa8 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/Role.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/Role.java @@ -26,6 +26,8 @@ * * > **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * ### Basic Example diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/RolePolicy.java b/sdk/java/src/main/java/com/pulumi/aws/iam/RolePolicy.java index ad79d622a83..6eadd2a3238 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/RolePolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/RolePolicy.java @@ -18,6 +18,8 @@ * * > **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/UserPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPolicy.java index 4571f441ddf..110473ad3b5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/UserPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/UserPolicy.java @@ -16,6 +16,8 @@ /** * Provides an IAM policy attached to a user. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/InstanceProfileState.java b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/InstanceProfileState.java index 3ebbe9f063c..cbcfe70f36a 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/InstanceProfileState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/InstanceProfileState.java @@ -47,14 +47,14 @@ public Optional> createDate() { } /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ @Import(name="name") private @Nullable Output name; /** - * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @return Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * */ public Optional> name() { @@ -234,7 +234,7 @@ public Builder createDate(String createDate) { } /** - * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * * @return builder * @@ -245,7 +245,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * @param name Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/PolicyState.java b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/PolicyState.java index 87514789bdd..52daaacda76 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/PolicyState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/iam/inputs/PolicyState.java @@ -17,14 +17,14 @@ public final class PolicyState extends com.pulumi.resources.ResourceArgs { public static final PolicyState Empty = new PolicyState(); /** - * The ARN assigned by AWS to this policy. + * ARN assigned by AWS to this policy. * */ @Import(name="arn") private @Nullable Output arn; /** - * @return The ARN assigned by AWS to this policy. + * @return ARN assigned by AWS to this policy. * */ public Optional> arn() { @@ -47,14 +47,14 @@ public Optional> description() { } /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. * */ @Import(name="name") private @Nullable Output name; /** - * @return The name of the policy. If omitted, the provider will assign a random, unique name. + * @return Name of the policy. If omitted, the provider will assign a random, unique name. * */ public Optional> name() { @@ -77,16 +77,14 @@ public Optional> namePrefix() { } /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ @Import(name="path") private @Nullable Output path; /** - * @return Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @return Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * */ public Optional> path() { @@ -94,14 +92,14 @@ public Optional> path() { } /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ @Import(name="policy") private @Nullable Output policy; /** - * @return The policy document. This is a JSON formatted string. + * @return Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * */ public Optional> policy() { @@ -109,14 +107,14 @@ public Optional> policy() { } /** - * The policy's ID. + * Policy's ID. * */ @Import(name="policyId") private @Nullable Output policyId; /** - * @return The policy's ID. + * @return Policy's ID. * */ public Optional> policyId() { @@ -194,7 +192,7 @@ public Builder(PolicyState defaults) { } /** - * @param arn The ARN assigned by AWS to this policy. + * @param arn ARN assigned by AWS to this policy. * * @return builder * @@ -205,7 +203,7 @@ public Builder arn(@Nullable Output arn) { } /** - * @param arn The ARN assigned by AWS to this policy. + * @param arn ARN assigned by AWS to this policy. * * @return builder * @@ -236,7 +234,7 @@ public Builder description(String description) { } /** - * @param name The name of the policy. If omitted, the provider will assign a random, unique name. + * @param name Name of the policy. If omitted, the provider will assign a random, unique name. * * @return builder * @@ -247,7 +245,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name The name of the policy. If omitted, the provider will assign a random, unique name. + * @param name Name of the policy. If omitted, the provider will assign a random, unique name. * * @return builder * @@ -278,8 +276,7 @@ public Builder namePrefix(String namePrefix) { } /** - * @param path Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @param path Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * * @return builder * @@ -290,8 +287,7 @@ public Builder path(@Nullable Output path) { } /** - * @param path Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * @param path Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. * * @return builder * @@ -301,7 +297,7 @@ public Builder path(String path) { } /** - * @param policy The policy document. This is a JSON formatted string. + * @param policy Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * * @return builder * @@ -312,7 +308,7 @@ public Builder policy(@Nullable Output policy) { } /** - * @param policy The policy document. This is a JSON formatted string. + * @param policy Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide * * @return builder * @@ -322,7 +318,7 @@ public Builder policy(String policy) { } /** - * @param policyId The policy's ID. + * @param policyId Policy's ID. * * @return builder * @@ -333,7 +329,7 @@ public Builder policyId(@Nullable Output policyId) { } /** - * @param policyId The policy's ID. + * @param policyId Policy's ID. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java index dddb001523e..204b1a602ba 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/inputs/ProviderEndpointArgs.java @@ -1275,6 +1275,21 @@ public Optional> datasync() { return Optional.ofNullable(this.datasync); } + /** + * Use this to override the default service endpoint URL + * + */ + @Import(name="datazone") + private @Nullable Output datazone; + + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional> datazone() { + return Optional.ofNullable(this.datazone); + } + /** * Use this to override the default service endpoint URL * @@ -2925,6 +2940,21 @@ public Optional> outposts() { return Optional.ofNullable(this.outposts); } + /** + * Use this to override the default service endpoint URL + * + */ + @Import(name="paymentcryptography") + private @Nullable Output paymentcryptography; + + /** + * @return Use this to override the default service endpoint URL + * + */ + public Optional> paymentcryptography() { + return Optional.ofNullable(this.paymentcryptography); + } + /** * Use this to override the default service endpoint URL * @@ -4212,6 +4242,7 @@ private ProviderEndpointArgs(ProviderEndpointArgs $) { this.dataexchange = $.dataexchange; this.datapipeline = $.datapipeline; this.datasync = $.datasync; + this.datazone = $.datazone; this.dax = $.dax; this.deploy = $.deploy; this.detective = $.detective; @@ -4322,6 +4353,7 @@ private ProviderEndpointArgs(ProviderEndpointArgs $) { this.organizations = $.organizations; this.osis = $.osis; this.outposts = $.outposts; + this.paymentcryptography = $.paymentcryptography; this.pcaconnectorad = $.pcaconnectorad; this.pinpoint = $.pinpoint; this.pipes = $.pipes; @@ -6186,6 +6218,27 @@ public Builder datasync(String datasync) { return datasync(Output.of(datasync)); } + /** + * @param datazone Use this to override the default service endpoint URL + * + * @return builder + * + */ + public Builder datazone(@Nullable Output datazone) { + $.datazone = datazone; + return this; + } + + /** + * @param datazone Use this to override the default service endpoint URL + * + * @return builder + * + */ + public Builder datazone(String datazone) { + return datazone(Output.of(datazone)); + } + /** * @param dax Use this to override the default service endpoint URL * @@ -8496,6 +8549,27 @@ public Builder outposts(String outposts) { return outposts(Output.of(outposts)); } + /** + * @param paymentcryptography Use this to override the default service endpoint URL + * + * @return builder + * + */ + public Builder paymentcryptography(@Nullable Output paymentcryptography) { + $.paymentcryptography = paymentcryptography; + return this; + } + + /** + * @param paymentcryptography Use this to override the default service endpoint URL + * + * @return builder + * + */ + public Builder paymentcryptography(String paymentcryptography) { + return paymentcryptography(Output.of(paymentcryptography)); + } + /** * @param pcaconnectorad Use this to override the default service endpoint URL * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.java index d638f0b3dfc..a47043f12e4 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesis/inputs/FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.java @@ -32,14 +32,14 @@ public Optional parquetSerDe; /** - * @return Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + * @return Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. * */ public Optional> parquetSerDe() { @@ -93,7 +93,7 @@ public Builder orcSerDe(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatC } /** - * @param parquetSerDe Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + * @param parquetSerDe Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. * * @return builder * @@ -104,7 +104,7 @@ public Builder parquetSerDe(@Nullable Output parquetSerDe() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java index a8b49b7c242..571b1b985b3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/Application.java @@ -478,14 +478,14 @@ public Output name() { return this.name; } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ @Export(name="runtimeEnvironment", refs={String.class}, tree="[0]") private Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ public Output runtimeEnvironment() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java index d7a39e60f0e..935ee6a378b 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/ApplicationArgs.java @@ -96,14 +96,14 @@ public Optional> name() { } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ @Import(name="runtimeEnvironment", required=true) private Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ public Output runtimeEnvironment() { @@ -293,7 +293,7 @@ public Builder name(String name) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * * @return builder * @@ -304,7 +304,7 @@ public Builder runtimeEnvironment(Output runtimeEnvironment) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java index 1b5bad64652..cd0d5f3f6df 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/kinesisanalyticsv2/inputs/ApplicationState.java @@ -141,14 +141,14 @@ public Optional> name() { } /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ @Import(name="runtimeEnvironment") private @Nullable Output runtimeEnvironment; /** - * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @return The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * */ public Optional> runtimeEnvironment() { @@ -460,7 +460,7 @@ public Builder name(String name) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * * @return builder * @@ -471,7 +471,7 @@ public Builder runtimeEnvironment(@Nullable Output runtimeEnvironment) { } /** - * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * @param runtimeEnvironment The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTag.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTag.java new file mode 100644 index 00000000000..ab18a8e3939 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTag.java @@ -0,0 +1,208 @@ +// *** 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.lakeformation; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.lakeformation.ResourceLfTagArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagState; +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagDatabase; +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagLfTag; +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagTable; +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagTableWithColumns; +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagTimeouts; +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 Lake Formation Resource LF Tag. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.lakeformation.ResourceLfTag; + * import com.pulumi.aws.lakeformation.ResourceLfTagArgs; + * import com.pulumi.aws.lakeformation.inputs.ResourceLfTagDatabaseArgs; + * import com.pulumi.aws.lakeformation.inputs.ResourceLfTagLfTagArgs; + * 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 ResourceLfTag("example", ResourceLfTagArgs.builder() + * .database(ResourceLfTagDatabaseArgs.builder() + * .name(exampleAwsGlueCatalogDatabase.name()) + * .build()) + * .lfTag(ResourceLfTagLfTagArgs.builder() + * .key(exampleAwsLakeformationLfTag.key()) + * .value("stowe") + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * You cannot import this resource. + * + */ +@ResourceType(type="aws:lakeformation/resourceLfTag:ResourceLfTag") +public class ResourceLfTag extends com.pulumi.resources.CustomResource { + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + @Export(name="catalogId", refs={String.class}, tree="[0]") + private Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + public Output> catalogId() { + return Codegen.optional(this.catalogId); + } + /** + * Configuration block for a database resource. See Database for more details. + * + */ + @Export(name="database", refs={ResourceLfTagDatabase.class}, tree="[0]") + private Output database; + + /** + * @return Configuration block for a database resource. See Database for more details. + * + */ + public Output> database() { + return Codegen.optional(this.database); + } + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + @Export(name="lfTag", refs={ResourceLfTagLfTag.class}, tree="[0]") + private Output lfTag; + + /** + * @return Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + public Output> lfTag() { + return Codegen.optional(this.lfTag); + } + /** + * Configuration block for a table resource. See Table for more details. + * + */ + @Export(name="table", refs={ResourceLfTagTable.class}, tree="[0]") + private Output table; + + /** + * @return Configuration block for a table resource. See Table for more details. + * + */ + public Output> table() { + return Codegen.optional(this.table); + } + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + @Export(name="tableWithColumns", refs={ResourceLfTagTableWithColumns.class}, tree="[0]") + private Output tableWithColumns; + + /** + * @return Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + public Output> tableWithColumns() { + return Codegen.optional(this.tableWithColumns); + } + @Export(name="timeouts", refs={ResourceLfTagTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResourceLfTag(String name) { + this(name, ResourceLfTagArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResourceLfTag(String name, @Nullable ResourceLfTagArgs 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 ResourceLfTag(String name, @Nullable ResourceLfTagArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:lakeformation/resourceLfTag:ResourceLfTag", name, args == null ? ResourceLfTagArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private ResourceLfTag(String name, Output id, @Nullable ResourceLfTagState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:lakeformation/resourceLfTag:ResourceLfTag", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResourceLfTag get(String name, Output id, @Nullable ResourceLfTagState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResourceLfTag(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTagArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTagArgs.java new file mode 100644 index 00000000000..6841055ef20 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/ResourceLfTagArgs.java @@ -0,0 +1,269 @@ +// *** 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.lakeformation; + +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagDatabaseArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagLfTagArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTableArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTableWithColumnsArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTimeoutsArgs; +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 ResourceLfTagArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagArgs Empty = new ResourceLfTagArgs(); + + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Configuration block for a database resource. See Database for more details. + * + */ + @Import(name="database") + private @Nullable Output database; + + /** + * @return Configuration block for a database resource. See Database for more details. + * + */ + public Optional> database() { + return Optional.ofNullable(this.database); + } + + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + @Import(name="lfTag") + private @Nullable Output lfTag; + + /** + * @return Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + public Optional> lfTag() { + return Optional.ofNullable(this.lfTag); + } + + /** + * Configuration block for a table resource. See Table for more details. + * + */ + @Import(name="table") + private @Nullable Output table; + + /** + * @return Configuration block for a table resource. See Table for more details. + * + */ + public Optional> table() { + return Optional.ofNullable(this.table); + } + + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + @Import(name="tableWithColumns") + private @Nullable Output tableWithColumns; + + /** + * @return Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + public Optional> tableWithColumns() { + return Optional.ofNullable(this.tableWithColumns); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ResourceLfTagArgs() {} + + private ResourceLfTagArgs(ResourceLfTagArgs $) { + this.catalogId = $.catalogId; + this.database = $.database; + this.lfTag = $.lfTag; + this.table = $.table; + this.tableWithColumns = $.tableWithColumns; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagArgs $; + + public Builder() { + $ = new ResourceLfTagArgs(); + } + + public Builder(ResourceLfTagArgs defaults) { + $ = new ResourceLfTagArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param database Configuration block for a database resource. See Database for more details. + * + * @return builder + * + */ + public Builder database(@Nullable Output database) { + $.database = database; + return this; + } + + /** + * @param database Configuration block for a database resource. See Database for more details. + * + * @return builder + * + */ + public Builder database(ResourceLfTagDatabaseArgs database) { + return database(Output.of(database)); + } + + /** + * @param lfTag Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + * @return builder + * + */ + public Builder lfTag(@Nullable Output lfTag) { + $.lfTag = lfTag; + return this; + } + + /** + * @param lfTag Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + * @return builder + * + */ + public Builder lfTag(ResourceLfTagLfTagArgs lfTag) { + return lfTag(Output.of(lfTag)); + } + + /** + * @param table Configuration block for a table resource. See Table for more details. + * + * @return builder + * + */ + public Builder table(@Nullable Output table) { + $.table = table; + return this; + } + + /** + * @param table Configuration block for a table resource. See Table for more details. + * + * @return builder + * + */ + public Builder table(ResourceLfTagTableArgs table) { + return table(Output.of(table)); + } + + /** + * @param tableWithColumns Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder tableWithColumns(@Nullable Output tableWithColumns) { + $.tableWithColumns = tableWithColumns; + return this; + } + + /** + * @param tableWithColumns Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder tableWithColumns(ResourceLfTagTableWithColumnsArgs tableWithColumns) { + return tableWithColumns(Output.of(tableWithColumns)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ResourceLfTagTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ResourceLfTagArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagDatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagDatabaseArgs.java new file mode 100644 index 00000000000..97897dfb59e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagDatabaseArgs.java @@ -0,0 +1,132 @@ +// *** 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.lakeformation.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 ResourceLfTagDatabaseArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagDatabaseArgs Empty = new ResourceLfTagDatabaseArgs(); + + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + */ + public Output name() { + return this.name; + } + + private ResourceLfTagDatabaseArgs() {} + + private ResourceLfTagDatabaseArgs(ResourceLfTagDatabaseArgs $) { + this.catalogId = $.catalogId; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagDatabaseArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagDatabaseArgs $; + + public Builder() { + $ = new ResourceLfTagDatabaseArgs(); + } + + public Builder(ResourceLfTagDatabaseArgs defaults) { + $ = new ResourceLfTagDatabaseArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param name Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public ResourceLfTagDatabaseArgs build() { + if ($.name == null) { + throw new MissingRequiredPropertyException("ResourceLfTagDatabaseArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagLfTagArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagLfTagArgs.java new file mode 100644 index 00000000000..5c43347c056 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagLfTagArgs.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.lakeformation.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 ResourceLfTagLfTagArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagLfTagArgs Empty = new ResourceLfTagLfTagArgs(); + + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Key name for an existing LF-tag. + * + */ + @Import(name="key", required=true) + private Output key; + + /** + * @return Key name for an existing LF-tag. + * + */ + public Output key() { + return this.key; + } + + /** + * Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + */ + public Output value() { + return this.value; + } + + private ResourceLfTagLfTagArgs() {} + + private ResourceLfTagLfTagArgs(ResourceLfTagLfTagArgs $) { + this.catalogId = $.catalogId; + this.key = $.key; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagLfTagArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagLfTagArgs $; + + public Builder() { + $ = new ResourceLfTagLfTagArgs(); + } + + public Builder(ResourceLfTagLfTagArgs defaults) { + $ = new ResourceLfTagLfTagArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param key Key name for an existing LF-tag. + * + * @return builder + * + */ + public Builder key(Output key) { + $.key = key; + return this; + } + + /** + * @param key Key name for an existing LF-tag. + * + * @return builder + * + */ + public Builder key(String key) { + return key(Output.of(key)); + } + + /** + * @param value Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public ResourceLfTagLfTagArgs build() { + if ($.key == null) { + throw new MissingRequiredPropertyException("ResourceLfTagLfTagArgs", "key"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("ResourceLfTagLfTagArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagState.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagState.java new file mode 100644 index 00000000000..771470458e4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagState.java @@ -0,0 +1,269 @@ +// *** 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.lakeformation.inputs; + +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagDatabaseArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagLfTagArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTableArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTableWithColumnsArgs; +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTimeoutsArgs; +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 ResourceLfTagState extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagState Empty = new ResourceLfTagState(); + + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Configuration block for a database resource. See Database for more details. + * + */ + @Import(name="database") + private @Nullable Output database; + + /** + * @return Configuration block for a database resource. See Database for more details. + * + */ + public Optional> database() { + return Optional.ofNullable(this.database); + } + + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + @Import(name="lfTag") + private @Nullable Output lfTag; + + /** + * @return Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + */ + public Optional> lfTag() { + return Optional.ofNullable(this.lfTag); + } + + /** + * Configuration block for a table resource. See Table for more details. + * + */ + @Import(name="table") + private @Nullable Output table; + + /** + * @return Configuration block for a table resource. See Table for more details. + * + */ + public Optional> table() { + return Optional.ofNullable(this.table); + } + + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + @Import(name="tableWithColumns") + private @Nullable Output tableWithColumns; + + /** + * @return Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + */ + public Optional> tableWithColumns() { + return Optional.ofNullable(this.tableWithColumns); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private ResourceLfTagState() {} + + private ResourceLfTagState(ResourceLfTagState $) { + this.catalogId = $.catalogId; + this.database = $.database; + this.lfTag = $.lfTag; + this.table = $.table; + this.tableWithColumns = $.tableWithColumns; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagState $; + + public Builder() { + $ = new ResourceLfTagState(); + } + + public Builder(ResourceLfTagState defaults) { + $ = new ResourceLfTagState(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param database Configuration block for a database resource. See Database for more details. + * + * @return builder + * + */ + public Builder database(@Nullable Output database) { + $.database = database; + return this; + } + + /** + * @param database Configuration block for a database resource. See Database for more details. + * + * @return builder + * + */ + public Builder database(ResourceLfTagDatabaseArgs database) { + return database(Output.of(database)); + } + + /** + * @param lfTag Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + * @return builder + * + */ + public Builder lfTag(@Nullable Output lfTag) { + $.lfTag = lfTag; + return this; + } + + /** + * @param lfTag Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + * + * @return builder + * + */ + public Builder lfTag(ResourceLfTagLfTagArgs lfTag) { + return lfTag(Output.of(lfTag)); + } + + /** + * @param table Configuration block for a table resource. See Table for more details. + * + * @return builder + * + */ + public Builder table(@Nullable Output table) { + $.table = table; + return this; + } + + /** + * @param table Configuration block for a table resource. See Table for more details. + * + * @return builder + * + */ + public Builder table(ResourceLfTagTableArgs table) { + return table(Output.of(table)); + } + + /** + * @param tableWithColumns Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder tableWithColumns(@Nullable Output tableWithColumns) { + $.tableWithColumns = tableWithColumns; + return this; + } + + /** + * @param tableWithColumns Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder tableWithColumns(ResourceLfTagTableWithColumnsArgs tableWithColumns) { + return tableWithColumns(Output.of(tableWithColumns)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(ResourceLfTagTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ResourceLfTagState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableArgs.java new file mode 100644 index 00000000000..040159b346b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableArgs.java @@ -0,0 +1,207 @@ +// *** 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.lakeformation.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResourceLfTagTableArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagTableArgs Empty = new ResourceLfTagTableArgs(); + + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Name of the database for the table. Unique to a Data Catalog. + * + */ + @Import(name="databaseName", required=true) + private Output databaseName; + + /** + * @return Name of the database for the table. Unique to a Data Catalog. + * + */ + public Output databaseName() { + return this.databaseName; + } + + /** + * Name of the table. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the table. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + */ + @Import(name="wildcard") + private @Nullable Output wildcard; + + /** + * @return Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + */ + public Optional> wildcard() { + return Optional.ofNullable(this.wildcard); + } + + private ResourceLfTagTableArgs() {} + + private ResourceLfTagTableArgs(ResourceLfTagTableArgs $) { + this.catalogId = $.catalogId; + this.databaseName = $.databaseName; + this.name = $.name; + this.wildcard = $.wildcard; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagTableArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagTableArgs $; + + public Builder() { + $ = new ResourceLfTagTableArgs(); + } + + public Builder(ResourceLfTagTableArgs defaults) { + $ = new ResourceLfTagTableArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param databaseName Name of the database for the table. Unique to a Data Catalog. + * + * @return builder + * + */ + public Builder databaseName(Output databaseName) { + $.databaseName = databaseName; + return this; + } + + /** + * @param databaseName Name of the database for the table. Unique to a Data Catalog. + * + * @return builder + * + */ + public Builder databaseName(String databaseName) { + return databaseName(Output.of(databaseName)); + } + + /** + * @param name Name of the table. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the table. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param wildcard Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder wildcard(@Nullable Output wildcard) { + $.wildcard = wildcard; + return this; + } + + /** + * @param wildcard Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder wildcard(Boolean wildcard) { + return wildcard(Output.of(wildcard)); + } + + public ResourceLfTagTableArgs build() { + if ($.databaseName == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTableArgs", "databaseName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsArgs.java new file mode 100644 index 00000000000..6998a4d5c8e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsArgs.java @@ -0,0 +1,258 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.lakeformation.inputs; + +import com.pulumi.aws.lakeformation.inputs.ResourceLfTagTableWithColumnsColumnWildcardArgs; +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 ResourceLfTagTableWithColumnsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagTableWithColumnsArgs Empty = new ResourceLfTagTableWithColumnsArgs(); + + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + @Import(name="catalogId") + private @Nullable Output catalogId; + + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional> catalogId() { + return Optional.ofNullable(this.catalogId); + } + + /** + * Set of column names for the table. + * + */ + @Import(name="columnNames") + private @Nullable Output> columnNames; + + /** + * @return Set of column names for the table. + * + */ + public Optional>> columnNames() { + return Optional.ofNullable(this.columnNames); + } + + /** + * Option to add column wildcard. See Column Wildcard for more details. + * + */ + @Import(name="columnWildcard") + private @Nullable Output columnWildcard; + + /** + * @return Option to add column wildcard. See Column Wildcard for more details. + * + */ + public Optional> columnWildcard() { + return Optional.ofNullable(this.columnWildcard); + } + + /** + * Name of the database for the table with columns resource. Unique to the Data Catalog. + * + */ + @Import(name="databaseName", required=true) + private Output databaseName; + + /** + * @return Name of the database for the table with columns resource. Unique to the Data Catalog. + * + */ + public Output databaseName() { + return this.databaseName; + } + + /** + * Name of the table resource. + * + * The following arguments are optional: + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of the table resource. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + + private ResourceLfTagTableWithColumnsArgs() {} + + private ResourceLfTagTableWithColumnsArgs(ResourceLfTagTableWithColumnsArgs $) { + this.catalogId = $.catalogId; + this.columnNames = $.columnNames; + this.columnWildcard = $.columnWildcard; + this.databaseName = $.databaseName; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagTableWithColumnsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagTableWithColumnsArgs $; + + public Builder() { + $ = new ResourceLfTagTableWithColumnsArgs(); + } + + public Builder(ResourceLfTagTableWithColumnsArgs defaults) { + $ = new ResourceLfTagTableWithColumnsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(@Nullable Output catalogId) { + $.catalogId = catalogId; + return this; + } + + /** + * @param catalogId Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + * @return builder + * + */ + public Builder catalogId(String catalogId) { + return catalogId(Output.of(catalogId)); + } + + /** + * @param columnNames Set of column names for the table. + * + * @return builder + * + */ + public Builder columnNames(@Nullable Output> columnNames) { + $.columnNames = columnNames; + return this; + } + + /** + * @param columnNames Set of column names for the table. + * + * @return builder + * + */ + public Builder columnNames(List columnNames) { + return columnNames(Output.of(columnNames)); + } + + /** + * @param columnNames Set of column names for the table. + * + * @return builder + * + */ + public Builder columnNames(String... columnNames) { + return columnNames(List.of(columnNames)); + } + + /** + * @param columnWildcard Option to add column wildcard. See Column Wildcard for more details. + * + * @return builder + * + */ + public Builder columnWildcard(@Nullable Output columnWildcard) { + $.columnWildcard = columnWildcard; + return this; + } + + /** + * @param columnWildcard Option to add column wildcard. See Column Wildcard for more details. + * + * @return builder + * + */ + public Builder columnWildcard(ResourceLfTagTableWithColumnsColumnWildcardArgs columnWildcard) { + return columnWildcard(Output.of(columnWildcard)); + } + + /** + * @param databaseName Name of the database for the table with columns resource. Unique to the Data Catalog. + * + * @return builder + * + */ + public Builder databaseName(Output databaseName) { + $.databaseName = databaseName; + return this; + } + + /** + * @param databaseName Name of the database for the table with columns resource. Unique to the Data Catalog. + * + * @return builder + * + */ + public Builder databaseName(String databaseName) { + return databaseName(Output.of(databaseName)); + } + + /** + * @param name Name of the table resource. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the table resource. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public ResourceLfTagTableWithColumnsArgs build() { + if ($.databaseName == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTableWithColumnsArgs", "databaseName"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTableWithColumnsArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.java new file mode 100644 index 00000000000..2fefe164104 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTableWithColumnsColumnWildcardArgs.java @@ -0,0 +1,68 @@ +// *** 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.lakeformation.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 ResourceLfTagTableWithColumnsColumnWildcardArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagTableWithColumnsColumnWildcardArgs Empty = new ResourceLfTagTableWithColumnsColumnWildcardArgs(); + + @Import(name="excludedColumnNames") + private @Nullable Output> excludedColumnNames; + + public Optional>> excludedColumnNames() { + return Optional.ofNullable(this.excludedColumnNames); + } + + private ResourceLfTagTableWithColumnsColumnWildcardArgs() {} + + private ResourceLfTagTableWithColumnsColumnWildcardArgs(ResourceLfTagTableWithColumnsColumnWildcardArgs $) { + this.excludedColumnNames = $.excludedColumnNames; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagTableWithColumnsColumnWildcardArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagTableWithColumnsColumnWildcardArgs $; + + public Builder() { + $ = new ResourceLfTagTableWithColumnsColumnWildcardArgs(); + } + + public Builder(ResourceLfTagTableWithColumnsColumnWildcardArgs defaults) { + $ = new ResourceLfTagTableWithColumnsColumnWildcardArgs(Objects.requireNonNull(defaults)); + } + + public Builder excludedColumnNames(@Nullable Output> excludedColumnNames) { + $.excludedColumnNames = excludedColumnNames; + return this; + } + + public Builder excludedColumnNames(List excludedColumnNames) { + return excludedColumnNames(Output.of(excludedColumnNames)); + } + + public Builder excludedColumnNames(String... excludedColumnNames) { + return excludedColumnNames(List.of(excludedColumnNames)); + } + + public ResourceLfTagTableWithColumnsColumnWildcardArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTimeoutsArgs.java new file mode 100644 index 00000000000..303499ff330 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/inputs/ResourceLfTagTimeoutsArgs.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.lakeformation.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 ResourceLfTagTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResourceLfTagTimeoutsArgs Empty = new ResourceLfTagTimeoutsArgs(); + + /** + * 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); + } + + private ResourceLfTagTimeoutsArgs() {} + + private ResourceLfTagTimeoutsArgs(ResourceLfTagTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResourceLfTagTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResourceLfTagTimeoutsArgs $; + + public Builder() { + $ = new ResourceLfTagTimeoutsArgs(); + } + + public Builder(ResourceLfTagTimeoutsArgs defaults) { + $ = new ResourceLfTagTimeoutsArgs(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)); + } + + public ResourceLfTagTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagDatabase.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagDatabase.java new file mode 100644 index 00000000000..30e772e6f98 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagDatabase.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.lakeformation.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 ResourceLfTagDatabase { + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + private @Nullable String catalogId; + /** + * @return Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + */ + private String name; + + private ResourceLfTagDatabase() {} + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional catalogId() { + return Optional.ofNullable(this.catalogId); + } + /** + * @return Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + * + */ + public String name() { + return this.name; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagDatabase defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String catalogId; + private String name; + public Builder() {} + public Builder(ResourceLfTagDatabase defaults) { + Objects.requireNonNull(defaults); + this.catalogId = defaults.catalogId; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder catalogId(@Nullable String catalogId) { + + this.catalogId = catalogId; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ResourceLfTagDatabase", "name"); + } + this.name = name; + return this; + } + public ResourceLfTagDatabase build() { + final var _resultValue = new ResourceLfTagDatabase(); + _resultValue.catalogId = catalogId; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagLfTag.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagLfTag.java new file mode 100644 index 00000000000..bd25d8aaf9b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagLfTag.java @@ -0,0 +1,108 @@ +// *** 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.lakeformation.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 ResourceLfTagLfTag { + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + private @Nullable String catalogId; + /** + * @return Key name for an existing LF-tag. + * + */ + private String key; + /** + * @return Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + */ + private String value; + + private ResourceLfTagLfTag() {} + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional catalogId() { + return Optional.ofNullable(this.catalogId); + } + /** + * @return Key name for an existing LF-tag. + * + */ + public String key() { + return this.key; + } + /** + * @return Value from the possible values for the LF-tag. + * + * The following argument is optional: + * + */ + public String value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagLfTag defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String catalogId; + private String key; + private String value; + public Builder() {} + public Builder(ResourceLfTagLfTag defaults) { + Objects.requireNonNull(defaults); + this.catalogId = defaults.catalogId; + this.key = defaults.key; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder catalogId(@Nullable String catalogId) { + + this.catalogId = catalogId; + return this; + } + @CustomType.Setter + public Builder key(String key) { + if (key == null) { + throw new MissingRequiredPropertyException("ResourceLfTagLfTag", "key"); + } + this.key = key; + return this; + } + @CustomType.Setter + public Builder value(String value) { + if (value == null) { + throw new MissingRequiredPropertyException("ResourceLfTagLfTag", "value"); + } + this.value = value; + return this; + } + public ResourceLfTagLfTag build() { + final var _resultValue = new ResourceLfTagLfTag(); + _resultValue.catalogId = catalogId; + _resultValue.key = key; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTable.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTable.java new file mode 100644 index 00000000000..9e739e3fba2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTable.java @@ -0,0 +1,128 @@ +// *** 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.lakeformation.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResourceLfTagTable { + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + private @Nullable String catalogId; + /** + * @return Name of the database for the table. Unique to a Data Catalog. + * + */ + private String databaseName; + /** + * @return Name of the table. + * + */ + private @Nullable String name; + /** + * @return Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + */ + private @Nullable Boolean wildcard; + + private ResourceLfTagTable() {} + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional catalogId() { + return Optional.ofNullable(this.catalogId); + } + /** + * @return Name of the database for the table. Unique to a Data Catalog. + * + */ + public String databaseName() { + return this.databaseName; + } + /** + * @return Name of the table. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + /** + * @return Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + * + */ + public Optional wildcard() { + return Optional.ofNullable(this.wildcard); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagTable defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String catalogId; + private String databaseName; + private @Nullable String name; + private @Nullable Boolean wildcard; + public Builder() {} + public Builder(ResourceLfTagTable defaults) { + Objects.requireNonNull(defaults); + this.catalogId = defaults.catalogId; + this.databaseName = defaults.databaseName; + this.name = defaults.name; + this.wildcard = defaults.wildcard; + } + + @CustomType.Setter + public Builder catalogId(@Nullable String catalogId) { + + this.catalogId = catalogId; + return this; + } + @CustomType.Setter + public Builder databaseName(String databaseName) { + if (databaseName == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTable", "databaseName"); + } + this.databaseName = databaseName; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder wildcard(@Nullable Boolean wildcard) { + + this.wildcard = wildcard; + return this; + } + public ResourceLfTagTable build() { + final var _resultValue = new ResourceLfTagTable(); + _resultValue.catalogId = catalogId; + _resultValue.databaseName = databaseName; + _resultValue.name = name; + _resultValue.wildcard = wildcard; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumns.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumns.java new file mode 100644 index 00000000000..5b77e94a3ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumns.java @@ -0,0 +1,155 @@ +// *** 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.lakeformation.outputs; + +import com.pulumi.aws.lakeformation.outputs.ResourceLfTagTableWithColumnsColumnWildcard; +import com.pulumi.core.annotations.CustomType; +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; + +@CustomType +public final class ResourceLfTagTableWithColumns { + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + private @Nullable String catalogId; + /** + * @return Set of column names for the table. + * + */ + private @Nullable List columnNames; + /** + * @return Option to add column wildcard. See Column Wildcard for more details. + * + */ + private @Nullable ResourceLfTagTableWithColumnsColumnWildcard columnWildcard; + /** + * @return Name of the database for the table with columns resource. Unique to the Data Catalog. + * + */ + private String databaseName; + /** + * @return Name of the table resource. + * + * The following arguments are optional: + * + */ + private String name; + + private ResourceLfTagTableWithColumns() {} + /** + * @return Identifier for the Data Catalog. By default, it is the account ID of the caller. + * + */ + public Optional catalogId() { + return Optional.ofNullable(this.catalogId); + } + /** + * @return Set of column names for the table. + * + */ + public List columnNames() { + return this.columnNames == null ? List.of() : this.columnNames; + } + /** + * @return Option to add column wildcard. See Column Wildcard for more details. + * + */ + public Optional columnWildcard() { + return Optional.ofNullable(this.columnWildcard); + } + /** + * @return Name of the database for the table with columns resource. Unique to the Data Catalog. + * + */ + public String databaseName() { + return this.databaseName; + } + /** + * @return Name of the table resource. + * + * The following arguments are optional: + * + */ + public String name() { + return this.name; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagTableWithColumns defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String catalogId; + private @Nullable List columnNames; + private @Nullable ResourceLfTagTableWithColumnsColumnWildcard columnWildcard; + private String databaseName; + private String name; + public Builder() {} + public Builder(ResourceLfTagTableWithColumns defaults) { + Objects.requireNonNull(defaults); + this.catalogId = defaults.catalogId; + this.columnNames = defaults.columnNames; + this.columnWildcard = defaults.columnWildcard; + this.databaseName = defaults.databaseName; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder catalogId(@Nullable String catalogId) { + + this.catalogId = catalogId; + return this; + } + @CustomType.Setter + public Builder columnNames(@Nullable List columnNames) { + + this.columnNames = columnNames; + return this; + } + public Builder columnNames(String... columnNames) { + return columnNames(List.of(columnNames)); + } + @CustomType.Setter + public Builder columnWildcard(@Nullable ResourceLfTagTableWithColumnsColumnWildcard columnWildcard) { + + this.columnWildcard = columnWildcard; + return this; + } + @CustomType.Setter + public Builder databaseName(String databaseName) { + if (databaseName == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTableWithColumns", "databaseName"); + } + this.databaseName = databaseName; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ResourceLfTagTableWithColumns", "name"); + } + this.name = name; + return this; + } + public ResourceLfTagTableWithColumns build() { + final var _resultValue = new ResourceLfTagTableWithColumns(); + _resultValue.catalogId = catalogId; + _resultValue.columnNames = columnNames; + _resultValue.columnWildcard = columnWildcard; + _resultValue.databaseName = databaseName; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumnsColumnWildcard.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumnsColumnWildcard.java new file mode 100644 index 00000000000..79bc7165369 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTableWithColumnsColumnWildcard.java @@ -0,0 +1,52 @@ +// *** 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.lakeformation.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 ResourceLfTagTableWithColumnsColumnWildcard { + private @Nullable List excludedColumnNames; + + private ResourceLfTagTableWithColumnsColumnWildcard() {} + public List excludedColumnNames() { + return this.excludedColumnNames == null ? List.of() : this.excludedColumnNames; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagTableWithColumnsColumnWildcard defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List excludedColumnNames; + public Builder() {} + public Builder(ResourceLfTagTableWithColumnsColumnWildcard defaults) { + Objects.requireNonNull(defaults); + this.excludedColumnNames = defaults.excludedColumnNames; + } + + @CustomType.Setter + public Builder excludedColumnNames(@Nullable List excludedColumnNames) { + + this.excludedColumnNames = excludedColumnNames; + return this; + } + public Builder excludedColumnNames(String... excludedColumnNames) { + return excludedColumnNames(List.of(excludedColumnNames)); + } + public ResourceLfTagTableWithColumnsColumnWildcard build() { + final var _resultValue = new ResourceLfTagTableWithColumnsColumnWildcard(); + _resultValue.excludedColumnNames = excludedColumnNames; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTimeouts.java new file mode 100644 index 00000000000..df23d37f7cd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/lakeformation/outputs/ResourceLfTagTimeouts.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.lakeformation.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 ResourceLfTagTimeouts { + /** + * @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; + + private ResourceLfTagTimeouts() {} + /** + * @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); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResourceLfTagTimeouts defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String create; + private @Nullable String delete; + public Builder() {} + public Builder(ResourceLfTagTimeouts defaults) { + Objects.requireNonNull(defaults); + this.create = defaults.create; + this.delete = defaults.delete; + } + + @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; + } + public ResourceLfTagTimeouts build() { + final var _resultValue = new ResourceLfTagTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/Application.java b/sdk/java/src/main/java/com/pulumi/aws/m2/Application.java new file mode 100644 index 00000000000..0aa95222d65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/Application.java @@ -0,0 +1,318 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.m2; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.m2.ApplicationArgs; +import com.pulumi.aws.m2.inputs.ApplicationState; +import com.pulumi.aws.m2.outputs.ApplicationDefinition; +import com.pulumi.aws.m2.outputs.ApplicationTimeouts; +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.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an [AWS Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Application; + * import com.pulumi.aws.m2.ApplicationArgs; + * import com.pulumi.aws.m2.inputs.ApplicationDefinitionArgs; + * 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 Application("example", ApplicationArgs.builder() + * .name("Example") + * .engineType("bluage") + * .definition(ApplicationDefinitionArgs.builder() + * .content(""" + * { + * "definition": { + * "listeners": [ + * { + * "port": 8196, + * "type": "http" + * } + * ], + * "ba-application": { + * "app-location": "%s/PlanetsDemo-v1.zip" + * } + * }, + * "source-locations": [ + * { + * "source-id": "s3-source", + * "source-type": "s3", + * "properties": { + * "s3-bucket": "example-bucket", + * "s3-key-prefix": "v1" + * } + * } + * ], + * "template-version": "2.0" + * } + * + * ", s3_source)) + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: + * + * ```sh + * $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 + * ``` + * + */ +@ResourceType(type="aws:m2/application:Application") +public class Application extends com.pulumi.resources.CustomResource { + /** + * Id of the Application. + * + */ + @Export(name="applicationId", refs={String.class}, tree="[0]") + private Output applicationId; + + /** + * @return Id of the Application. + * + */ + public Output applicationId() { + return this.applicationId; + } + /** + * ARN of the Application. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return ARN of the Application. + * + */ + public Output arn() { + return this.arn; + } + /** + * Current version of the application deployed. + * + */ + @Export(name="currentVersion", refs={Integer.class}, tree="[0]") + private Output currentVersion; + + /** + * @return Current version of the application deployed. + * + */ + public Output currentVersion() { + return this.currentVersion; + } + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + @Export(name="definition", refs={ApplicationDefinition.class}, tree="[0]") + private Output definition; + + /** + * @return The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + public Output> definition() { + return Codegen.optional(this.definition); + } + /** + * Description of the application. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of the application. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Engine type must be `microfocus | bluage`. + * + */ + @Export(name="engineType", refs={String.class}, tree="[0]") + private Output engineType; + + /** + * @return Engine type must be `microfocus | bluage`. + * + */ + public Output engineType() { + return this.engineType; + } + /** + * KMS Key to use for the Application. + * + */ + @Export(name="kmsKeyId", refs={String.class}, tree="[0]") + private Output kmsKeyId; + + /** + * @return KMS Key to use for the Application. + * + */ + public Output> kmsKeyId() { + return Codegen.optional(this.kmsKeyId); + } + /** + * Unique identifier of the application. + * + * The following arguments are optional: + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Unique identifier of the application. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + /** + * ARN of role for application to use to access AWS resources. + * + */ + @Export(name="roleArn", refs={String.class}, tree="[0]") + private Output roleArn; + + /** + * @return ARN of role for application to use to access AWS resources. + * + */ + public Output> roleArn() { + return Codegen.optional(this.roleArn); + } + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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 A map of tags assigned to the WorkSpaces Connection Alias. 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); + } + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @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; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + */ + public Output> tagsAll() { + return this.tagsAll; + } + @Export(name="timeouts", refs={ApplicationTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Application(String name) { + this(name, ApplicationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Application(String name, ApplicationArgs 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 Application(String name, ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/application:Application", name, args == null ? ApplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Application(String name, Output id, @Nullable ApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/application:Application", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Application get(String name, Output id, @Nullable ApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Application(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/ApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/ApplicationArgs.java new file mode 100644 index 00000000000..3b1cb6456fa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/ApplicationArgs.java @@ -0,0 +1,337 @@ +// *** 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.m2; + +import com.pulumi.aws.m2.inputs.ApplicationDefinitionArgs; +import com.pulumi.aws.m2.inputs.ApplicationTimeoutsArgs; +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 ApplicationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplicationArgs Empty = new ApplicationArgs(); + + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + @Import(name="definition") + private @Nullable Output definition; + + /** + * @return The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + public Optional> definition() { + return Optional.ofNullable(this.definition); + } + + /** + * Description of the application. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the application. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Engine type must be `microfocus | bluage`. + * + */ + @Import(name="engineType", required=true) + private Output engineType; + + /** + * @return Engine type must be `microfocus | bluage`. + * + */ + public Output engineType() { + return this.engineType; + } + + /** + * KMS Key to use for the Application. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return KMS Key to use for the Application. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * Unique identifier of the application. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Unique identifier of the application. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * ARN of role for application to use to access AWS resources. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return ARN of role for application to use to access AWS resources. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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 A map of tags assigned to the WorkSpaces Connection Alias. 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); + } + + private ApplicationArgs() {} + + private ApplicationArgs(ApplicationArgs $) { + this.definition = $.definition; + this.description = $.description; + this.engineType = $.engineType; + this.kmsKeyId = $.kmsKeyId; + this.name = $.name; + this.roleArn = $.roleArn; + this.tags = $.tags; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplicationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplicationArgs $; + + public Builder() { + $ = new ApplicationArgs(); + } + + public Builder(ApplicationArgs defaults) { + $ = new ApplicationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param definition The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + * @return builder + * + */ + public Builder definition(@Nullable Output definition) { + $.definition = definition; + return this; + } + + /** + * @param definition The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + * @return builder + * + */ + public Builder definition(ApplicationDefinitionArgs definition) { + return definition(Output.of(definition)); + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engineType Engine type must be `microfocus | bluage`. + * + * @return builder + * + */ + public Builder engineType(Output engineType) { + $.engineType = engineType; + return this; + } + + /** + * @param engineType Engine type must be `microfocus | bluage`. + * + * @return builder + * + */ + public Builder engineType(String engineType) { + return engineType(Output.of(engineType)); + } + + /** + * @param kmsKeyId KMS Key to use for the Application. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId KMS Key to use for the Application. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param name Unique identifier of the application. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Unique identifier of the application. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param roleArn ARN of role for application to use to access AWS resources. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn ARN of role for application to use to access AWS resources. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param tags A map of tags assigned to the WorkSpaces Connection Alias. 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 A map of tags assigned to the WorkSpaces Connection Alias. 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(ApplicationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ApplicationArgs build() { + if ($.engineType == null) { + throw new MissingRequiredPropertyException("ApplicationArgs", "engineType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/Deployment.java b/sdk/java/src/main/java/com/pulumi/aws/m2/Deployment.java new file mode 100644 index 00000000000..b9ee1fea916 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/Deployment.java @@ -0,0 +1,195 @@ +// *** 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.m2; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.m2.DeploymentArgs; +import com.pulumi.aws.m2.inputs.DeploymentState; +import com.pulumi.aws.m2.outputs.DeploymentTimeouts; +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.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an [AWS Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Deployment; + * import com.pulumi.aws.m2.DeploymentArgs; + * 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 Deployment("test", DeploymentArgs.builder() + * .environmentId("01234567890abcdef012345678") + * .applicationId("34567890abcdef012345678012") + * .applicationVersion(1) + * .start(true) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: + * + * ```sh + * $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID + * ``` + * + */ +@ResourceType(type="aws:m2/deployment:Deployment") +public class Deployment extends com.pulumi.resources.CustomResource { + /** + * Application to deploy. + * + */ + @Export(name="applicationId", refs={String.class}, tree="[0]") + private Output applicationId; + + /** + * @return Application to deploy. + * + */ + public Output applicationId() { + return this.applicationId; + } + /** + * Version to application to deploy + * + */ + @Export(name="applicationVersion", refs={Integer.class}, tree="[0]") + private Output applicationVersion; + + /** + * @return Version to application to deploy + * + */ + public Output applicationVersion() { + return this.applicationVersion; + } + @Export(name="deploymentId", refs={String.class}, tree="[0]") + private Output deploymentId; + + public Output deploymentId() { + return this.deploymentId; + } + /** + * Environment to deploy application to. + * + */ + @Export(name="environmentId", refs={String.class}, tree="[0]") + private Output environmentId; + + /** + * @return Environment to deploy application to. + * + */ + public Output environmentId() { + return this.environmentId; + } + @Export(name="forceStop", refs={Boolean.class}, tree="[0]") + private Output forceStop; + + public Output> forceStop() { + return Codegen.optional(this.forceStop); + } + /** + * Start the application once deployed. + * + */ + @Export(name="start", refs={Boolean.class}, tree="[0]") + private Output start; + + /** + * @return Start the application once deployed. + * + */ + public Output start() { + return this.start; + } + @Export(name="timeouts", refs={DeploymentTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Deployment(String name) { + this(name, DeploymentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Deployment(String name, DeploymentArgs 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 Deployment(String name, DeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/deployment:Deployment", name, args == null ? DeploymentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Deployment(String name, Output id, @Nullable DeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/deployment:Deployment", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Deployment get(String name, Output id, @Nullable DeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Deployment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/DeploymentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/DeploymentArgs.java new file mode 100644 index 00000000000..dacc4228463 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/DeploymentArgs.java @@ -0,0 +1,244 @@ +// *** 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.m2; + +import com.pulumi.aws.m2.inputs.DeploymentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeploymentArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeploymentArgs Empty = new DeploymentArgs(); + + /** + * Application to deploy. + * + */ + @Import(name="applicationId", required=true) + private Output applicationId; + + /** + * @return Application to deploy. + * + */ + public Output applicationId() { + return this.applicationId; + } + + /** + * Version to application to deploy + * + */ + @Import(name="applicationVersion", required=true) + private Output applicationVersion; + + /** + * @return Version to application to deploy + * + */ + public Output applicationVersion() { + return this.applicationVersion; + } + + /** + * Environment to deploy application to. + * + */ + @Import(name="environmentId", required=true) + private Output environmentId; + + /** + * @return Environment to deploy application to. + * + */ + public Output environmentId() { + return this.environmentId; + } + + @Import(name="forceStop") + private @Nullable Output forceStop; + + public Optional> forceStop() { + return Optional.ofNullable(this.forceStop); + } + + /** + * Start the application once deployed. + * + */ + @Import(name="start", required=true) + private Output start; + + /** + * @return Start the application once deployed. + * + */ + public Output start() { + return this.start; + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private DeploymentArgs() {} + + private DeploymentArgs(DeploymentArgs $) { + this.applicationId = $.applicationId; + this.applicationVersion = $.applicationVersion; + this.environmentId = $.environmentId; + this.forceStop = $.forceStop; + this.start = $.start; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeploymentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeploymentArgs $; + + public Builder() { + $ = new DeploymentArgs(); + } + + public Builder(DeploymentArgs defaults) { + $ = new DeploymentArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param applicationId Application to deploy. + * + * @return builder + * + */ + public Builder applicationId(Output applicationId) { + $.applicationId = applicationId; + return this; + } + + /** + * @param applicationId Application to deploy. + * + * @return builder + * + */ + public Builder applicationId(String applicationId) { + return applicationId(Output.of(applicationId)); + } + + /** + * @param applicationVersion Version to application to deploy + * + * @return builder + * + */ + public Builder applicationVersion(Output applicationVersion) { + $.applicationVersion = applicationVersion; + return this; + } + + /** + * @param applicationVersion Version to application to deploy + * + * @return builder + * + */ + public Builder applicationVersion(Integer applicationVersion) { + return applicationVersion(Output.of(applicationVersion)); + } + + /** + * @param environmentId Environment to deploy application to. + * + * @return builder + * + */ + public Builder environmentId(Output environmentId) { + $.environmentId = environmentId; + return this; + } + + /** + * @param environmentId Environment to deploy application to. + * + * @return builder + * + */ + public Builder environmentId(String environmentId) { + return environmentId(Output.of(environmentId)); + } + + public Builder forceStop(@Nullable Output forceStop) { + $.forceStop = forceStop; + return this; + } + + public Builder forceStop(Boolean forceStop) { + return forceStop(Output.of(forceStop)); + } + + /** + * @param start Start the application once deployed. + * + * @return builder + * + */ + public Builder start(Output start) { + $.start = start; + return this; + } + + /** + * @param start Start the application once deployed. + * + * @return builder + * + */ + public Builder start(Boolean start) { + return start(Output.of(start)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DeploymentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public DeploymentArgs build() { + if ($.applicationId == null) { + throw new MissingRequiredPropertyException("DeploymentArgs", "applicationId"); + } + if ($.applicationVersion == null) { + throw new MissingRequiredPropertyException("DeploymentArgs", "applicationVersion"); + } + if ($.environmentId == null) { + throw new MissingRequiredPropertyException("DeploymentArgs", "environmentId"); + } + if ($.start == null) { + throw new MissingRequiredPropertyException("DeploymentArgs", "start"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/Environment.java b/sdk/java/src/main/java/com/pulumi/aws/m2/Environment.java new file mode 100644 index 00000000000..d10c2561237 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/Environment.java @@ -0,0 +1,506 @@ +// *** 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.m2; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.m2.EnvironmentArgs; +import com.pulumi.aws.m2.inputs.EnvironmentState; +import com.pulumi.aws.m2.outputs.EnvironmentHighAvailabilityConfig; +import com.pulumi.aws.m2.outputs.EnvironmentStorageConfiguration; +import com.pulumi.aws.m2.outputs.EnvironmentTimeouts; +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.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Resource for managing an [AWS Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Environment; + * import com.pulumi.aws.m2.EnvironmentArgs; + * 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 Environment("test", EnvironmentArgs.builder() + * .name("test-env") + * .engineType("bluage") + * .instanceType("M2.m5.large") + * .securityGroups("sg-01234567890abcdef") + * .subnetIds( + * "subnet-01234567890abcdef", + * "subnet-01234567890abcdea") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### High Availability + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Environment; + * import com.pulumi.aws.m2.EnvironmentArgs; + * import com.pulumi.aws.m2.inputs.EnvironmentHighAvailabilityConfigArgs; + * 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 Environment("test", EnvironmentArgs.builder() + * .name("test-env") + * .engineType("bluage") + * .instanceType("M2.m5.large") + * .securityGroups("sg-01234567890abcdef") + * .subnetIds( + * "subnet-01234567890abcdef", + * "subnet-01234567890abcdea") + * .highAvailabilityConfig(EnvironmentHighAvailabilityConfigArgs.builder() + * .desiredCapacity(2) + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### EFS Filesystem + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Environment; + * import com.pulumi.aws.m2.EnvironmentArgs; + * import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs; + * import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationEfsArgs; + * 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 Environment("test", EnvironmentArgs.builder() + * .name("test-env") + * .engineType("bluage") + * .instanceType("M2.m5.large") + * .securityGroups("sg-01234567890abcdef") + * .subnetIds( + * "subnet-01234567890abcdef", + * "subnet-01234567890abcdea") + * .storageConfiguration(EnvironmentStorageConfigurationArgs.builder() + * .efs(EnvironmentStorageConfigurationEfsArgs.builder() + * .fileSystemId("fs-01234567890abcdef") + * .mountPoint("/m2/mount/example") + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### FSX Filesystem + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.m2.Environment; + * import com.pulumi.aws.m2.EnvironmentArgs; + * import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs; + * import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationFsxArgs; + * 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 Environment("test", EnvironmentArgs.builder() + * .name("test-env") + * .engineType("bluage") + * .instanceType("M2.m5.large") + * .securityGroups("sg-01234567890abcdef") + * .subnetIds( + * "subnet-01234567890abcdef", + * "subnet-01234567890abcdea") + * .storageConfiguration(EnvironmentStorageConfigurationArgs.builder() + * .fsx(EnvironmentStorageConfigurationFsxArgs.builder() + * .fileSystemId("fs-01234567890abcdef") + * .mountPoint("/m2/mount/example") + * .build()) + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: + * + * ```sh + * $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 + * ``` + * + */ +@ResourceType(type="aws:m2/environment:Environment") +public class Environment extends com.pulumi.resources.CustomResource { + @Export(name="applyChangesDuringMaintenanceWindow", refs={Boolean.class}, tree="[0]") + private Output applyChangesDuringMaintenanceWindow; + + public Output> applyChangesDuringMaintenanceWindow() { + return Codegen.optional(this.applyChangesDuringMaintenanceWindow); + } + /** + * ARN of the Environment. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return ARN of the Environment. + * + */ + public Output arn() { + return this.arn; + } + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Engine type must be `microfocus` or `bluage`. + * + */ + @Export(name="engineType", refs={String.class}, tree="[0]") + private Output engineType; + + /** + * @return Engine type must be `microfocus` or `bluage`. + * + */ + public Output engineType() { + return this.engineType; + } + /** + * The specific version of the engine for the Environment. + * + */ + @Export(name="engineVersion", refs={String.class}, tree="[0]") + private Output engineVersion; + + /** + * @return The specific version of the engine for the Environment. + * + */ + public Output engineVersion() { + return this.engineVersion; + } + /** + * The id of the Environment. + * + */ + @Export(name="environmentId", refs={String.class}, tree="[0]") + private Output environmentId; + + /** + * @return The id of the Environment. + * + */ + public Output environmentId() { + return this.environmentId; + } + /** + * Force update the environment even if applications are running. + * + */ + @Export(name="forceUpdate", refs={Boolean.class}, tree="[0]") + private Output forceUpdate; + + /** + * @return Force update the environment even if applications are running. + * + */ + public Output> forceUpdate() { + return Codegen.optional(this.forceUpdate); + } + @Export(name="highAvailabilityConfig", refs={EnvironmentHighAvailabilityConfig.class}, tree="[0]") + private Output highAvailabilityConfig; + + public Output> highAvailabilityConfig() { + return Codegen.optional(this.highAvailabilityConfig); + } + /** + * M2 Instance Type. + * + * The following arguments are optional: + * + */ + @Export(name="instanceType", refs={String.class}, tree="[0]") + private Output instanceType; + + /** + * @return M2 Instance Type. + * + * The following arguments are optional: + * + */ + public Output instanceType() { + return this.instanceType; + } + /** + * ARN of the KMS key to use for the Environment. + * + */ + @Export(name="kmsKeyId", refs={String.class}, tree="[0]") + private Output kmsKeyId; + + /** + * @return ARN of the KMS key to use for the Environment. + * + */ + public Output> kmsKeyId() { + return Codegen.optional(this.kmsKeyId); + } + /** + * ARN of the load balancer created by the Environment. + * + */ + @Export(name="loadBalancerArn", refs={String.class}, tree="[0]") + private Output loadBalancerArn; + + /** + * @return ARN of the load balancer created by the Environment. + * + */ + public Output loadBalancerArn() { + return this.loadBalancerArn; + } + /** + * Name of the runtime environment. Must be unique within the account. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the runtime environment. Must be unique within the account. + * + */ + public Output name() { + return this.name; + } + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + @Export(name="preferredMaintenanceWindow", refs={String.class}, tree="[0]") + private Output preferredMaintenanceWindow; + + /** + * @return Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + public Output preferredMaintenanceWindow() { + return this.preferredMaintenanceWindow; + } + /** + * Allow applications deployed to this environment to be publicly accessible. + * + */ + @Export(name="publiclyAccessible", refs={Boolean.class}, tree="[0]") + private Output publiclyAccessible; + + /** + * @return Allow applications deployed to this environment to be publicly accessible. + * + */ + public Output publiclyAccessible() { + return this.publiclyAccessible; + } + /** + * List of security group ids. + * + */ + @Export(name="securityGroupIds", refs={List.class,String.class}, tree="[0,1]") + private Output> securityGroupIds; + + /** + * @return List of security group ids. + * + */ + public Output> securityGroupIds() { + return this.securityGroupIds; + } + @Export(name="storageConfiguration", refs={EnvironmentStorageConfiguration.class}, tree="[0]") + private Output storageConfiguration; + + public Output> storageConfiguration() { + return Codegen.optional(this.storageConfiguration); + } + /** + * List of subnet ids to deploy environment to. + * + */ + @Export(name="subnetIds", refs={List.class,String.class}, tree="[0,1]") + private Output> subnetIds; + + /** + * @return List of subnet ids to deploy environment to. + * + */ + public Output> subnetIds() { + return this.subnetIds; + } + /** + * Key-value tags for the place index. 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 tags for the place index. 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={EnvironmentTimeouts.class}, tree="[0]") + private Output timeouts; + + public Output> timeouts() { + return Codegen.optional(this.timeouts); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Environment(String name) { + this(name, EnvironmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Environment(String name, EnvironmentArgs 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 Environment(String name, EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/environment:Environment", name, args == null ? EnvironmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private Environment(String name, Output id, @Nullable EnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:m2/environment:Environment", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Environment get(String name, Output id, @Nullable EnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Environment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/EnvironmentArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/EnvironmentArgs.java new file mode 100644 index 00000000000..2e901b87d53 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/EnvironmentArgs.java @@ -0,0 +1,579 @@ +// *** 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.m2; + +import com.pulumi.aws.m2.inputs.EnvironmentHighAvailabilityConfigArgs; +import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs; +import com.pulumi.aws.m2.inputs.EnvironmentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +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 EnvironmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentArgs Empty = new EnvironmentArgs(); + + @Import(name="applyChangesDuringMaintenanceWindow") + private @Nullable Output applyChangesDuringMaintenanceWindow; + + public Optional> applyChangesDuringMaintenanceWindow() { + return Optional.ofNullable(this.applyChangesDuringMaintenanceWindow); + } + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Engine type must be `microfocus` or `bluage`. + * + */ + @Import(name="engineType", required=true) + private Output engineType; + + /** + * @return Engine type must be `microfocus` or `bluage`. + * + */ + public Output engineType() { + return this.engineType; + } + + /** + * The specific version of the engine for the Environment. + * + */ + @Import(name="engineVersion") + private @Nullable Output engineVersion; + + /** + * @return The specific version of the engine for the Environment. + * + */ + public Optional> engineVersion() { + return Optional.ofNullable(this.engineVersion); + } + + /** + * Force update the environment even if applications are running. + * + */ + @Import(name="forceUpdate") + private @Nullable Output forceUpdate; + + /** + * @return Force update the environment even if applications are running. + * + */ + public Optional> forceUpdate() { + return Optional.ofNullable(this.forceUpdate); + } + + @Import(name="highAvailabilityConfig") + private @Nullable Output highAvailabilityConfig; + + public Optional> highAvailabilityConfig() { + return Optional.ofNullable(this.highAvailabilityConfig); + } + + /** + * M2 Instance Type. + * + * The following arguments are optional: + * + */ + @Import(name="instanceType", required=true) + private Output instanceType; + + /** + * @return M2 Instance Type. + * + * The following arguments are optional: + * + */ + public Output instanceType() { + return this.instanceType; + } + + /** + * ARN of the KMS key to use for the Environment. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return ARN of the KMS key to use for the Environment. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * Name of the runtime environment. Must be unique within the account. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the runtime environment. Must be unique within the account. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + @Import(name="preferredMaintenanceWindow") + private @Nullable Output preferredMaintenanceWindow; + + /** + * @return Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + public Optional> preferredMaintenanceWindow() { + return Optional.ofNullable(this.preferredMaintenanceWindow); + } + + /** + * Allow applications deployed to this environment to be publicly accessible. + * + */ + @Import(name="publiclyAccessible") + private @Nullable Output publiclyAccessible; + + /** + * @return Allow applications deployed to this environment to be publicly accessible. + * + */ + public Optional> publiclyAccessible() { + return Optional.ofNullable(this.publiclyAccessible); + } + + /** + * List of security group ids. + * + */ + @Import(name="securityGroupIds") + private @Nullable Output> securityGroupIds; + + /** + * @return List of security group ids. + * + */ + public Optional>> securityGroupIds() { + return Optional.ofNullable(this.securityGroupIds); + } + + @Import(name="storageConfiguration") + private @Nullable Output storageConfiguration; + + public Optional> storageConfiguration() { + return Optional.ofNullable(this.storageConfiguration); + } + + /** + * List of subnet ids to deploy environment to. + * + */ + @Import(name="subnetIds") + private @Nullable Output> subnetIds; + + /** + * @return List of subnet ids to deploy environment to. + * + */ + public Optional>> subnetIds() { + return Optional.ofNullable(this.subnetIds); + } + + /** + * Key-value tags for the place index. 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 tags for the place index. 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); + } + + private EnvironmentArgs() {} + + private EnvironmentArgs(EnvironmentArgs $) { + this.applyChangesDuringMaintenanceWindow = $.applyChangesDuringMaintenanceWindow; + this.description = $.description; + this.engineType = $.engineType; + this.engineVersion = $.engineVersion; + this.forceUpdate = $.forceUpdate; + this.highAvailabilityConfig = $.highAvailabilityConfig; + this.instanceType = $.instanceType; + this.kmsKeyId = $.kmsKeyId; + this.name = $.name; + this.preferredMaintenanceWindow = $.preferredMaintenanceWindow; + this.publiclyAccessible = $.publiclyAccessible; + this.securityGroupIds = $.securityGroupIds; + this.storageConfiguration = $.storageConfiguration; + this.subnetIds = $.subnetIds; + this.tags = $.tags; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentArgs $; + + public Builder() { + $ = new EnvironmentArgs(); + } + + public Builder(EnvironmentArgs defaults) { + $ = new EnvironmentArgs(Objects.requireNonNull(defaults)); + } + + public Builder applyChangesDuringMaintenanceWindow(@Nullable Output applyChangesDuringMaintenanceWindow) { + $.applyChangesDuringMaintenanceWindow = applyChangesDuringMaintenanceWindow; + return this; + } + + public Builder applyChangesDuringMaintenanceWindow(Boolean applyChangesDuringMaintenanceWindow) { + return applyChangesDuringMaintenanceWindow(Output.of(applyChangesDuringMaintenanceWindow)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engineType Engine type must be `microfocus` or `bluage`. + * + * @return builder + * + */ + public Builder engineType(Output engineType) { + $.engineType = engineType; + return this; + } + + /** + * @param engineType Engine type must be `microfocus` or `bluage`. + * + * @return builder + * + */ + public Builder engineType(String engineType) { + return engineType(Output.of(engineType)); + } + + /** + * @param engineVersion The specific version of the engine for the Environment. + * + * @return builder + * + */ + public Builder engineVersion(@Nullable Output engineVersion) { + $.engineVersion = engineVersion; + return this; + } + + /** + * @param engineVersion The specific version of the engine for the Environment. + * + * @return builder + * + */ + public Builder engineVersion(String engineVersion) { + return engineVersion(Output.of(engineVersion)); + } + + /** + * @param forceUpdate Force update the environment even if applications are running. + * + * @return builder + * + */ + public Builder forceUpdate(@Nullable Output forceUpdate) { + $.forceUpdate = forceUpdate; + return this; + } + + /** + * @param forceUpdate Force update the environment even if applications are running. + * + * @return builder + * + */ + public Builder forceUpdate(Boolean forceUpdate) { + return forceUpdate(Output.of(forceUpdate)); + } + + public Builder highAvailabilityConfig(@Nullable Output highAvailabilityConfig) { + $.highAvailabilityConfig = highAvailabilityConfig; + return this; + } + + public Builder highAvailabilityConfig(EnvironmentHighAvailabilityConfigArgs highAvailabilityConfig) { + return highAvailabilityConfig(Output.of(highAvailabilityConfig)); + } + + /** + * @param instanceType M2 Instance Type. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder instanceType(Output instanceType) { + $.instanceType = instanceType; + return this; + } + + /** + * @param instanceType M2 Instance Type. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder instanceType(String instanceType) { + return instanceType(Output.of(instanceType)); + } + + /** + * @param kmsKeyId ARN of the KMS key to use for the Environment. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId ARN of the KMS key to use for the Environment. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param name Name of the runtime environment. Must be unique within the account. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the runtime environment. Must be unique within the account. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param preferredMaintenanceWindow Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + * @return builder + * + */ + public Builder preferredMaintenanceWindow(@Nullable Output preferredMaintenanceWindow) { + $.preferredMaintenanceWindow = preferredMaintenanceWindow; + return this; + } + + /** + * @param preferredMaintenanceWindow Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + * @return builder + * + */ + public Builder preferredMaintenanceWindow(String preferredMaintenanceWindow) { + return preferredMaintenanceWindow(Output.of(preferredMaintenanceWindow)); + } + + /** + * @param publiclyAccessible Allow applications deployed to this environment to be publicly accessible. + * + * @return builder + * + */ + public Builder publiclyAccessible(@Nullable Output publiclyAccessible) { + $.publiclyAccessible = publiclyAccessible; + return this; + } + + /** + * @param publiclyAccessible Allow applications deployed to this environment to be publicly accessible. + * + * @return builder + * + */ + public Builder publiclyAccessible(Boolean publiclyAccessible) { + return publiclyAccessible(Output.of(publiclyAccessible)); + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(@Nullable Output> securityGroupIds) { + $.securityGroupIds = securityGroupIds; + return this; + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(List securityGroupIds) { + return securityGroupIds(Output.of(securityGroupIds)); + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(String... securityGroupIds) { + return securityGroupIds(List.of(securityGroupIds)); + } + + public Builder storageConfiguration(@Nullable Output storageConfiguration) { + $.storageConfiguration = storageConfiguration; + return this; + } + + public Builder storageConfiguration(EnvironmentStorageConfigurationArgs storageConfiguration) { + return storageConfiguration(Output.of(storageConfiguration)); + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(@Nullable Output> subnetIds) { + $.subnetIds = subnetIds; + return this; + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(List subnetIds) { + return subnetIds(Output.of(subnetIds)); + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(String... subnetIds) { + return subnetIds(List.of(subnetIds)); + } + + /** + * @param tags Key-value tags for the place index. 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 tags for the place index. 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(EnvironmentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public EnvironmentArgs build() { + if ($.engineType == null) { + throw new MissingRequiredPropertyException("EnvironmentArgs", "engineType"); + } + if ($.instanceType == null) { + throw new MissingRequiredPropertyException("EnvironmentArgs", "instanceType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationDefinitionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationDefinitionArgs.java new file mode 100644 index 00000000000..602d4ccf426 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationDefinitionArgs.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.m2.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 ApplicationDefinitionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplicationDefinitionArgs Empty = new ApplicationDefinitionArgs(); + + /** + * JSON application definition. Either this or `s3_location` must be specified. + * + */ + @Import(name="content") + private @Nullable Output content; + + /** + * @return JSON application definition. Either this or `s3_location` must be specified. + * + */ + public Optional> content() { + return Optional.ofNullable(this.content); + } + + /** + * Location of the application definition in S3. Either this or `content` must be specified. + * + */ + @Import(name="s3Location") + private @Nullable Output s3Location; + + /** + * @return Location of the application definition in S3. Either this or `content` must be specified. + * + */ + public Optional> s3Location() { + return Optional.ofNullable(this.s3Location); + } + + private ApplicationDefinitionArgs() {} + + private ApplicationDefinitionArgs(ApplicationDefinitionArgs $) { + this.content = $.content; + this.s3Location = $.s3Location; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplicationDefinitionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplicationDefinitionArgs $; + + public Builder() { + $ = new ApplicationDefinitionArgs(); + } + + public Builder(ApplicationDefinitionArgs defaults) { + $ = new ApplicationDefinitionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param content JSON application definition. Either this or `s3_location` must be specified. + * + * @return builder + * + */ + public Builder content(@Nullable Output content) { + $.content = content; + return this; + } + + /** + * @param content JSON application definition. Either this or `s3_location` must be specified. + * + * @return builder + * + */ + public Builder content(String content) { + return content(Output.of(content)); + } + + /** + * @param s3Location Location of the application definition in S3. Either this or `content` must be specified. + * + * @return builder + * + */ + public Builder s3Location(@Nullable Output s3Location) { + $.s3Location = s3Location; + return this; + } + + /** + * @param s3Location Location of the application definition in S3. Either this or `content` must be specified. + * + * @return builder + * + */ + public Builder s3Location(String s3Location) { + return s3Location(Output.of(s3Location)); + } + + public ApplicationDefinitionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationState.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationState.java new file mode 100644 index 00000000000..5235ac60da4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationState.java @@ -0,0 +1,498 @@ +// *** 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.m2.inputs; + +import com.pulumi.aws.m2.inputs.ApplicationDefinitionArgs; +import com.pulumi.aws.m2.inputs.ApplicationTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ApplicationState extends com.pulumi.resources.ResourceArgs { + + public static final ApplicationState Empty = new ApplicationState(); + + /** + * Id of the Application. + * + */ + @Import(name="applicationId") + private @Nullable Output applicationId; + + /** + * @return Id of the Application. + * + */ + public Optional> applicationId() { + return Optional.ofNullable(this.applicationId); + } + + /** + * ARN of the Application. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN of the Application. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Current version of the application deployed. + * + */ + @Import(name="currentVersion") + private @Nullable Output currentVersion; + + /** + * @return Current version of the application deployed. + * + */ + public Optional> currentVersion() { + return Optional.ofNullable(this.currentVersion); + } + + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + @Import(name="definition") + private @Nullable Output definition; + + /** + * @return The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + */ + public Optional> definition() { + return Optional.ofNullable(this.definition); + } + + /** + * Description of the application. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the application. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Engine type must be `microfocus | bluage`. + * + */ + @Import(name="engineType") + private @Nullable Output engineType; + + /** + * @return Engine type must be `microfocus | bluage`. + * + */ + public Optional> engineType() { + return Optional.ofNullable(this.engineType); + } + + /** + * KMS Key to use for the Application. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return KMS Key to use for the Application. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * Unique identifier of the application. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Unique identifier of the application. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * ARN of role for application to use to access AWS resources. + * + */ + @Import(name="roleArn") + private @Nullable Output roleArn; + + /** + * @return ARN of role for application to use to access AWS resources. + * + */ + public Optional> roleArn() { + return Optional.ofNullable(this.roleArn); + } + + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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 A map of tags assigned to the WorkSpaces Connection Alias. 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); + } + + /** + * A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + @Import(name="tagsAll") + private @Nullable Output> tagsAll; + + /** + * @return A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @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); + } + + private ApplicationState() {} + + private ApplicationState(ApplicationState $) { + this.applicationId = $.applicationId; + this.arn = $.arn; + this.currentVersion = $.currentVersion; + this.definition = $.definition; + this.description = $.description; + this.engineType = $.engineType; + this.kmsKeyId = $.kmsKeyId; + this.name = $.name; + this.roleArn = $.roleArn; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplicationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplicationState $; + + public Builder() { + $ = new ApplicationState(); + } + + public Builder(ApplicationState defaults) { + $ = new ApplicationState(Objects.requireNonNull(defaults)); + } + + /** + * @param applicationId Id of the Application. + * + * @return builder + * + */ + public Builder applicationId(@Nullable Output applicationId) { + $.applicationId = applicationId; + return this; + } + + /** + * @param applicationId Id of the Application. + * + * @return builder + * + */ + public Builder applicationId(String applicationId) { + return applicationId(Output.of(applicationId)); + } + + /** + * @param arn ARN of the Application. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the Application. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param currentVersion Current version of the application deployed. + * + * @return builder + * + */ + public Builder currentVersion(@Nullable Output currentVersion) { + $.currentVersion = currentVersion; + return this; + } + + /** + * @param currentVersion Current version of the application deployed. + * + * @return builder + * + */ + public Builder currentVersion(Integer currentVersion) { + return currentVersion(Output.of(currentVersion)); + } + + /** + * @param definition The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + * @return builder + * + */ + public Builder definition(@Nullable Output definition) { + $.definition = definition; + return this; + } + + /** + * @param definition The application definition for this application. You can specify either inline JSON or an S3 bucket location. + * + * @return builder + * + */ + public Builder definition(ApplicationDefinitionArgs definition) { + return definition(Output.of(definition)); + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engineType Engine type must be `microfocus | bluage`. + * + * @return builder + * + */ + public Builder engineType(@Nullable Output engineType) { + $.engineType = engineType; + return this; + } + + /** + * @param engineType Engine type must be `microfocus | bluage`. + * + * @return builder + * + */ + public Builder engineType(String engineType) { + return engineType(Output.of(engineType)); + } + + /** + * @param kmsKeyId KMS Key to use for the Application. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId KMS Key to use for the Application. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param name Unique identifier of the application. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Unique identifier of the application. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param roleArn ARN of role for application to use to access AWS resources. + * + * @return builder + * + */ + public Builder roleArn(@Nullable Output roleArn) { + $.roleArn = roleArn; + return this; + } + + /** + * @param roleArn ARN of role for application to use to access AWS resources. + * + * @return builder + * + */ + public Builder roleArn(String roleArn) { + return roleArn(Output.of(roleArn)); + } + + /** + * @param tags A map of tags assigned to the WorkSpaces Connection Alias. 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 A map of tags assigned to the WorkSpaces Connection Alias. 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)); + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @return builder + * + * @deprecated + * Please use `tags` instead. + * + */ + @Deprecated /* Please use `tags` instead. */ + public Builder tagsAll(@Nullable Output> tagsAll) { + $.tagsAll = tagsAll; + return this; + } + + /** + * @param tagsAll A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + * + * @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(ApplicationTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public ApplicationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationTimeoutsArgs.java new file mode 100644 index 00000000000..e8103504187 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/ApplicationTimeoutsArgs.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.m2.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 ApplicationTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ApplicationTimeoutsArgs Empty = new ApplicationTimeoutsArgs(); + + /** + * 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 ApplicationTimeoutsArgs() {} + + private ApplicationTimeoutsArgs(ApplicationTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ApplicationTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ApplicationTimeoutsArgs $; + + public Builder() { + $ = new ApplicationTimeoutsArgs(); + } + + public Builder(ApplicationTimeoutsArgs defaults) { + $ = new ApplicationTimeoutsArgs(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 ApplicationTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentState.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentState.java new file mode 100644 index 00000000000..3c45cc18cbd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentState.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.m2.inputs; + +import com.pulumi.aws.m2.inputs.DeploymentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DeploymentState extends com.pulumi.resources.ResourceArgs { + + public static final DeploymentState Empty = new DeploymentState(); + + /** + * Application to deploy. + * + */ + @Import(name="applicationId") + private @Nullable Output applicationId; + + /** + * @return Application to deploy. + * + */ + public Optional> applicationId() { + return Optional.ofNullable(this.applicationId); + } + + /** + * Version to application to deploy + * + */ + @Import(name="applicationVersion") + private @Nullable Output applicationVersion; + + /** + * @return Version to application to deploy + * + */ + public Optional> applicationVersion() { + return Optional.ofNullable(this.applicationVersion); + } + + @Import(name="deploymentId") + private @Nullable Output deploymentId; + + public Optional> deploymentId() { + return Optional.ofNullable(this.deploymentId); + } + + /** + * Environment to deploy application to. + * + */ + @Import(name="environmentId") + private @Nullable Output environmentId; + + /** + * @return Environment to deploy application to. + * + */ + public Optional> environmentId() { + return Optional.ofNullable(this.environmentId); + } + + @Import(name="forceStop") + private @Nullable Output forceStop; + + public Optional> forceStop() { + return Optional.ofNullable(this.forceStop); + } + + /** + * Start the application once deployed. + * + */ + @Import(name="start") + private @Nullable Output start; + + /** + * @return Start the application once deployed. + * + */ + public Optional> start() { + return Optional.ofNullable(this.start); + } + + @Import(name="timeouts") + private @Nullable Output timeouts; + + public Optional> timeouts() { + return Optional.ofNullable(this.timeouts); + } + + private DeploymentState() {} + + private DeploymentState(DeploymentState $) { + this.applicationId = $.applicationId; + this.applicationVersion = $.applicationVersion; + this.deploymentId = $.deploymentId; + this.environmentId = $.environmentId; + this.forceStop = $.forceStop; + this.start = $.start; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeploymentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeploymentState $; + + public Builder() { + $ = new DeploymentState(); + } + + public Builder(DeploymentState defaults) { + $ = new DeploymentState(Objects.requireNonNull(defaults)); + } + + /** + * @param applicationId Application to deploy. + * + * @return builder + * + */ + public Builder applicationId(@Nullable Output applicationId) { + $.applicationId = applicationId; + return this; + } + + /** + * @param applicationId Application to deploy. + * + * @return builder + * + */ + public Builder applicationId(String applicationId) { + return applicationId(Output.of(applicationId)); + } + + /** + * @param applicationVersion Version to application to deploy + * + * @return builder + * + */ + public Builder applicationVersion(@Nullable Output applicationVersion) { + $.applicationVersion = applicationVersion; + return this; + } + + /** + * @param applicationVersion Version to application to deploy + * + * @return builder + * + */ + public Builder applicationVersion(Integer applicationVersion) { + return applicationVersion(Output.of(applicationVersion)); + } + + public Builder deploymentId(@Nullable Output deploymentId) { + $.deploymentId = deploymentId; + return this; + } + + public Builder deploymentId(String deploymentId) { + return deploymentId(Output.of(deploymentId)); + } + + /** + * @param environmentId Environment to deploy application to. + * + * @return builder + * + */ + public Builder environmentId(@Nullable Output environmentId) { + $.environmentId = environmentId; + return this; + } + + /** + * @param environmentId Environment to deploy application to. + * + * @return builder + * + */ + public Builder environmentId(String environmentId) { + return environmentId(Output.of(environmentId)); + } + + public Builder forceStop(@Nullable Output forceStop) { + $.forceStop = forceStop; + return this; + } + + public Builder forceStop(Boolean forceStop) { + return forceStop(Output.of(forceStop)); + } + + /** + * @param start Start the application once deployed. + * + * @return builder + * + */ + public Builder start(@Nullable Output start) { + $.start = start; + return this; + } + + /** + * @param start Start the application once deployed. + * + * @return builder + * + */ + public Builder start(Boolean start) { + return start(Output.of(start)); + } + + public Builder timeouts(@Nullable Output timeouts) { + $.timeouts = timeouts; + return this; + } + + public Builder timeouts(DeploymentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public DeploymentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentTimeoutsArgs.java new file mode 100644 index 00000000000..ae50420f2ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/DeploymentTimeoutsArgs.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.m2.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 DeploymentTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final DeploymentTimeoutsArgs Empty = new DeploymentTimeoutsArgs(); + + /** + * 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 DeploymentTimeoutsArgs() {} + + private DeploymentTimeoutsArgs(DeploymentTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DeploymentTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DeploymentTimeoutsArgs $; + + public Builder() { + $ = new DeploymentTimeoutsArgs(); + } + + public Builder(DeploymentTimeoutsArgs defaults) { + $ = new DeploymentTimeoutsArgs(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 DeploymentTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentHighAvailabilityConfigArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentHighAvailabilityConfigArgs.java new file mode 100644 index 00000000000..1e90e1b0a64 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentHighAvailabilityConfigArgs.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.m2.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; + + +public final class EnvironmentHighAvailabilityConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentHighAvailabilityConfigArgs Empty = new EnvironmentHighAvailabilityConfigArgs(); + + /** + * Desired number of instances for the Environment. + * + */ + @Import(name="desiredCapacity", required=true) + private Output desiredCapacity; + + /** + * @return Desired number of instances for the Environment. + * + */ + public Output desiredCapacity() { + return this.desiredCapacity; + } + + private EnvironmentHighAvailabilityConfigArgs() {} + + private EnvironmentHighAvailabilityConfigArgs(EnvironmentHighAvailabilityConfigArgs $) { + this.desiredCapacity = $.desiredCapacity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentHighAvailabilityConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentHighAvailabilityConfigArgs $; + + public Builder() { + $ = new EnvironmentHighAvailabilityConfigArgs(); + } + + public Builder(EnvironmentHighAvailabilityConfigArgs defaults) { + $ = new EnvironmentHighAvailabilityConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param desiredCapacity Desired number of instances for the Environment. + * + * @return builder + * + */ + public Builder desiredCapacity(Output desiredCapacity) { + $.desiredCapacity = desiredCapacity; + return this; + } + + /** + * @param desiredCapacity Desired number of instances for the Environment. + * + * @return builder + * + */ + public Builder desiredCapacity(Integer desiredCapacity) { + return desiredCapacity(Output.of(desiredCapacity)); + } + + public EnvironmentHighAvailabilityConfigArgs build() { + if ($.desiredCapacity == null) { + throw new MissingRequiredPropertyException("EnvironmentHighAvailabilityConfigArgs", "desiredCapacity"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentState.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentState.java new file mode 100644 index 00000000000..544fed23f33 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentState.java @@ -0,0 +1,728 @@ +// *** 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.m2.inputs; + +import com.pulumi.aws.m2.inputs.EnvironmentHighAvailabilityConfigArgs; +import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationArgs; +import com.pulumi.aws.m2.inputs.EnvironmentTimeoutsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +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 EnvironmentState extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentState Empty = new EnvironmentState(); + + @Import(name="applyChangesDuringMaintenanceWindow") + private @Nullable Output applyChangesDuringMaintenanceWindow; + + public Optional> applyChangesDuringMaintenanceWindow() { + return Optional.ofNullable(this.applyChangesDuringMaintenanceWindow); + } + + /** + * ARN of the Environment. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN of the Environment. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Engine type must be `microfocus` or `bluage`. + * + */ + @Import(name="engineType") + private @Nullable Output engineType; + + /** + * @return Engine type must be `microfocus` or `bluage`. + * + */ + public Optional> engineType() { + return Optional.ofNullable(this.engineType); + } + + /** + * The specific version of the engine for the Environment. + * + */ + @Import(name="engineVersion") + private @Nullable Output engineVersion; + + /** + * @return The specific version of the engine for the Environment. + * + */ + public Optional> engineVersion() { + return Optional.ofNullable(this.engineVersion); + } + + /** + * The id of the Environment. + * + */ + @Import(name="environmentId") + private @Nullable Output environmentId; + + /** + * @return The id of the Environment. + * + */ + public Optional> environmentId() { + return Optional.ofNullable(this.environmentId); + } + + /** + * Force update the environment even if applications are running. + * + */ + @Import(name="forceUpdate") + private @Nullable Output forceUpdate; + + /** + * @return Force update the environment even if applications are running. + * + */ + public Optional> forceUpdate() { + return Optional.ofNullable(this.forceUpdate); + } + + @Import(name="highAvailabilityConfig") + private @Nullable Output highAvailabilityConfig; + + public Optional> highAvailabilityConfig() { + return Optional.ofNullable(this.highAvailabilityConfig); + } + + /** + * M2 Instance Type. + * + * The following arguments are optional: + * + */ + @Import(name="instanceType") + private @Nullable Output instanceType; + + /** + * @return M2 Instance Type. + * + * The following arguments are optional: + * + */ + public Optional> instanceType() { + return Optional.ofNullable(this.instanceType); + } + + /** + * ARN of the KMS key to use for the Environment. + * + */ + @Import(name="kmsKeyId") + private @Nullable Output kmsKeyId; + + /** + * @return ARN of the KMS key to use for the Environment. + * + */ + public Optional> kmsKeyId() { + return Optional.ofNullable(this.kmsKeyId); + } + + /** + * ARN of the load balancer created by the Environment. + * + */ + @Import(name="loadBalancerArn") + private @Nullable Output loadBalancerArn; + + /** + * @return ARN of the load balancer created by the Environment. + * + */ + public Optional> loadBalancerArn() { + return Optional.ofNullable(this.loadBalancerArn); + } + + /** + * Name of the runtime environment. Must be unique within the account. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the runtime environment. Must be unique within the account. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + @Import(name="preferredMaintenanceWindow") + private @Nullable Output preferredMaintenanceWindow; + + /** + * @return Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + */ + public Optional> preferredMaintenanceWindow() { + return Optional.ofNullable(this.preferredMaintenanceWindow); + } + + /** + * Allow applications deployed to this environment to be publicly accessible. + * + */ + @Import(name="publiclyAccessible") + private @Nullable Output publiclyAccessible; + + /** + * @return Allow applications deployed to this environment to be publicly accessible. + * + */ + public Optional> publiclyAccessible() { + return Optional.ofNullable(this.publiclyAccessible); + } + + /** + * List of security group ids. + * + */ + @Import(name="securityGroupIds") + private @Nullable Output> securityGroupIds; + + /** + * @return List of security group ids. + * + */ + public Optional>> securityGroupIds() { + return Optional.ofNullable(this.securityGroupIds); + } + + @Import(name="storageConfiguration") + private @Nullable Output storageConfiguration; + + public Optional> storageConfiguration() { + return Optional.ofNullable(this.storageConfiguration); + } + + /** + * List of subnet ids to deploy environment to. + * + */ + @Import(name="subnetIds") + private @Nullable Output> subnetIds; + + /** + * @return List of subnet ids to deploy environment to. + * + */ + public Optional>> subnetIds() { + return Optional.ofNullable(this.subnetIds); + } + + /** + * Key-value tags for the place index. 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 tags for the place index. 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); + } + + private EnvironmentState() {} + + private EnvironmentState(EnvironmentState $) { + this.applyChangesDuringMaintenanceWindow = $.applyChangesDuringMaintenanceWindow; + this.arn = $.arn; + this.description = $.description; + this.engineType = $.engineType; + this.engineVersion = $.engineVersion; + this.environmentId = $.environmentId; + this.forceUpdate = $.forceUpdate; + this.highAvailabilityConfig = $.highAvailabilityConfig; + this.instanceType = $.instanceType; + this.kmsKeyId = $.kmsKeyId; + this.loadBalancerArn = $.loadBalancerArn; + this.name = $.name; + this.preferredMaintenanceWindow = $.preferredMaintenanceWindow; + this.publiclyAccessible = $.publiclyAccessible; + this.securityGroupIds = $.securityGroupIds; + this.storageConfiguration = $.storageConfiguration; + this.subnetIds = $.subnetIds; + this.tags = $.tags; + this.tagsAll = $.tagsAll; + this.timeouts = $.timeouts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentState $; + + public Builder() { + $ = new EnvironmentState(); + } + + public Builder(EnvironmentState defaults) { + $ = new EnvironmentState(Objects.requireNonNull(defaults)); + } + + public Builder applyChangesDuringMaintenanceWindow(@Nullable Output applyChangesDuringMaintenanceWindow) { + $.applyChangesDuringMaintenanceWindow = applyChangesDuringMaintenanceWindow; + return this; + } + + public Builder applyChangesDuringMaintenanceWindow(Boolean applyChangesDuringMaintenanceWindow) { + return applyChangesDuringMaintenanceWindow(Output.of(applyChangesDuringMaintenanceWindow)); + } + + /** + * @param arn ARN of the Environment. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN of the Environment. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param engineType Engine type must be `microfocus` or `bluage`. + * + * @return builder + * + */ + public Builder engineType(@Nullable Output engineType) { + $.engineType = engineType; + return this; + } + + /** + * @param engineType Engine type must be `microfocus` or `bluage`. + * + * @return builder + * + */ + public Builder engineType(String engineType) { + return engineType(Output.of(engineType)); + } + + /** + * @param engineVersion The specific version of the engine for the Environment. + * + * @return builder + * + */ + public Builder engineVersion(@Nullable Output engineVersion) { + $.engineVersion = engineVersion; + return this; + } + + /** + * @param engineVersion The specific version of the engine for the Environment. + * + * @return builder + * + */ + public Builder engineVersion(String engineVersion) { + return engineVersion(Output.of(engineVersion)); + } + + /** + * @param environmentId The id of the Environment. + * + * @return builder + * + */ + public Builder environmentId(@Nullable Output environmentId) { + $.environmentId = environmentId; + return this; + } + + /** + * @param environmentId The id of the Environment. + * + * @return builder + * + */ + public Builder environmentId(String environmentId) { + return environmentId(Output.of(environmentId)); + } + + /** + * @param forceUpdate Force update the environment even if applications are running. + * + * @return builder + * + */ + public Builder forceUpdate(@Nullable Output forceUpdate) { + $.forceUpdate = forceUpdate; + return this; + } + + /** + * @param forceUpdate Force update the environment even if applications are running. + * + * @return builder + * + */ + public Builder forceUpdate(Boolean forceUpdate) { + return forceUpdate(Output.of(forceUpdate)); + } + + public Builder highAvailabilityConfig(@Nullable Output highAvailabilityConfig) { + $.highAvailabilityConfig = highAvailabilityConfig; + return this; + } + + public Builder highAvailabilityConfig(EnvironmentHighAvailabilityConfigArgs highAvailabilityConfig) { + return highAvailabilityConfig(Output.of(highAvailabilityConfig)); + } + + /** + * @param instanceType M2 Instance Type. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder instanceType(@Nullable Output instanceType) { + $.instanceType = instanceType; + return this; + } + + /** + * @param instanceType M2 Instance Type. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder instanceType(String instanceType) { + return instanceType(Output.of(instanceType)); + } + + /** + * @param kmsKeyId ARN of the KMS key to use for the Environment. + * + * @return builder + * + */ + public Builder kmsKeyId(@Nullable Output kmsKeyId) { + $.kmsKeyId = kmsKeyId; + return this; + } + + /** + * @param kmsKeyId ARN of the KMS key to use for the Environment. + * + * @return builder + * + */ + public Builder kmsKeyId(String kmsKeyId) { + return kmsKeyId(Output.of(kmsKeyId)); + } + + /** + * @param loadBalancerArn ARN of the load balancer created by the Environment. + * + * @return builder + * + */ + public Builder loadBalancerArn(@Nullable Output loadBalancerArn) { + $.loadBalancerArn = loadBalancerArn; + return this; + } + + /** + * @param loadBalancerArn ARN of the load balancer created by the Environment. + * + * @return builder + * + */ + public Builder loadBalancerArn(String loadBalancerArn) { + return loadBalancerArn(Output.of(loadBalancerArn)); + } + + /** + * @param name Name of the runtime environment. Must be unique within the account. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the runtime environment. Must be unique within the account. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param preferredMaintenanceWindow Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + * @return builder + * + */ + public Builder preferredMaintenanceWindow(@Nullable Output preferredMaintenanceWindow) { + $.preferredMaintenanceWindow = preferredMaintenanceWindow; + return this; + } + + /** + * @param preferredMaintenanceWindow Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + * + * @return builder + * + */ + public Builder preferredMaintenanceWindow(String preferredMaintenanceWindow) { + return preferredMaintenanceWindow(Output.of(preferredMaintenanceWindow)); + } + + /** + * @param publiclyAccessible Allow applications deployed to this environment to be publicly accessible. + * + * @return builder + * + */ + public Builder publiclyAccessible(@Nullable Output publiclyAccessible) { + $.publiclyAccessible = publiclyAccessible; + return this; + } + + /** + * @param publiclyAccessible Allow applications deployed to this environment to be publicly accessible. + * + * @return builder + * + */ + public Builder publiclyAccessible(Boolean publiclyAccessible) { + return publiclyAccessible(Output.of(publiclyAccessible)); + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(@Nullable Output> securityGroupIds) { + $.securityGroupIds = securityGroupIds; + return this; + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(List securityGroupIds) { + return securityGroupIds(Output.of(securityGroupIds)); + } + + /** + * @param securityGroupIds List of security group ids. + * + * @return builder + * + */ + public Builder securityGroupIds(String... securityGroupIds) { + return securityGroupIds(List.of(securityGroupIds)); + } + + public Builder storageConfiguration(@Nullable Output storageConfiguration) { + $.storageConfiguration = storageConfiguration; + return this; + } + + public Builder storageConfiguration(EnvironmentStorageConfigurationArgs storageConfiguration) { + return storageConfiguration(Output.of(storageConfiguration)); + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(@Nullable Output> subnetIds) { + $.subnetIds = subnetIds; + return this; + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(List subnetIds) { + return subnetIds(Output.of(subnetIds)); + } + + /** + * @param subnetIds List of subnet ids to deploy environment to. + * + * @return builder + * + */ + public Builder subnetIds(String... subnetIds) { + return subnetIds(List.of(subnetIds)); + } + + /** + * @param tags Key-value tags for the place index. 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 tags for the place index. 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(EnvironmentTimeoutsArgs timeouts) { + return timeouts(Output.of(timeouts)); + } + + public EnvironmentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationArgs.java new file mode 100644 index 00000000000..5fcebae0e40 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationArgs.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.m2.inputs; + +import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationEfsArgs; +import com.pulumi.aws.m2.inputs.EnvironmentStorageConfigurationFsxArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentStorageConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentStorageConfigurationArgs Empty = new EnvironmentStorageConfigurationArgs(); + + @Import(name="efs") + private @Nullable Output efs; + + public Optional> efs() { + return Optional.ofNullable(this.efs); + } + + @Import(name="fsx") + private @Nullable Output fsx; + + public Optional> fsx() { + return Optional.ofNullable(this.fsx); + } + + private EnvironmentStorageConfigurationArgs() {} + + private EnvironmentStorageConfigurationArgs(EnvironmentStorageConfigurationArgs $) { + this.efs = $.efs; + this.fsx = $.fsx; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentStorageConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentStorageConfigurationArgs $; + + public Builder() { + $ = new EnvironmentStorageConfigurationArgs(); + } + + public Builder(EnvironmentStorageConfigurationArgs defaults) { + $ = new EnvironmentStorageConfigurationArgs(Objects.requireNonNull(defaults)); + } + + public Builder efs(@Nullable Output efs) { + $.efs = efs; + return this; + } + + public Builder efs(EnvironmentStorageConfigurationEfsArgs efs) { + return efs(Output.of(efs)); + } + + public Builder fsx(@Nullable Output fsx) { + $.fsx = fsx; + return this; + } + + public Builder fsx(EnvironmentStorageConfigurationFsxArgs fsx) { + return fsx(Output.of(fsx)); + } + + public EnvironmentStorageConfigurationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationEfsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationEfsArgs.java new file mode 100644 index 00000000000..74a9deeff65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationEfsArgs.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.m2.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 EnvironmentStorageConfigurationEfsArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentStorageConfigurationEfsArgs Empty = new EnvironmentStorageConfigurationEfsArgs(); + + /** + * Id of the EFS filesystem to mount. + * + */ + @Import(name="fileSystemId", required=true) + private Output fileSystemId; + + /** + * @return Id of the EFS filesystem to mount. + * + */ + public Output fileSystemId() { + return this.fileSystemId; + } + + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + @Import(name="mountPoint", required=true) + private Output mountPoint; + + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + public Output mountPoint() { + return this.mountPoint; + } + + private EnvironmentStorageConfigurationEfsArgs() {} + + private EnvironmentStorageConfigurationEfsArgs(EnvironmentStorageConfigurationEfsArgs $) { + this.fileSystemId = $.fileSystemId; + this.mountPoint = $.mountPoint; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentStorageConfigurationEfsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentStorageConfigurationEfsArgs $; + + public Builder() { + $ = new EnvironmentStorageConfigurationEfsArgs(); + } + + public Builder(EnvironmentStorageConfigurationEfsArgs defaults) { + $ = new EnvironmentStorageConfigurationEfsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param fileSystemId Id of the EFS filesystem to mount. + * + * @return builder + * + */ + public Builder fileSystemId(Output fileSystemId) { + $.fileSystemId = fileSystemId; + return this; + } + + /** + * @param fileSystemId Id of the EFS filesystem to mount. + * + * @return builder + * + */ + public Builder fileSystemId(String fileSystemId) { + return fileSystemId(Output.of(fileSystemId)); + } + + /** + * @param mountPoint Path to mount the filesystem on, must start with `/m2/mount/`. + * + * @return builder + * + */ + public Builder mountPoint(Output mountPoint) { + $.mountPoint = mountPoint; + return this; + } + + /** + * @param mountPoint Path to mount the filesystem on, must start with `/m2/mount/`. + * + * @return builder + * + */ + public Builder mountPoint(String mountPoint) { + return mountPoint(Output.of(mountPoint)); + } + + public EnvironmentStorageConfigurationEfsArgs build() { + if ($.fileSystemId == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationEfsArgs", "fileSystemId"); + } + if ($.mountPoint == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationEfsArgs", "mountPoint"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationFsxArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationFsxArgs.java new file mode 100644 index 00000000000..731a26c0a37 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentStorageConfigurationFsxArgs.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.m2.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 EnvironmentStorageConfigurationFsxArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentStorageConfigurationFsxArgs Empty = new EnvironmentStorageConfigurationFsxArgs(); + + /** + * Id of the FSX filesystem to mount. + * + */ + @Import(name="fileSystemId", required=true) + private Output fileSystemId; + + /** + * @return Id of the FSX filesystem to mount. + * + */ + public Output fileSystemId() { + return this.fileSystemId; + } + + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + @Import(name="mountPoint", required=true) + private Output mountPoint; + + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + public Output mountPoint() { + return this.mountPoint; + } + + private EnvironmentStorageConfigurationFsxArgs() {} + + private EnvironmentStorageConfigurationFsxArgs(EnvironmentStorageConfigurationFsxArgs $) { + this.fileSystemId = $.fileSystemId; + this.mountPoint = $.mountPoint; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentStorageConfigurationFsxArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentStorageConfigurationFsxArgs $; + + public Builder() { + $ = new EnvironmentStorageConfigurationFsxArgs(); + } + + public Builder(EnvironmentStorageConfigurationFsxArgs defaults) { + $ = new EnvironmentStorageConfigurationFsxArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param fileSystemId Id of the FSX filesystem to mount. + * + * @return builder + * + */ + public Builder fileSystemId(Output fileSystemId) { + $.fileSystemId = fileSystemId; + return this; + } + + /** + * @param fileSystemId Id of the FSX filesystem to mount. + * + * @return builder + * + */ + public Builder fileSystemId(String fileSystemId) { + return fileSystemId(Output.of(fileSystemId)); + } + + /** + * @param mountPoint Path to mount the filesystem on, must start with `/m2/mount/`. + * + * @return builder + * + */ + public Builder mountPoint(Output mountPoint) { + $.mountPoint = mountPoint; + return this; + } + + /** + * @param mountPoint Path to mount the filesystem on, must start with `/m2/mount/`. + * + * @return builder + * + */ + public Builder mountPoint(String mountPoint) { + return mountPoint(Output.of(mountPoint)); + } + + public EnvironmentStorageConfigurationFsxArgs build() { + if ($.fileSystemId == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationFsxArgs", "fileSystemId"); + } + if ($.mountPoint == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationFsxArgs", "mountPoint"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentTimeoutsArgs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentTimeoutsArgs.java new file mode 100644 index 00000000000..27967cc89a0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/inputs/EnvironmentTimeoutsArgs.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.m2.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 EnvironmentTimeoutsArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentTimeoutsArgs Empty = new EnvironmentTimeoutsArgs(); + + /** + * 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 EnvironmentTimeoutsArgs() {} + + private EnvironmentTimeoutsArgs(EnvironmentTimeoutsArgs $) { + this.create = $.create; + this.delete = $.delete; + this.update = $.update; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentTimeoutsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentTimeoutsArgs $; + + public Builder() { + $ = new EnvironmentTimeoutsArgs(); + } + + public Builder(EnvironmentTimeoutsArgs defaults) { + $ = new EnvironmentTimeoutsArgs(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 EnvironmentTimeoutsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationDefinition.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationDefinition.java new file mode 100644 index 00000000000..5b29f425b35 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationDefinition.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.m2.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 ApplicationDefinition { + /** + * @return JSON application definition. Either this or `s3_location` must be specified. + * + */ + private @Nullable String content; + /** + * @return Location of the application definition in S3. Either this or `content` must be specified. + * + */ + private @Nullable String s3Location; + + private ApplicationDefinition() {} + /** + * @return JSON application definition. Either this or `s3_location` must be specified. + * + */ + public Optional content() { + return Optional.ofNullable(this.content); + } + /** + * @return Location of the application definition in S3. Either this or `content` must be specified. + * + */ + public Optional s3Location() { + return Optional.ofNullable(this.s3Location); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ApplicationDefinition defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String content; + private @Nullable String s3Location; + public Builder() {} + public Builder(ApplicationDefinition defaults) { + Objects.requireNonNull(defaults); + this.content = defaults.content; + this.s3Location = defaults.s3Location; + } + + @CustomType.Setter + public Builder content(@Nullable String content) { + + this.content = content; + return this; + } + @CustomType.Setter + public Builder s3Location(@Nullable String s3Location) { + + this.s3Location = s3Location; + return this; + } + public ApplicationDefinition build() { + final var _resultValue = new ApplicationDefinition(); + _resultValue.content = content; + _resultValue.s3Location = s3Location; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationTimeouts.java new file mode 100644 index 00000000000..bda61008845 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/ApplicationTimeouts.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.m2.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 ApplicationTimeouts { + /** + * @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 ApplicationTimeouts() {} + /** + * @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(ApplicationTimeouts 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(ApplicationTimeouts 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 ApplicationTimeouts build() { + final var _resultValue = new ApplicationTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/DeploymentTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/DeploymentTimeouts.java new file mode 100644 index 00000000000..130c390f46f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/DeploymentTimeouts.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.m2.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 DeploymentTimeouts { + /** + * @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 DeploymentTimeouts() {} + /** + * @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(DeploymentTimeouts 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(DeploymentTimeouts 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 DeploymentTimeouts build() { + final var _resultValue = new DeploymentTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentHighAvailabilityConfig.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentHighAvailabilityConfig.java new file mode 100644 index 00000000000..d65abd071ef --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentHighAvailabilityConfig.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.m2.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class EnvironmentHighAvailabilityConfig { + /** + * @return Desired number of instances for the Environment. + * + */ + private Integer desiredCapacity; + + private EnvironmentHighAvailabilityConfig() {} + /** + * @return Desired number of instances for the Environment. + * + */ + public Integer desiredCapacity() { + return this.desiredCapacity; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EnvironmentHighAvailabilityConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer desiredCapacity; + public Builder() {} + public Builder(EnvironmentHighAvailabilityConfig defaults) { + Objects.requireNonNull(defaults); + this.desiredCapacity = defaults.desiredCapacity; + } + + @CustomType.Setter + public Builder desiredCapacity(Integer desiredCapacity) { + if (desiredCapacity == null) { + throw new MissingRequiredPropertyException("EnvironmentHighAvailabilityConfig", "desiredCapacity"); + } + this.desiredCapacity = desiredCapacity; + return this; + } + public EnvironmentHighAvailabilityConfig build() { + final var _resultValue = new EnvironmentHighAvailabilityConfig(); + _resultValue.desiredCapacity = desiredCapacity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfiguration.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfiguration.java new file mode 100644 index 00000000000..1196cd3f18b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfiguration.java @@ -0,0 +1,63 @@ +// *** 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.m2.outputs; + +import com.pulumi.aws.m2.outputs.EnvironmentStorageConfigurationEfs; +import com.pulumi.aws.m2.outputs.EnvironmentStorageConfigurationFsx; +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class EnvironmentStorageConfiguration { + private @Nullable EnvironmentStorageConfigurationEfs efs; + private @Nullable EnvironmentStorageConfigurationFsx fsx; + + private EnvironmentStorageConfiguration() {} + public Optional efs() { + return Optional.ofNullable(this.efs); + } + public Optional fsx() { + return Optional.ofNullable(this.fsx); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EnvironmentStorageConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable EnvironmentStorageConfigurationEfs efs; + private @Nullable EnvironmentStorageConfigurationFsx fsx; + public Builder() {} + public Builder(EnvironmentStorageConfiguration defaults) { + Objects.requireNonNull(defaults); + this.efs = defaults.efs; + this.fsx = defaults.fsx; + } + + @CustomType.Setter + public Builder efs(@Nullable EnvironmentStorageConfigurationEfs efs) { + + this.efs = efs; + return this; + } + @CustomType.Setter + public Builder fsx(@Nullable EnvironmentStorageConfigurationFsx fsx) { + + this.fsx = fsx; + return this; + } + public EnvironmentStorageConfiguration build() { + final var _resultValue = new EnvironmentStorageConfiguration(); + _resultValue.efs = efs; + _resultValue.fsx = fsx; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationEfs.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationEfs.java new file mode 100644 index 00000000000..e81d3cb140a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationEfs.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.m2.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class EnvironmentStorageConfigurationEfs { + /** + * @return Id of the EFS filesystem to mount. + * + */ + private String fileSystemId; + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + private String mountPoint; + + private EnvironmentStorageConfigurationEfs() {} + /** + * @return Id of the EFS filesystem to mount. + * + */ + public String fileSystemId() { + return this.fileSystemId; + } + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + public String mountPoint() { + return this.mountPoint; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EnvironmentStorageConfigurationEfs defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String fileSystemId; + private String mountPoint; + public Builder() {} + public Builder(EnvironmentStorageConfigurationEfs defaults) { + Objects.requireNonNull(defaults); + this.fileSystemId = defaults.fileSystemId; + this.mountPoint = defaults.mountPoint; + } + + @CustomType.Setter + public Builder fileSystemId(String fileSystemId) { + if (fileSystemId == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationEfs", "fileSystemId"); + } + this.fileSystemId = fileSystemId; + return this; + } + @CustomType.Setter + public Builder mountPoint(String mountPoint) { + if (mountPoint == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationEfs", "mountPoint"); + } + this.mountPoint = mountPoint; + return this; + } + public EnvironmentStorageConfigurationEfs build() { + final var _resultValue = new EnvironmentStorageConfigurationEfs(); + _resultValue.fileSystemId = fileSystemId; + _resultValue.mountPoint = mountPoint; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationFsx.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationFsx.java new file mode 100644 index 00000000000..ff06578aa09 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentStorageConfigurationFsx.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.m2.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class EnvironmentStorageConfigurationFsx { + /** + * @return Id of the FSX filesystem to mount. + * + */ + private String fileSystemId; + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + private String mountPoint; + + private EnvironmentStorageConfigurationFsx() {} + /** + * @return Id of the FSX filesystem to mount. + * + */ + public String fileSystemId() { + return this.fileSystemId; + } + /** + * @return Path to mount the filesystem on, must start with `/m2/mount/`. + * + */ + public String mountPoint() { + return this.mountPoint; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(EnvironmentStorageConfigurationFsx defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String fileSystemId; + private String mountPoint; + public Builder() {} + public Builder(EnvironmentStorageConfigurationFsx defaults) { + Objects.requireNonNull(defaults); + this.fileSystemId = defaults.fileSystemId; + this.mountPoint = defaults.mountPoint; + } + + @CustomType.Setter + public Builder fileSystemId(String fileSystemId) { + if (fileSystemId == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationFsx", "fileSystemId"); + } + this.fileSystemId = fileSystemId; + return this; + } + @CustomType.Setter + public Builder mountPoint(String mountPoint) { + if (mountPoint == null) { + throw new MissingRequiredPropertyException("EnvironmentStorageConfigurationFsx", "mountPoint"); + } + this.mountPoint = mountPoint; + return this; + } + public EnvironmentStorageConfigurationFsx build() { + final var _resultValue = new EnvironmentStorageConfigurationFsx(); + _resultValue.fileSystemId = fileSystemId; + _resultValue.mountPoint = mountPoint; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentTimeouts.java b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentTimeouts.java new file mode 100644 index 00000000000..42d35fd5b39 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/m2/outputs/EnvironmentTimeouts.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.m2.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 EnvironmentTimeouts { + /** + * @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 EnvironmentTimeouts() {} + /** + * @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(EnvironmentTimeouts 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(EnvironmentTimeouts 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 EnvironmentTimeouts build() { + final var _resultValue = new EnvironmentTimeouts(); + _resultValue.create = create; + _resultValue.delete = delete; + _resultValue.update = update; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/mediastore/ContainerPolicy.java b/sdk/java/src/main/java/com/pulumi/aws/mediastore/ContainerPolicy.java index a064e911d3e..19f97153d19 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/mediastore/ContainerPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/mediastore/ContainerPolicy.java @@ -14,8 +14,6 @@ import javax.annotation.Nullable; /** - * Provides a MediaStore Container Policy. - * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/GetSnapshotResult.java b/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/GetSnapshotResult.java index 20821040c9a..cad41ec8bac 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/GetSnapshotResult.java +++ b/sdk/java/src/main/java/com/pulumi/aws/rds/outputs/GetSnapshotResult.java @@ -75,9 +75,14 @@ public final class GetSnapshotResult { * */ private String optionGroupName; + /** + * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + * + */ + private String originalSnapshotCreateTime; private Integer port; /** - * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. * */ private String snapshotCreateTime; @@ -202,11 +207,18 @@ public Optional mostRecent() { public String optionGroupName() { return this.optionGroupName; } + /** + * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + * + */ + public String originalSnapshotCreateTime() { + return this.originalSnapshotCreateTime; + } public Integer port() { return this.port; } /** - * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + * @return Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. * */ public String snapshotCreateTime() { @@ -279,6 +291,7 @@ public static final class Builder { private String licenseModel; private @Nullable Boolean mostRecent; private String optionGroupName; + private String originalSnapshotCreateTime; private Integer port; private String snapshotCreateTime; private @Nullable String snapshotType; @@ -307,6 +320,7 @@ public Builder(GetSnapshotResult defaults) { this.licenseModel = defaults.licenseModel; this.mostRecent = defaults.mostRecent; this.optionGroupName = defaults.optionGroupName; + this.originalSnapshotCreateTime = defaults.originalSnapshotCreateTime; this.port = defaults.port; this.snapshotCreateTime = defaults.snapshotCreateTime; this.snapshotType = defaults.snapshotType; @@ -437,6 +451,14 @@ public Builder optionGroupName(String optionGroupName) { return this; } @CustomType.Setter + public Builder originalSnapshotCreateTime(String originalSnapshotCreateTime) { + if (originalSnapshotCreateTime == null) { + throw new MissingRequiredPropertyException("GetSnapshotResult", "originalSnapshotCreateTime"); + } + this.originalSnapshotCreateTime = originalSnapshotCreateTime; + return this; + } + @CustomType.Setter public Builder port(Integer port) { if (port == null) { throw new MissingRequiredPropertyException("GetSnapshotResult", "port"); @@ -524,6 +546,7 @@ public GetSnapshotResult build() { _resultValue.licenseModel = licenseModel; _resultValue.mostRecent = mostRecent; _resultValue.optionGroupName = optionGroupName; + _resultValue.originalSnapshotCreateTime = originalSnapshotCreateTime; _resultValue.port = port; _resultValue.snapshotCreateTime = snapshotCreateTime; _resultValue.snapshotType = snapshotType; diff --git a/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociation.java b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociation.java new file mode 100644 index 00000000000..b59d8b42d9f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociation.java @@ -0,0 +1,189 @@ +// *** 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.redshiftserverless; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.redshiftserverless.CustomDomainAssociationArgs; +import com.pulumi.aws.redshiftserverless.inputs.CustomDomainAssociationState; +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; + +/** + * Resource for managing an AWS Redshift Serverless Custom Domain Association. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.acm.Certificate; + * import com.pulumi.aws.acm.CertificateArgs; + * import com.pulumi.aws.redshiftserverless.Namespace; + * import com.pulumi.aws.redshiftserverless.NamespaceArgs; + * import com.pulumi.aws.redshiftserverless.Workgroup; + * import com.pulumi.aws.redshiftserverless.WorkgroupArgs; + * import com.pulumi.aws.redshiftserverless.CustomDomainAssociation; + * import com.pulumi.aws.redshiftserverless.CustomDomainAssociationArgs; + * 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 Certificate("example", CertificateArgs.builder() + * .domainName("example.com") + * .build()); + * + * var exampleNamespace = new Namespace("exampleNamespace", NamespaceArgs.builder() + * .namespaceName("example-namespace") + * .build()); + * + * var exampleWorkgroup = new Workgroup("exampleWorkgroup", WorkgroupArgs.builder() + * .workgroupName("example-workgroup") + * .namespaceName(exampleNamespace.namespaceName()) + * .build()); + * + * var exampleCustomDomainAssociation = new CustomDomainAssociation("exampleCustomDomainAssociation", CustomDomainAssociationArgs.builder() + * .workgroupName(exampleWorkgroup.workgroupName()) + * .customDomainName("example.com") + * .customDomainCertificateArn(example.arn()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: + * + * ```sh + * $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com + * ``` + * + */ +@ResourceType(type="aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation") +public class CustomDomainAssociation extends com.pulumi.resources.CustomResource { + /** + * ARN of the certificate for the custom domain association. + * + */ + @Export(name="customDomainCertificateArn", refs={String.class}, tree="[0]") + private Output customDomainCertificateArn; + + /** + * @return ARN of the certificate for the custom domain association. + * + */ + public Output customDomainCertificateArn() { + return this.customDomainCertificateArn; + } + /** + * Expiration time for the certificate. + * + */ + @Export(name="customDomainCertificateExpiryTime", refs={String.class}, tree="[0]") + private Output customDomainCertificateExpiryTime; + + /** + * @return Expiration time for the certificate. + * + */ + public Output customDomainCertificateExpiryTime() { + return this.customDomainCertificateExpiryTime; + } + /** + * Custom domain to associate with the workgroup. + * + */ + @Export(name="customDomainName", refs={String.class}, tree="[0]") + private Output customDomainName; + + /** + * @return Custom domain to associate with the workgroup. + * + */ + public Output customDomainName() { + return this.customDomainName; + } + /** + * Name of the workgroup. + * + */ + @Export(name="workgroupName", refs={String.class}, tree="[0]") + private Output workgroupName; + + /** + * @return Name of the workgroup. + * + */ + public Output workgroupName() { + return this.workgroupName; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public CustomDomainAssociation(String name) { + this(name, CustomDomainAssociationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public CustomDomainAssociation(String name, CustomDomainAssociationArgs 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 CustomDomainAssociation(String name, CustomDomainAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", name, args == null ? CustomDomainAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private CustomDomainAssociation(String name, Output id, @Nullable CustomDomainAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static CustomDomainAssociation get(String name, Output id, @Nullable CustomDomainAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new CustomDomainAssociation(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociationArgs.java new file mode 100644 index 00000000000..3ae546fee75 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/CustomDomainAssociationArgs.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.redshiftserverless; + +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 CustomDomainAssociationArgs extends com.pulumi.resources.ResourceArgs { + + public static final CustomDomainAssociationArgs Empty = new CustomDomainAssociationArgs(); + + /** + * ARN of the certificate for the custom domain association. + * + */ + @Import(name="customDomainCertificateArn", required=true) + private Output customDomainCertificateArn; + + /** + * @return ARN of the certificate for the custom domain association. + * + */ + public Output customDomainCertificateArn() { + return this.customDomainCertificateArn; + } + + /** + * Custom domain to associate with the workgroup. + * + */ + @Import(name="customDomainName", required=true) + private Output customDomainName; + + /** + * @return Custom domain to associate with the workgroup. + * + */ + public Output customDomainName() { + return this.customDomainName; + } + + /** + * Name of the workgroup. + * + */ + @Import(name="workgroupName", required=true) + private Output workgroupName; + + /** + * @return Name of the workgroup. + * + */ + public Output workgroupName() { + return this.workgroupName; + } + + private CustomDomainAssociationArgs() {} + + private CustomDomainAssociationArgs(CustomDomainAssociationArgs $) { + this.customDomainCertificateArn = $.customDomainCertificateArn; + this.customDomainName = $.customDomainName; + this.workgroupName = $.workgroupName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CustomDomainAssociationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CustomDomainAssociationArgs $; + + public Builder() { + $ = new CustomDomainAssociationArgs(); + } + + public Builder(CustomDomainAssociationArgs defaults) { + $ = new CustomDomainAssociationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param customDomainCertificateArn ARN of the certificate for the custom domain association. + * + * @return builder + * + */ + public Builder customDomainCertificateArn(Output customDomainCertificateArn) { + $.customDomainCertificateArn = customDomainCertificateArn; + return this; + } + + /** + * @param customDomainCertificateArn ARN of the certificate for the custom domain association. + * + * @return builder + * + */ + public Builder customDomainCertificateArn(String customDomainCertificateArn) { + return customDomainCertificateArn(Output.of(customDomainCertificateArn)); + } + + /** + * @param customDomainName Custom domain to associate with the workgroup. + * + * @return builder + * + */ + public Builder customDomainName(Output customDomainName) { + $.customDomainName = customDomainName; + return this; + } + + /** + * @param customDomainName Custom domain to associate with the workgroup. + * + * @return builder + * + */ + public Builder customDomainName(String customDomainName) { + return customDomainName(Output.of(customDomainName)); + } + + /** + * @param workgroupName Name of the workgroup. + * + * @return builder + * + */ + public Builder workgroupName(Output workgroupName) { + $.workgroupName = workgroupName; + return this; + } + + /** + * @param workgroupName Name of the workgroup. + * + * @return builder + * + */ + public Builder workgroupName(String workgroupName) { + return workgroupName(Output.of(workgroupName)); + } + + public CustomDomainAssociationArgs build() { + if ($.customDomainCertificateArn == null) { + throw new MissingRequiredPropertyException("CustomDomainAssociationArgs", "customDomainCertificateArn"); + } + if ($.customDomainName == null) { + throw new MissingRequiredPropertyException("CustomDomainAssociationArgs", "customDomainName"); + } + if ($.workgroupName == null) { + throw new MissingRequiredPropertyException("CustomDomainAssociationArgs", "workgroupName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/inputs/CustomDomainAssociationState.java b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/inputs/CustomDomainAssociationState.java new file mode 100644 index 00000000000..e2ee0d58ebd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/redshiftserverless/inputs/CustomDomainAssociationState.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.redshiftserverless.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 CustomDomainAssociationState extends com.pulumi.resources.ResourceArgs { + + public static final CustomDomainAssociationState Empty = new CustomDomainAssociationState(); + + /** + * ARN of the certificate for the custom domain association. + * + */ + @Import(name="customDomainCertificateArn") + private @Nullable Output customDomainCertificateArn; + + /** + * @return ARN of the certificate for the custom domain association. + * + */ + public Optional> customDomainCertificateArn() { + return Optional.ofNullable(this.customDomainCertificateArn); + } + + /** + * Expiration time for the certificate. + * + */ + @Import(name="customDomainCertificateExpiryTime") + private @Nullable Output customDomainCertificateExpiryTime; + + /** + * @return Expiration time for the certificate. + * + */ + public Optional> customDomainCertificateExpiryTime() { + return Optional.ofNullable(this.customDomainCertificateExpiryTime); + } + + /** + * Custom domain to associate with the workgroup. + * + */ + @Import(name="customDomainName") + private @Nullable Output customDomainName; + + /** + * @return Custom domain to associate with the workgroup. + * + */ + public Optional> customDomainName() { + return Optional.ofNullable(this.customDomainName); + } + + /** + * Name of the workgroup. + * + */ + @Import(name="workgroupName") + private @Nullable Output workgroupName; + + /** + * @return Name of the workgroup. + * + */ + public Optional> workgroupName() { + return Optional.ofNullable(this.workgroupName); + } + + private CustomDomainAssociationState() {} + + private CustomDomainAssociationState(CustomDomainAssociationState $) { + this.customDomainCertificateArn = $.customDomainCertificateArn; + this.customDomainCertificateExpiryTime = $.customDomainCertificateExpiryTime; + this.customDomainName = $.customDomainName; + this.workgroupName = $.workgroupName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CustomDomainAssociationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CustomDomainAssociationState $; + + public Builder() { + $ = new CustomDomainAssociationState(); + } + + public Builder(CustomDomainAssociationState defaults) { + $ = new CustomDomainAssociationState(Objects.requireNonNull(defaults)); + } + + /** + * @param customDomainCertificateArn ARN of the certificate for the custom domain association. + * + * @return builder + * + */ + public Builder customDomainCertificateArn(@Nullable Output customDomainCertificateArn) { + $.customDomainCertificateArn = customDomainCertificateArn; + return this; + } + + /** + * @param customDomainCertificateArn ARN of the certificate for the custom domain association. + * + * @return builder + * + */ + public Builder customDomainCertificateArn(String customDomainCertificateArn) { + return customDomainCertificateArn(Output.of(customDomainCertificateArn)); + } + + /** + * @param customDomainCertificateExpiryTime Expiration time for the certificate. + * + * @return builder + * + */ + public Builder customDomainCertificateExpiryTime(@Nullable Output customDomainCertificateExpiryTime) { + $.customDomainCertificateExpiryTime = customDomainCertificateExpiryTime; + return this; + } + + /** + * @param customDomainCertificateExpiryTime Expiration time for the certificate. + * + * @return builder + * + */ + public Builder customDomainCertificateExpiryTime(String customDomainCertificateExpiryTime) { + return customDomainCertificateExpiryTime(Output.of(customDomainCertificateExpiryTime)); + } + + /** + * @param customDomainName Custom domain to associate with the workgroup. + * + * @return builder + * + */ + public Builder customDomainName(@Nullable Output customDomainName) { + $.customDomainName = customDomainName; + return this; + } + + /** + * @param customDomainName Custom domain to associate with the workgroup. + * + * @return builder + * + */ + public Builder customDomainName(String customDomainName) { + return customDomainName(Output.of(customDomainName)); + } + + /** + * @param workgroupName Name of the workgroup. + * + * @return builder + * + */ + public Builder workgroupName(@Nullable Output workgroupName) { + $.workgroupName = workgroupName; + return this; + } + + /** + * @param workgroupName Name of the workgroup. + * + * @return builder + * + */ + public Builder workgroupName(String workgroupName) { + return workgroupName(Output.of(workgroupName)); + } + + public CustomDomainAssociationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/ResourceexplorerFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/ResourceexplorerFunctions.java new file mode 100644 index 00000000000..94efba00128 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/ResourceexplorerFunctions.java @@ -0,0 +1,189 @@ +// *** 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.resourceexplorer; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.resourceexplorer.inputs.SearchArgs; +import com.pulumi.aws.resourceexplorer.inputs.SearchPlainArgs; +import com.pulumi.aws.resourceexplorer.outputs.SearchResult; +import com.pulumi.core.Output; +import com.pulumi.core.TypeShape; +import com.pulumi.deployment.Deployment; +import com.pulumi.deployment.InvokeOptions; +import java.util.concurrent.CompletableFuture; + +public final class ResourceexplorerFunctions { + /** + * Data source for managing an AWS Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.resourceexplorer.ResourceexplorerFunctions; + * import com.pulumi.aws.resourceexplorer.inputs.SearchArgs; + * 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 example = ResourceexplorerFunctions.Search(SearchArgs.builder() + * .queryString("region:us-west-2") + * .viewArn(test.arn()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output search(SearchArgs args) { + return search(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.resourceexplorer.ResourceexplorerFunctions; + * import com.pulumi.aws.resourceexplorer.inputs.SearchArgs; + * 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 example = ResourceexplorerFunctions.Search(SearchArgs.builder() + * .queryString("region:us-west-2") + * .viewArn(test.arn()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture searchPlain(SearchPlainArgs args) { + return searchPlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.resourceexplorer.ResourceexplorerFunctions; + * import com.pulumi.aws.resourceexplorer.inputs.SearchArgs; + * 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 example = ResourceexplorerFunctions.Search(SearchArgs.builder() + * .queryString("region:us-west-2") + * .viewArn(test.arn()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output search(SearchArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:resourceexplorer/search:Search", TypeShape.of(SearchResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.resourceexplorer.ResourceexplorerFunctions; + * import com.pulumi.aws.resourceexplorer.inputs.SearchArgs; + * 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 example = ResourceexplorerFunctions.Search(SearchArgs.builder() + * .queryString("region:us-west-2") + * .viewArn(test.arn()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture searchPlain(SearchPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:resourceexplorer/search:Search", TypeShape.of(SearchResult.class), args, Utilities.withVersion(options)); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchArgs.java new file mode 100644 index 00000000000..5d3d7580938 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchArgs.java @@ -0,0 +1,229 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.aws.resourceexplorer.inputs.SearchResourceArgs; +import com.pulumi.aws.resourceexplorer.inputs.SearchResourceCountArgs; +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 SearchArgs extends com.pulumi.resources.InvokeArgs { + + public static final SearchArgs Empty = new SearchArgs(); + + /** + * String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + */ + @Import(name="queryString", required=true) + private Output queryString; + + /** + * @return String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + */ + public Output queryString() { + return this.queryString; + } + + /** + * Number of resources that match the query. See `resource_count` below. + * + */ + @Import(name="resourceCounts") + private @Nullable Output> resourceCounts; + + /** + * @return Number of resources that match the query. See `resource_count` below. + * + */ + public Optional>> resourceCounts() { + return Optional.ofNullable(this.resourceCounts); + } + + /** + * List of structures that describe the resources that match the query. See `resources` below. + * + */ + @Import(name="resources") + private @Nullable Output> resources; + + /** + * @return List of structures that describe the resources that match the query. See `resources` below. + * + */ + public Optional>> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + */ + @Import(name="viewArn") + private @Nullable Output viewArn; + + /** + * @return Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + */ + public Optional> viewArn() { + return Optional.ofNullable(this.viewArn); + } + + private SearchArgs() {} + + private SearchArgs(SearchArgs $) { + this.queryString = $.queryString; + this.resourceCounts = $.resourceCounts; + this.resources = $.resources; + this.viewArn = $.viewArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchArgs $; + + public Builder() { + $ = new SearchArgs(); + } + + public Builder(SearchArgs defaults) { + $ = new SearchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param queryString String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder queryString(Output queryString) { + $.queryString = queryString; + return this; + } + + /** + * @param queryString String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder queryString(String queryString) { + return queryString(Output.of(queryString)); + } + + /** + * @param resourceCounts Number of resources that match the query. See `resource_count` below. + * + * @return builder + * + */ + public Builder resourceCounts(@Nullable Output> resourceCounts) { + $.resourceCounts = resourceCounts; + return this; + } + + /** + * @param resourceCounts Number of resources that match the query. See `resource_count` below. + * + * @return builder + * + */ + public Builder resourceCounts(List resourceCounts) { + return resourceCounts(Output.of(resourceCounts)); + } + + /** + * @param resourceCounts Number of resources that match the query. See `resource_count` below. + * + * @return builder + * + */ + public Builder resourceCounts(SearchResourceCountArgs... resourceCounts) { + return resourceCounts(List.of(resourceCounts)); + } + + /** + * @param resources List of structures that describe the resources that match the query. See `resources` below. + * + * @return builder + * + */ + public Builder resources(@Nullable Output> resources) { + $.resources = resources; + return this; + } + + /** + * @param resources List of structures that describe the resources that match the query. See `resources` below. + * + * @return builder + * + */ + public Builder resources(List resources) { + return resources(Output.of(resources)); + } + + /** + * @param resources List of structures that describe the resources that match the query. See `resources` below. + * + * @return builder + * + */ + public Builder resources(SearchResourceArgs... resources) { + return resources(List.of(resources)); + } + + /** + * @param viewArn Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + * @return builder + * + */ + public Builder viewArn(@Nullable Output viewArn) { + $.viewArn = viewArn; + return this; + } + + /** + * @param viewArn Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + * @return builder + * + */ + public Builder viewArn(String viewArn) { + return viewArn(Output.of(viewArn)); + } + + public SearchArgs build() { + if ($.queryString == null) { + throw new MissingRequiredPropertyException("SearchArgs", "queryString"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchPlainArgs.java new file mode 100644 index 00000000000..d75bf1be377 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchPlainArgs.java @@ -0,0 +1,186 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.aws.resourceexplorer.inputs.SearchResource; +import com.pulumi.aws.resourceexplorer.inputs.SearchResourceCount; +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 SearchPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final SearchPlainArgs Empty = new SearchPlainArgs(); + + /** + * String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + */ + @Import(name="queryString", required=true) + private String queryString; + + /** + * @return String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + */ + public String queryString() { + return this.queryString; + } + + /** + * Number of resources that match the query. See `resource_count` below. + * + */ + @Import(name="resourceCounts") + private @Nullable List resourceCounts; + + /** + * @return Number of resources that match the query. See `resource_count` below. + * + */ + public Optional> resourceCounts() { + return Optional.ofNullable(this.resourceCounts); + } + + /** + * List of structures that describe the resources that match the query. See `resources` below. + * + */ + @Import(name="resources") + private @Nullable List resources; + + /** + * @return List of structures that describe the resources that match the query. See `resources` below. + * + */ + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + */ + @Import(name="viewArn") + private @Nullable String viewArn; + + /** + * @return Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + */ + public Optional viewArn() { + return Optional.ofNullable(this.viewArn); + } + + private SearchPlainArgs() {} + + private SearchPlainArgs(SearchPlainArgs $) { + this.queryString = $.queryString; + this.resourceCounts = $.resourceCounts; + this.resources = $.resources; + this.viewArn = $.viewArn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchPlainArgs $; + + public Builder() { + $ = new SearchPlainArgs(); + } + + public Builder(SearchPlainArgs defaults) { + $ = new SearchPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param queryString String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder queryString(String queryString) { + $.queryString = queryString; + return this; + } + + /** + * @param resourceCounts Number of resources that match the query. See `resource_count` below. + * + * @return builder + * + */ + public Builder resourceCounts(@Nullable List resourceCounts) { + $.resourceCounts = resourceCounts; + return this; + } + + /** + * @param resourceCounts Number of resources that match the query. See `resource_count` below. + * + * @return builder + * + */ + public Builder resourceCounts(SearchResourceCount... resourceCounts) { + return resourceCounts(List.of(resourceCounts)); + } + + /** + * @param resources List of structures that describe the resources that match the query. See `resources` below. + * + * @return builder + * + */ + public Builder resources(@Nullable List resources) { + $.resources = resources; + return this; + } + + /** + * @param resources List of structures that describe the resources that match the query. See `resources` below. + * + * @return builder + * + */ + public Builder resources(SearchResource... resources) { + return resources(List.of(resources)); + } + + /** + * @param viewArn Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + * + * @return builder + * + */ + public Builder viewArn(@Nullable String viewArn) { + $.viewArn = viewArn; + return this; + } + + public SearchPlainArgs build() { + if ($.queryString == null) { + throw new MissingRequiredPropertyException("SearchPlainArgs", "queryString"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResource.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResource.java new file mode 100644 index 00000000000..0a1747d9eea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResource.java @@ -0,0 +1,265 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.aws.resourceexplorer.inputs.SearchResourceResourceProperty; +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 SearchResource extends com.pulumi.resources.InvokeArgs { + + public static final SearchResource Empty = new SearchResource(); + + /** + * Amazon resource name of resource. + * + */ + @Import(name="arn", required=true) + private String arn; + + /** + * @return Amazon resource name of resource. + * + */ + public String arn() { + return this.arn; + } + + /** + * The date and time that the information about this resource property was last updated. + * + */ + @Import(name="lastReportedAt", required=true) + private String lastReportedAt; + + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public String lastReportedAt() { + return this.lastReportedAt; + } + + /** + * Amazon Web Services account that owns the resource. + * + */ + @Import(name="owningAccountId", required=true) + private String owningAccountId; + + /** + * @return Amazon Web Services account that owns the resource. + * + */ + public String owningAccountId() { + return this.owningAccountId; + } + + /** + * Amazon Web Services Region in which the resource was created and exists. + * + */ + @Import(name="region", required=true) + private String region; + + /** + * @return Amazon Web Services Region in which the resource was created and exists. + * + */ + public String region() { + return this.region; + } + + /** + * Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + @Import(name="resourceProperties") + private @Nullable List resourceProperties; + + /** + * @return Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + public Optional> resourceProperties() { + return Optional.ofNullable(this.resourceProperties); + } + + /** + * Type of the resource. + * + */ + @Import(name="resourceType", required=true) + private String resourceType; + + /** + * @return Type of the resource. + * + */ + public String resourceType() { + return this.resourceType; + } + + /** + * Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + @Import(name="service", required=true) + private String service; + + /** + * @return Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + public String service() { + return this.service; + } + + private SearchResource() {} + + private SearchResource(SearchResource $) { + this.arn = $.arn; + this.lastReportedAt = $.lastReportedAt; + this.owningAccountId = $.owningAccountId; + this.region = $.region; + this.resourceProperties = $.resourceProperties; + this.resourceType = $.resourceType; + this.service = $.service; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResource defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResource $; + + public Builder() { + $ = new SearchResource(); + } + + public Builder(SearchResource defaults) { + $ = new SearchResource(Objects.requireNonNull(defaults)); + } + + /** + * @param arn Amazon resource name of resource. + * + * @return builder + * + */ + public Builder arn(String arn) { + $.arn = arn; + return this; + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(String lastReportedAt) { + $.lastReportedAt = lastReportedAt; + return this; + } + + /** + * @param owningAccountId Amazon Web Services account that owns the resource. + * + * @return builder + * + */ + public Builder owningAccountId(String owningAccountId) { + $.owningAccountId = owningAccountId; + return this; + } + + /** + * @param region Amazon Web Services Region in which the resource was created and exists. + * + * @return builder + * + */ + public Builder region(String region) { + $.region = region; + return this; + } + + /** + * @param resourceProperties Structure with additional type-specific details about the resource. See `resource_property` below. + * + * @return builder + * + */ + public Builder resourceProperties(@Nullable List resourceProperties) { + $.resourceProperties = resourceProperties; + return this; + } + + /** + * @param resourceProperties Structure with additional type-specific details about the resource. See `resource_property` below. + * + * @return builder + * + */ + public Builder resourceProperties(SearchResourceResourceProperty... resourceProperties) { + return resourceProperties(List.of(resourceProperties)); + } + + /** + * @param resourceType Type of the resource. + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param service Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + * @return builder + * + */ + public Builder service(String service) { + $.service = service; + return this; + } + + public SearchResource build() { + if ($.arn == null) { + throw new MissingRequiredPropertyException("SearchResource", "arn"); + } + if ($.lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResource", "lastReportedAt"); + } + if ($.owningAccountId == null) { + throw new MissingRequiredPropertyException("SearchResource", "owningAccountId"); + } + if ($.region == null) { + throw new MissingRequiredPropertyException("SearchResource", "region"); + } + if ($.resourceType == null) { + throw new MissingRequiredPropertyException("SearchResource", "resourceType"); + } + if ($.service == null) { + throw new MissingRequiredPropertyException("SearchResource", "service"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceArgs.java new file mode 100644 index 00000000000..3592f6649ce --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceArgs.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.resourceexplorer.inputs; + +import com.pulumi.aws.resourceexplorer.inputs.SearchResourceResourcePropertyArgs; +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 SearchResourceArgs extends com.pulumi.resources.ResourceArgs { + + public static final SearchResourceArgs Empty = new SearchResourceArgs(); + + /** + * Amazon resource name of resource. + * + */ + @Import(name="arn", required=true) + private Output arn; + + /** + * @return Amazon resource name of resource. + * + */ + public Output arn() { + return this.arn; + } + + /** + * The date and time that the information about this resource property was last updated. + * + */ + @Import(name="lastReportedAt", required=true) + private Output lastReportedAt; + + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public Output lastReportedAt() { + return this.lastReportedAt; + } + + /** + * Amazon Web Services account that owns the resource. + * + */ + @Import(name="owningAccountId", required=true) + private Output owningAccountId; + + /** + * @return Amazon Web Services account that owns the resource. + * + */ + public Output owningAccountId() { + return this.owningAccountId; + } + + /** + * Amazon Web Services Region in which the resource was created and exists. + * + */ + @Import(name="region", required=true) + private Output region; + + /** + * @return Amazon Web Services Region in which the resource was created and exists. + * + */ + public Output region() { + return this.region; + } + + /** + * Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + @Import(name="resourceProperties") + private @Nullable Output> resourceProperties; + + /** + * @return Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + public Optional>> resourceProperties() { + return Optional.ofNullable(this.resourceProperties); + } + + /** + * Type of the resource. + * + */ + @Import(name="resourceType", required=true) + private Output resourceType; + + /** + * @return Type of the resource. + * + */ + public Output resourceType() { + return this.resourceType; + } + + /** + * Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + @Import(name="service", required=true) + private Output service; + + /** + * @return Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + public Output service() { + return this.service; + } + + private SearchResourceArgs() {} + + private SearchResourceArgs(SearchResourceArgs $) { + this.arn = $.arn; + this.lastReportedAt = $.lastReportedAt; + this.owningAccountId = $.owningAccountId; + this.region = $.region; + this.resourceProperties = $.resourceProperties; + this.resourceType = $.resourceType; + this.service = $.service; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResourceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResourceArgs $; + + public Builder() { + $ = new SearchResourceArgs(); + } + + public Builder(SearchResourceArgs defaults) { + $ = new SearchResourceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param arn Amazon resource name of resource. + * + * @return builder + * + */ + public Builder arn(Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn Amazon resource name of resource. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(Output lastReportedAt) { + $.lastReportedAt = lastReportedAt; + return this; + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(String lastReportedAt) { + return lastReportedAt(Output.of(lastReportedAt)); + } + + /** + * @param owningAccountId Amazon Web Services account that owns the resource. + * + * @return builder + * + */ + public Builder owningAccountId(Output owningAccountId) { + $.owningAccountId = owningAccountId; + return this; + } + + /** + * @param owningAccountId Amazon Web Services account that owns the resource. + * + * @return builder + * + */ + public Builder owningAccountId(String owningAccountId) { + return owningAccountId(Output.of(owningAccountId)); + } + + /** + * @param region Amazon Web Services Region in which the resource was created and exists. + * + * @return builder + * + */ + public Builder region(Output region) { + $.region = region; + return this; + } + + /** + * @param region Amazon Web Services Region in which the resource was created and exists. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param resourceProperties Structure with additional type-specific details about the resource. See `resource_property` below. + * + * @return builder + * + */ + public Builder resourceProperties(@Nullable Output> resourceProperties) { + $.resourceProperties = resourceProperties; + return this; + } + + /** + * @param resourceProperties Structure with additional type-specific details about the resource. See `resource_property` below. + * + * @return builder + * + */ + public Builder resourceProperties(List resourceProperties) { + return resourceProperties(Output.of(resourceProperties)); + } + + /** + * @param resourceProperties Structure with additional type-specific details about the resource. See `resource_property` below. + * + * @return builder + * + */ + public Builder resourceProperties(SearchResourceResourcePropertyArgs... resourceProperties) { + return resourceProperties(List.of(resourceProperties)); + } + + /** + * @param resourceType Type of the resource. + * + * @return builder + * + */ + public Builder resourceType(Output resourceType) { + $.resourceType = resourceType; + return this; + } + + /** + * @param resourceType Type of the resource. + * + * @return builder + * + */ + public Builder resourceType(String resourceType) { + return resourceType(Output.of(resourceType)); + } + + /** + * @param service Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + * @return builder + * + */ + public Builder service(Output service) { + $.service = service; + return this; + } + + /** + * @param service Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + * @return builder + * + */ + public Builder service(String service) { + return service(Output.of(service)); + } + + public SearchResourceArgs build() { + if ($.arn == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "arn"); + } + if ($.lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "lastReportedAt"); + } + if ($.owningAccountId == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "owningAccountId"); + } + if ($.region == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "region"); + } + if ($.resourceType == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "resourceType"); + } + if ($.service == null) { + throw new MissingRequiredPropertyException("SearchResourceArgs", "service"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCount.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCount.java new file mode 100644 index 00000000000..7a84f618ffa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCount.java @@ -0,0 +1,91 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; + + +public final class SearchResourceCount extends com.pulumi.resources.InvokeArgs { + + public static final SearchResourceCount Empty = new SearchResourceCount(); + + @Import(name="completed", required=true) + private Boolean completed; + + public Boolean completed() { + return this.completed; + } + + /** + * Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + @Import(name="totalResources", required=true) + private Integer totalResources; + + /** + * @return Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + public Integer totalResources() { + return this.totalResources; + } + + private SearchResourceCount() {} + + private SearchResourceCount(SearchResourceCount $) { + this.completed = $.completed; + this.totalResources = $.totalResources; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResourceCount defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResourceCount $; + + public Builder() { + $ = new SearchResourceCount(); + } + + public Builder(SearchResourceCount defaults) { + $ = new SearchResourceCount(Objects.requireNonNull(defaults)); + } + + public Builder completed(Boolean completed) { + $.completed = completed; + return this; + } + + /** + * @param totalResources Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + * @return builder + * + */ + public Builder totalResources(Integer totalResources) { + $.totalResources = totalResources; + return this; + } + + public SearchResourceCount build() { + if ($.completed == null) { + throw new MissingRequiredPropertyException("SearchResourceCount", "completed"); + } + if ($.totalResources == null) { + throw new MissingRequiredPropertyException("SearchResourceCount", "totalResources"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCountArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCountArgs.java new file mode 100644 index 00000000000..e618332d195 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceCountArgs.java @@ -0,0 +1,106 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; + + +public final class SearchResourceCountArgs extends com.pulumi.resources.ResourceArgs { + + public static final SearchResourceCountArgs Empty = new SearchResourceCountArgs(); + + @Import(name="completed", required=true) + private Output completed; + + public Output completed() { + return this.completed; + } + + /** + * Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + @Import(name="totalResources", required=true) + private Output totalResources; + + /** + * @return Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + public Output totalResources() { + return this.totalResources; + } + + private SearchResourceCountArgs() {} + + private SearchResourceCountArgs(SearchResourceCountArgs $) { + this.completed = $.completed; + this.totalResources = $.totalResources; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResourceCountArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResourceCountArgs $; + + public Builder() { + $ = new SearchResourceCountArgs(); + } + + public Builder(SearchResourceCountArgs defaults) { + $ = new SearchResourceCountArgs(Objects.requireNonNull(defaults)); + } + + public Builder completed(Output completed) { + $.completed = completed; + return this; + } + + public Builder completed(Boolean completed) { + return completed(Output.of(completed)); + } + + /** + * @param totalResources Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + * @return builder + * + */ + public Builder totalResources(Output totalResources) { + $.totalResources = totalResources; + return this; + } + + /** + * @param totalResources Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + * @return builder + * + */ + public Builder totalResources(Integer totalResources) { + return totalResources(Output.of(totalResources)); + } + + public SearchResourceCountArgs build() { + if ($.completed == null) { + throw new MissingRequiredPropertyException("SearchResourceCountArgs", "completed"); + } + if ($.totalResources == null) { + throw new MissingRequiredPropertyException("SearchResourceCountArgs", "totalResources"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourceProperty.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourceProperty.java new file mode 100644 index 00000000000..5708854b703 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourceProperty.java @@ -0,0 +1,134 @@ +// *** 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.resourceexplorer.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class SearchResourceResourceProperty extends com.pulumi.resources.InvokeArgs { + + public static final SearchResourceResourceProperty Empty = new SearchResourceResourceProperty(); + + /** + * Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + @Import(name="data", required=true) + private String data; + + /** + * @return Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + public String data() { + return this.data; + } + + /** + * The date and time that the information about this resource property was last updated. + * + */ + @Import(name="lastReportedAt", required=true) + private String lastReportedAt; + + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public String lastReportedAt() { + return this.lastReportedAt; + } + + /** + * Name of this property of the resource. + * + */ + @Import(name="name", required=true) + private String name; + + /** + * @return Name of this property of the resource. + * + */ + public String name() { + return this.name; + } + + private SearchResourceResourceProperty() {} + + private SearchResourceResourceProperty(SearchResourceResourceProperty $) { + this.data = $.data; + this.lastReportedAt = $.lastReportedAt; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResourceResourceProperty defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResourceResourceProperty $; + + public Builder() { + $ = new SearchResourceResourceProperty(); + } + + public Builder(SearchResourceResourceProperty defaults) { + $ = new SearchResourceResourceProperty(Objects.requireNonNull(defaults)); + } + + /** + * @param data Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + * @return builder + * + */ + public Builder data(String data) { + $.data = data; + return this; + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(String lastReportedAt) { + $.lastReportedAt = lastReportedAt; + return this; + } + + /** + * @param name Name of this property of the resource. + * + * @return builder + * + */ + public Builder name(String name) { + $.name = name; + return this; + } + + public SearchResourceResourceProperty build() { + if ($.data == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "data"); + } + if ($.lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "lastReportedAt"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourcePropertyArgs.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourcePropertyArgs.java new file mode 100644 index 00000000000..4503057bbd4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/inputs/SearchResourceResourcePropertyArgs.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.resourceexplorer.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 SearchResourceResourcePropertyArgs extends com.pulumi.resources.ResourceArgs { + + public static final SearchResourceResourcePropertyArgs Empty = new SearchResourceResourcePropertyArgs(); + + /** + * Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + @Import(name="data", required=true) + private Output data; + + /** + * @return Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + public Output data() { + return this.data; + } + + /** + * The date and time that the information about this resource property was last updated. + * + */ + @Import(name="lastReportedAt", required=true) + private Output lastReportedAt; + + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public Output lastReportedAt() { + return this.lastReportedAt; + } + + /** + * Name of this property of the resource. + * + */ + @Import(name="name", required=true) + private Output name; + + /** + * @return Name of this property of the resource. + * + */ + public Output name() { + return this.name; + } + + private SearchResourceResourcePropertyArgs() {} + + private SearchResourceResourcePropertyArgs(SearchResourceResourcePropertyArgs $) { + this.data = $.data; + this.lastReportedAt = $.lastReportedAt; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(SearchResourceResourcePropertyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private SearchResourceResourcePropertyArgs $; + + public Builder() { + $ = new SearchResourceResourcePropertyArgs(); + } + + public Builder(SearchResourceResourcePropertyArgs defaults) { + $ = new SearchResourceResourcePropertyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param data Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + * @return builder + * + */ + public Builder data(Output data) { + $.data = data; + return this; + } + + /** + * @param data Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + * @return builder + * + */ + public Builder data(String data) { + return data(Output.of(data)); + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(Output lastReportedAt) { + $.lastReportedAt = lastReportedAt; + return this; + } + + /** + * @param lastReportedAt The date and time that the information about this resource property was last updated. + * + * @return builder + * + */ + public Builder lastReportedAt(String lastReportedAt) { + return lastReportedAt(Output.of(lastReportedAt)); + } + + /** + * @param name Name of this property of the resource. + * + * @return builder + * + */ + public Builder name(Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of this property of the resource. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public SearchResourceResourcePropertyArgs build() { + if ($.data == null) { + throw new MissingRequiredPropertyException("SearchResourceResourcePropertyArgs", "data"); + } + if ($.lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResourceResourcePropertyArgs", "lastReportedAt"); + } + if ($.name == null) { + throw new MissingRequiredPropertyException("SearchResourceResourcePropertyArgs", "name"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResource.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResource.java new file mode 100644 index 00000000000..7842bb0b987 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResource.java @@ -0,0 +1,200 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.aws.resourceexplorer.outputs; + +import com.pulumi.aws.resourceexplorer.outputs.SearchResourceResourceProperty; +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 SearchResource { + /** + * @return Amazon resource name of resource. + * + */ + private String arn; + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + private String lastReportedAt; + /** + * @return Amazon Web Services account that owns the resource. + * + */ + private String owningAccountId; + /** + * @return Amazon Web Services Region in which the resource was created and exists. + * + */ + private String region; + /** + * @return Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + private @Nullable List resourceProperties; + /** + * @return Type of the resource. + * + */ + private String resourceType; + /** + * @return Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + private String service; + + private SearchResource() {} + /** + * @return Amazon resource name of resource. + * + */ + public String arn() { + return this.arn; + } + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public String lastReportedAt() { + return this.lastReportedAt; + } + /** + * @return Amazon Web Services account that owns the resource. + * + */ + public String owningAccountId() { + return this.owningAccountId; + } + /** + * @return Amazon Web Services Region in which the resource was created and exists. + * + */ + public String region() { + return this.region; + } + /** + * @return Structure with additional type-specific details about the resource. See `resource_property` below. + * + */ + public List resourceProperties() { + return this.resourceProperties == null ? List.of() : this.resourceProperties; + } + /** + * @return Type of the resource. + * + */ + public String resourceType() { + return this.resourceType; + } + /** + * @return Amazon Web Service that owns the resource and is responsible for creating and updating it. + * + */ + public String service() { + return this.service; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SearchResource defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + private String lastReportedAt; + private String owningAccountId; + private String region; + private @Nullable List resourceProperties; + private String resourceType; + private String service; + public Builder() {} + public Builder(SearchResource defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + this.lastReportedAt = defaults.lastReportedAt; + this.owningAccountId = defaults.owningAccountId; + this.region = defaults.region; + this.resourceProperties = defaults.resourceProperties; + this.resourceType = defaults.resourceType; + this.service = defaults.service; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("SearchResource", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter + public Builder lastReportedAt(String lastReportedAt) { + if (lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResource", "lastReportedAt"); + } + this.lastReportedAt = lastReportedAt; + return this; + } + @CustomType.Setter + public Builder owningAccountId(String owningAccountId) { + if (owningAccountId == null) { + throw new MissingRequiredPropertyException("SearchResource", "owningAccountId"); + } + this.owningAccountId = owningAccountId; + return this; + } + @CustomType.Setter + public Builder region(String region) { + if (region == null) { + throw new MissingRequiredPropertyException("SearchResource", "region"); + } + this.region = region; + return this; + } + @CustomType.Setter + public Builder resourceProperties(@Nullable List resourceProperties) { + + this.resourceProperties = resourceProperties; + return this; + } + public Builder resourceProperties(SearchResourceResourceProperty... resourceProperties) { + return resourceProperties(List.of(resourceProperties)); + } + @CustomType.Setter + public Builder resourceType(String resourceType) { + if (resourceType == null) { + throw new MissingRequiredPropertyException("SearchResource", "resourceType"); + } + this.resourceType = resourceType; + return this; + } + @CustomType.Setter + public Builder service(String service) { + if (service == null) { + throw new MissingRequiredPropertyException("SearchResource", "service"); + } + this.service = service; + return this; + } + public SearchResource build() { + final var _resultValue = new SearchResource(); + _resultValue.arn = arn; + _resultValue.lastReportedAt = lastReportedAt; + _resultValue.owningAccountId = owningAccountId; + _resultValue.region = region; + _resultValue.resourceProperties = resourceProperties; + _resultValue.resourceType = resourceType; + _resultValue.service = service; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceCount.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceCount.java new file mode 100644 index 00000000000..963a8a0da82 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceCount.java @@ -0,0 +1,74 @@ +// *** 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.resourceexplorer.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class SearchResourceCount { + private Boolean completed; + /** + * @return Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + private Integer totalResources; + + private SearchResourceCount() {} + public Boolean completed() { + return this.completed; + } + /** + * @return Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + * + */ + public Integer totalResources() { + return this.totalResources; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SearchResourceCount defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean completed; + private Integer totalResources; + public Builder() {} + public Builder(SearchResourceCount defaults) { + Objects.requireNonNull(defaults); + this.completed = defaults.completed; + this.totalResources = defaults.totalResources; + } + + @CustomType.Setter + public Builder completed(Boolean completed) { + if (completed == null) { + throw new MissingRequiredPropertyException("SearchResourceCount", "completed"); + } + this.completed = completed; + return this; + } + @CustomType.Setter + public Builder totalResources(Integer totalResources) { + if (totalResources == null) { + throw new MissingRequiredPropertyException("SearchResourceCount", "totalResources"); + } + this.totalResources = totalResources; + return this; + } + public SearchResourceCount build() { + final var _resultValue = new SearchResourceCount(); + _resultValue.completed = completed; + _resultValue.totalResources = totalResources; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceResourceProperty.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceResourceProperty.java new file mode 100644 index 00000000000..78dcd6cec5d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResourceResourceProperty.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.resourceexplorer.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class SearchResourceResourceProperty { + /** + * @return Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + private String data; + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + private String lastReportedAt; + /** + * @return Name of this property of the resource. + * + */ + private String name; + + private SearchResourceResourceProperty() {} + /** + * @return Details about this property. The content of this field is a JSON object that varies based on the resource type. + * + */ + public String data() { + return this.data; + } + /** + * @return The date and time that the information about this resource property was last updated. + * + */ + public String lastReportedAt() { + return this.lastReportedAt; + } + /** + * @return Name of this property of the resource. + * + */ + public String name() { + return this.name; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SearchResourceResourceProperty defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String data; + private String lastReportedAt; + private String name; + public Builder() {} + public Builder(SearchResourceResourceProperty defaults) { + Objects.requireNonNull(defaults); + this.data = defaults.data; + this.lastReportedAt = defaults.lastReportedAt; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder data(String data) { + if (data == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "data"); + } + this.data = data; + return this; + } + @CustomType.Setter + public Builder lastReportedAt(String lastReportedAt) { + if (lastReportedAt == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "lastReportedAt"); + } + this.lastReportedAt = lastReportedAt; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("SearchResourceResourceProperty", "name"); + } + this.name = name; + return this; + } + public SearchResourceResourceProperty build() { + final var _resultValue = new SearchResourceResourceProperty(); + _resultValue.data = data; + _resultValue.lastReportedAt = lastReportedAt; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResult.java b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResult.java new file mode 100644 index 00000000000..29f12fe6b6d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/resourceexplorer/outputs/SearchResult.java @@ -0,0 +1,139 @@ +// *** 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.resourceexplorer.outputs; + +import com.pulumi.aws.resourceexplorer.outputs.SearchResource; +import com.pulumi.aws.resourceexplorer.outputs.SearchResourceCount; +import com.pulumi.core.annotations.CustomType; +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; + +@CustomType +public final class SearchResult { + /** + * @return Query String. + * + */ + private String id; + private String queryString; + /** + * @return Number of resources that match the query. See `resource_count` below. + * + */ + private @Nullable List resourceCounts; + /** + * @return List of structures that describe the resources that match the query. See `resources` below. + * + */ + private @Nullable List resources; + private @Nullable String viewArn; + + private SearchResult() {} + /** + * @return Query String. + * + */ + public String id() { + return this.id; + } + public String queryString() { + return this.queryString; + } + /** + * @return Number of resources that match the query. See `resource_count` below. + * + */ + public List resourceCounts() { + return this.resourceCounts == null ? List.of() : this.resourceCounts; + } + /** + * @return List of structures that describe the resources that match the query. See `resources` below. + * + */ + public List resources() { + return this.resources == null ? List.of() : this.resources; + } + public Optional viewArn() { + return Optional.ofNullable(this.viewArn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(SearchResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String queryString; + private @Nullable List resourceCounts; + private @Nullable List resources; + private @Nullable String viewArn; + public Builder() {} + public Builder(SearchResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.queryString = defaults.queryString; + this.resourceCounts = defaults.resourceCounts; + this.resources = defaults.resources; + this.viewArn = defaults.viewArn; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("SearchResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder queryString(String queryString) { + if (queryString == null) { + throw new MissingRequiredPropertyException("SearchResult", "queryString"); + } + this.queryString = queryString; + return this; + } + @CustomType.Setter + public Builder resourceCounts(@Nullable List resourceCounts) { + + this.resourceCounts = resourceCounts; + return this; + } + public Builder resourceCounts(SearchResourceCount... resourceCounts) { + return resourceCounts(List.of(resourceCounts)); + } + @CustomType.Setter + public Builder resources(@Nullable List resources) { + + this.resources = resources; + return this; + } + public Builder resources(SearchResource... resources) { + return resources(List.of(resources)); + } + @CustomType.Setter + public Builder viewArn(@Nullable String viewArn) { + + this.viewArn = viewArn; + return this; + } + public SearchResult build() { + final var _resultValue = new SearchResult(); + _resultValue.id = id; + _resultValue.queryString = queryString; + _resultValue.resourceCounts = resourceCounts; + _resultValue.resources = resources; + _resultValue.viewArn = viewArn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersion.java b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersion.java index 5fa6ef02575..771b8d9b5d3 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersion.java +++ b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersion.java @@ -124,14 +124,14 @@ public Output arn() { return this.arn; } /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ @Export(name="secretBinary", refs={String.class}, tree="[0]") private Output secretBinary; /** - * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ public Output> secretBinary() { @@ -152,14 +152,14 @@ public Output secretId() { return this.secretId; } /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ @Export(name="secretString", refs={String.class}, tree="[0]") private Output secretString; /** - * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ public Output> secretString() { diff --git a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersionArgs.java b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersionArgs.java index 0d2cebf5316..8d30f56474d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/SecretVersionArgs.java @@ -18,14 +18,14 @@ public final class SecretVersionArgs extends com.pulumi.resources.ResourceArgs { public static final SecretVersionArgs Empty = new SecretVersionArgs(); /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ @Import(name="secretBinary") private @Nullable Output secretBinary; /** - * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ public Optional> secretBinary() { @@ -48,14 +48,14 @@ public Output secretId() { } /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ @Import(name="secretString") private @Nullable Output secretString; /** - * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ public Optional> secretString() { @@ -109,7 +109,7 @@ public Builder(SecretVersionArgs defaults) { } /** - * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * * @return builder * @@ -120,7 +120,7 @@ public Builder secretBinary(@Nullable Output secretBinary) { } /** - * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * * @return builder * @@ -151,7 +151,7 @@ public Builder secretId(String secretId) { } /** - * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * * @return builder * @@ -162,7 +162,7 @@ public Builder secretString(@Nullable Output secretString) { } /** - * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/inputs/SecretVersionState.java b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/inputs/SecretVersionState.java index f7ab84ecc9e..8e156d806d7 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/inputs/SecretVersionState.java +++ b/sdk/java/src/main/java/com/pulumi/aws/secretsmanager/inputs/SecretVersionState.java @@ -32,14 +32,14 @@ public Optional> arn() { } /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ @Import(name="secretBinary") private @Nullable Output secretBinary; /** - * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @return Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * */ public Optional> secretBinary() { @@ -62,14 +62,14 @@ public Optional> secretId() { } /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ @Import(name="secretString") private @Nullable Output secretString; /** - * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @return Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * */ public Optional> secretString() { @@ -161,7 +161,7 @@ public Builder arn(String arn) { } /** - * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * * @return builder * @@ -172,7 +172,7 @@ public Builder secretBinary(@Nullable Output secretBinary) { } /** - * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + * @param secretBinary Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. * * @return builder * @@ -203,7 +203,7 @@ public Builder secretId(String secretId) { } /** - * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * * @return builder * @@ -214,7 +214,7 @@ public Builder secretString(@Nullable Output secretString) { } /** - * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + * @param secretString Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplication.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplication.java new file mode 100644 index 00000000000..7f929c0bc90 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplication.java @@ -0,0 +1,203 @@ +// *** 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.servicecatalog; + +import com.pulumi.aws.Utilities; +import com.pulumi.aws.servicecatalog.AppregistryApplicationArgs; +import com.pulumi.aws.servicecatalog.inputs.AppregistryApplicationState; +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 Service Catalog AppRegistry Application. + * + * > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.AppregistryApplication; + * import com.pulumi.aws.servicecatalog.AppregistryApplicationArgs; + * 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 AppregistryApplication("example", AppregistryApplicationArgs.builder() + * .name("example-app") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ### Connecting Resources + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.AppregistryApplication; + * import com.pulumi.aws.servicecatalog.AppregistryApplicationArgs; + * import com.pulumi.aws.s3.BucketV2; + * import com.pulumi.aws.s3.BucketV2Args; + * 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 AppregistryApplication("example", AppregistryApplicationArgs.builder() + * .name("example-app") + * .build()); + * + * var bucket = new BucketV2("bucket", BucketV2Args.builder() + * .bucket("example-bucket") + * .tags(Map.of("awsApplication", example.arn())) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: + * + * ```sh + * $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 + * ``` + * + */ +@ResourceType(type="aws:servicecatalog/appregistryApplication:AppregistryApplication") +public class AppregistryApplication extends com.pulumi.resources.CustomResource { + /** + * ARN (Amazon Resource Name) of the application. + * + */ + @Export(name="arn", refs={String.class}, tree="[0]") + private Output arn; + + /** + * @return ARN (Amazon Resource Name) of the application. + * + */ + public Output arn() { + return this.arn; + } + /** + * Description of the application. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return Description of the application. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + public Output name() { + return this.name; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public AppregistryApplication(String name) { + this(name, AppregistryApplicationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public AppregistryApplication(String name, @Nullable AppregistryApplicationArgs 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 AppregistryApplication(String name, @Nullable AppregistryApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:servicecatalog/appregistryApplication:AppregistryApplication", name, args == null ? AppregistryApplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private AppregistryApplication(String name, Output id, @Nullable AppregistryApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("aws:servicecatalog/appregistryApplication:AppregistryApplication", name, state, makeResourceOptions(options, id)); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static AppregistryApplication get(String name, Output id, @Nullable AppregistryApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new AppregistryApplication(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplicationArgs.java new file mode 100644 index 00000000000..2211856e37b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/AppregistryApplicationArgs.java @@ -0,0 +1,128 @@ +// *** 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.servicecatalog; + +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 AppregistryApplicationArgs extends com.pulumi.resources.ResourceArgs { + + public static final AppregistryApplicationArgs Empty = new AppregistryApplicationArgs(); + + /** + * Description of the application. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the application. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private AppregistryApplicationArgs() {} + + private AppregistryApplicationArgs(AppregistryApplicationArgs $) { + this.description = $.description; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AppregistryApplicationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AppregistryApplicationArgs $; + + public Builder() { + $ = new AppregistryApplicationArgs(); + } + + public Builder(AppregistryApplicationArgs defaults) { + $ = new AppregistryApplicationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param name Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public AppregistryApplicationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java index 1a9ece7fe64..d479dde289d 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/ServicecatalogFunctions.java @@ -4,6 +4,8 @@ package com.pulumi.aws.servicecatalog; import com.pulumi.aws.Utilities; +import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; +import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetConstraintArgs; import com.pulumi.aws.servicecatalog.inputs.GetConstraintPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetLaunchPathsArgs; @@ -16,6 +18,7 @@ import com.pulumi.aws.servicecatalog.inputs.GetProductPlainArgs; import com.pulumi.aws.servicecatalog.inputs.GetProvisioningArtifactsArgs; import com.pulumi.aws.servicecatalog.inputs.GetProvisioningArtifactsPlainArgs; +import com.pulumi.aws.servicecatalog.outputs.GetAppregistryApplicationResult; import com.pulumi.aws.servicecatalog.outputs.GetConstraintResult; import com.pulumi.aws.servicecatalog.outputs.GetLaunchPathsResult; import com.pulumi.aws.servicecatalog.outputs.GetPortfolioConstraintsResult; @@ -29,6 +32,174 @@ import java.util.concurrent.CompletableFuture; public final class ServicecatalogFunctions { + /** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions; + * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; + * 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 example = ServicecatalogFunctions.getAppregistryApplication(GetAppregistryApplicationArgs.builder() + * .id("application-1234") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryApplication(GetAppregistryApplicationArgs args) { + return getAppregistryApplication(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions; + * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; + * 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 example = ServicecatalogFunctions.getAppregistryApplication(GetAppregistryApplicationArgs.builder() + * .id("application-1234") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAppregistryApplicationPlain(GetAppregistryApplicationPlainArgs args) { + return getAppregistryApplicationPlain(args, InvokeOptions.Empty); + } + /** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions; + * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; + * 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 example = ServicecatalogFunctions.getAppregistryApplication(GetAppregistryApplicationArgs.builder() + * .id("application-1234") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output getAppregistryApplication(GetAppregistryApplicationArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", TypeShape.of(GetAppregistryApplicationResult.class), args, Utilities.withVersion(options)); + } + /** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.servicecatalog.ServicecatalogFunctions; + * import com.pulumi.aws.servicecatalog.inputs.GetAppregistryApplicationArgs; + * 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 example = ServicecatalogFunctions.getAppregistryApplication(GetAppregistryApplicationArgs.builder() + * .id("application-1234") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getAppregistryApplicationPlain(GetAppregistryApplicationPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", TypeShape.of(GetAppregistryApplicationResult.class), args, Utilities.withVersion(options)); + } /** * Provides information on a Service Catalog Constraint. * diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/AppregistryApplicationState.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/AppregistryApplicationState.java new file mode 100644 index 00000000000..45fbe32f978 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/AppregistryApplicationState.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.servicecatalog.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 AppregistryApplicationState extends com.pulumi.resources.ResourceArgs { + + public static final AppregistryApplicationState Empty = new AppregistryApplicationState(); + + /** + * ARN (Amazon Resource Name) of the application. + * + */ + @Import(name="arn") + private @Nullable Output arn; + + /** + * @return ARN (Amazon Resource Name) of the application. + * + */ + public Optional> arn() { + return Optional.ofNullable(this.arn); + } + + /** + * Description of the application. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the application. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private AppregistryApplicationState() {} + + private AppregistryApplicationState(AppregistryApplicationState $) { + this.arn = $.arn; + this.description = $.description; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AppregistryApplicationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AppregistryApplicationState $; + + public Builder() { + $ = new AppregistryApplicationState(); + } + + public Builder(AppregistryApplicationState defaults) { + $ = new AppregistryApplicationState(Objects.requireNonNull(defaults)); + } + + /** + * @param arn ARN (Amazon Resource Name) of the application. + * + * @return builder + * + */ + public Builder arn(@Nullable Output arn) { + $.arn = arn; + return this; + } + + /** + * @param arn ARN (Amazon Resource Name) of the application. + * + * @return builder + * + */ + public Builder arn(String arn) { + return arn(Output.of(arn)); + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the application. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param name Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public AppregistryApplicationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationArgs.java new file mode 100644 index 00000000000..60c08d2beb4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationArgs.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.servicecatalog.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 GetAppregistryApplicationArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAppregistryApplicationArgs Empty = new GetAppregistryApplicationArgs(); + + /** + * Application identifier. + * + */ + @Import(name="id", required=true) + private Output id; + + /** + * @return Application identifier. + * + */ + public Output id() { + return this.id; + } + + private GetAppregistryApplicationArgs() {} + + private GetAppregistryApplicationArgs(GetAppregistryApplicationArgs $) { + this.id = $.id; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAppregistryApplicationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAppregistryApplicationArgs $; + + public Builder() { + $ = new GetAppregistryApplicationArgs(); + } + + public Builder(GetAppregistryApplicationArgs defaults) { + $ = new GetAppregistryApplicationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id Application identifier. + * + * @return builder + * + */ + public Builder id(Output id) { + $.id = id; + return this; + } + + /** + * @param id Application identifier. + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + public GetAppregistryApplicationArgs build() { + if ($.id == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationArgs", "id"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationPlainArgs.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationPlainArgs.java new file mode 100644 index 00000000000..30a639e8ab3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/inputs/GetAppregistryApplicationPlainArgs.java @@ -0,0 +1,74 @@ +// *** 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.servicecatalog.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetAppregistryApplicationPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetAppregistryApplicationPlainArgs Empty = new GetAppregistryApplicationPlainArgs(); + + /** + * Application identifier. + * + */ + @Import(name="id", required=true) + private String id; + + /** + * @return Application identifier. + * + */ + public String id() { + return this.id; + } + + private GetAppregistryApplicationPlainArgs() {} + + private GetAppregistryApplicationPlainArgs(GetAppregistryApplicationPlainArgs $) { + this.id = $.id; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetAppregistryApplicationPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetAppregistryApplicationPlainArgs $; + + public Builder() { + $ = new GetAppregistryApplicationPlainArgs(); + } + + public Builder(GetAppregistryApplicationPlainArgs defaults) { + $ = new GetAppregistryApplicationPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id Application identifier. + * + * @return builder + * + */ + public Builder id(String id) { + $.id = id; + return this; + } + + public GetAppregistryApplicationPlainArgs build() { + if ($.id == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationPlainArgs", "id"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryApplicationResult.java b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryApplicationResult.java new file mode 100644 index 00000000000..9c854e346e8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/aws/servicecatalog/outputs/GetAppregistryApplicationResult.java @@ -0,0 +1,119 @@ +// *** 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.servicecatalog.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetAppregistryApplicationResult { + /** + * @return ARN (Amazon Resource Name) of the application. + * + */ + private String arn; + /** + * @return Description of the application. + * + */ + private String description; + private String id; + /** + * @return Name of the application. + * + */ + private String name; + + private GetAppregistryApplicationResult() {} + /** + * @return ARN (Amazon Resource Name) of the application. + * + */ + public String arn() { + return this.arn; + } + /** + * @return Description of the application. + * + */ + public String description() { + return this.description; + } + public String id() { + return this.id; + } + /** + * @return Name of the application. + * + */ + public String name() { + return this.name; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetAppregistryApplicationResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String arn; + private String description; + private String id; + private String name; + public Builder() {} + public Builder(GetAppregistryApplicationResult defaults) { + Objects.requireNonNull(defaults); + this.arn = defaults.arn; + this.description = defaults.description; + this.id = defaults.id; + this.name = defaults.name; + } + + @CustomType.Setter + public Builder arn(String arn) { + if (arn == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationResult", "arn"); + } + this.arn = arn; + return this; + } + @CustomType.Setter + public Builder description(String description) { + if (description == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationResult", "description"); + } + this.description = description; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetAppregistryApplicationResult", "name"); + } + this.name = name; + return this; + } + public GetAppregistryApplicationResult build() { + final var _resultValue = new GetAppregistryApplicationResult(); + _resultValue.arn = arn; + _resultValue.description = description; + _resultValue.id = id; + _resultValue.name = name; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/aws/ssoadmin/PermissionSetInlinePolicy.java b/sdk/java/src/main/java/com/pulumi/aws/ssoadmin/PermissionSetInlinePolicy.java index 7d5b8b42c51..f14ba0373d5 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/ssoadmin/PermissionSetInlinePolicy.java +++ b/sdk/java/src/main/java/com/pulumi/aws/ssoadmin/PermissionSetInlinePolicy.java @@ -14,10 +14,7 @@ import javax.annotation.Nullable; /** - * Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource - * - * > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `aws.ssoadmin.PermissionSet` resource. - * Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. + * ## Example Usage * * ## Import * diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/Access.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/Access.java index 78052759a92..a6d703deb35 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/Access.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/Access.java @@ -20,6 +20,8 @@ /** * Provides a AWS Transfer Access resource. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * ### Basic S3 diff --git a/sdk/java/src/main/java/com/pulumi/aws/transfer/User.java b/sdk/java/src/main/java/com/pulumi/aws/transfer/User.java index b79f66bea42..9e65faebd83 100644 --- a/sdk/java/src/main/java/com/pulumi/aws/transfer/User.java +++ b/sdk/java/src/main/java/com/pulumi/aws/transfer/User.java @@ -19,8 +19,6 @@ import javax.annotation.Nullable; /** - * Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` resource. - * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/nodejs/acmpca/certificate.ts b/sdk/nodejs/acmpca/certificate.ts index 4b7c0cd2470..0bbd5b8d487 100644 --- a/sdk/nodejs/acmpca/certificate.ts +++ b/sdk/nodejs/acmpca/certificate.ts @@ -17,6 +17,43 @@ import * as utilities from "../utilities"; * * ## Example Usage * + * ### Basic + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * import * as tls from "@pulumi/tls"; + * + * const exampleCertificateAuthority = new aws.acmpca.CertificateAuthority("example", { + * certificateAuthorityConfiguration: { + * keyAlgorithm: "RSA_4096", + * signingAlgorithm: "SHA512WITHRSA", + * subject: { + * commonName: "example.com", + * }, + * }, + * permanentDeletionTimeInDays: 7, + * }); + * const key = new tls.PrivateKey("key", {algorithm: "RSA"}); + * const csr = new tls.CertRequest("csr", { + * privateKeyPem: key.privateKeyPem, + * subject: { + * commonName: "example", + * }, + * }); + * const example = new aws.acmpca.Certificate("example", { + * certificateAuthorityArn: exampleCertificateAuthority.arn, + * certificateSigningRequest: csr.certRequestPem, + * signingAlgorithm: "SHA256WITHRSA", + * validity: { + * type: "YEARS", + * value: "1", + * }, + * }); + * ``` + * + * * ## Import * * Using `pulumi import`, import ACM PCA Certificates using their ARN. For example: diff --git a/sdk/nodejs/alb/targetGroupAttachment.ts b/sdk/nodejs/alb/targetGroupAttachment.ts index 9abd853ef1a..70e16e56fa5 100644 --- a/sdk/nodejs/alb/targetGroupAttachment.ts +++ b/sdk/nodejs/alb/targetGroupAttachment.ts @@ -67,7 +67,7 @@ import * as utilities from "../utilities"; * } * const exampleTargetGroup = new aws.lb.TargetGroup("example", {}); * const exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = []; - * pulumi.all(example.map((v, k) => [k, v]).reduce((__obj, [, ]) => ({ ...__obj, [v.id]: v }))).apply(rangeBody => { + * pulumi.all(example.map((v, k) => [k, v]).reduce((__obj, [, ]) => ({ ...__obj, [k]: v }))).apply(rangeBody => { * for (const range of Object.entries(rangeBody).map(([k, v]) => ({key: k, value: v}))) { * exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, { * targetGroupArn: exampleTargetGroup.arn, diff --git a/sdk/nodejs/apigateway/methodResponse.ts b/sdk/nodejs/apigateway/methodResponse.ts index 522a34e3d8f..cce0b3b72f6 100644 --- a/sdk/nodejs/apigateway/methodResponse.ts +++ b/sdk/nodejs/apigateway/methodResponse.ts @@ -98,7 +98,7 @@ import {RestApi} from "./index"; * httpMethod: myDemoMethod.httpMethod, * statusCode: "200", * responseModels: { - * "application-json": "MyDemoResponseModel", + * "application/json": "MyDemoResponseModel", * }, * responseParameters: { * "method.response.header.Content-Type": false, diff --git a/sdk/nodejs/cloudfront/function.ts b/sdk/nodejs/cloudfront/function.ts index b77f88b962b..984b449783f 100644 --- a/sdk/nodejs/cloudfront/function.ts +++ b/sdk/nodejs/cloudfront/function.ts @@ -65,6 +65,10 @@ export class Function extends pulumi.CustomResource { * ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. */ public /*out*/ readonly etag!: pulumi.Output; + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + */ + public readonly keyValueStoreAssociations!: pulumi.Output; /** * ETag hash of any `LIVE` stage of the function. */ @@ -105,6 +109,7 @@ export class Function extends pulumi.CustomResource { resourceInputs["code"] = state ? state.code : undefined; resourceInputs["comment"] = state ? state.comment : undefined; resourceInputs["etag"] = state ? state.etag : undefined; + resourceInputs["keyValueStoreAssociations"] = state ? state.keyValueStoreAssociations : undefined; resourceInputs["liveStageEtag"] = state ? state.liveStageEtag : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["publish"] = state ? state.publish : undefined; @@ -120,6 +125,7 @@ export class Function extends pulumi.CustomResource { } resourceInputs["code"] = args ? args.code : undefined; resourceInputs["comment"] = args ? args.comment : undefined; + resourceInputs["keyValueStoreAssociations"] = args ? args.keyValueStoreAssociations : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["publish"] = args ? args.publish : undefined; resourceInputs["runtime"] = args ? args.runtime : undefined; @@ -153,6 +159,10 @@ export interface FunctionState { * ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. */ etag?: pulumi.Input; + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + */ + keyValueStoreAssociations?: pulumi.Input[]>; /** * ETag hash of any `LIVE` stage of the function. */ @@ -189,6 +199,10 @@ export interface FunctionArgs { * Comment. */ comment?: pulumi.Input; + /** + * List of `aws.cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + */ + keyValueStoreAssociations?: pulumi.Input[]>; /** * Unique name for your CloudFront Function. */ diff --git a/sdk/nodejs/cloudfront/getFunction.ts b/sdk/nodejs/cloudfront/getFunction.ts index 2f6ea21107a..e22cec7c473 100644 --- a/sdk/nodejs/cloudfront/getFunction.ts +++ b/sdk/nodejs/cloudfront/getFunction.ts @@ -69,6 +69,10 @@ export interface GetFunctionResult { * The provider-assigned unique ID for this managed resource. */ readonly id: string; + /** + * List of `aws.cloudfront.KeyValueStore` ARNs associated to the function. + */ + readonly keyValueStoreAssociations: string[]; /** * When this resource was last modified. */ diff --git a/sdk/nodejs/cloudfront/index.ts b/sdk/nodejs/cloudfront/index.ts index 395ae19e26f..6d48c42eec6 100644 --- a/sdk/nodejs/cloudfront/index.ts +++ b/sdk/nodejs/cloudfront/index.ts @@ -90,6 +90,11 @@ export type KeyValueStore = import("./keyValueStore").KeyValueStore; export const KeyValueStore: typeof import("./keyValueStore").KeyValueStore = null as any; utilities.lazyLoad(exports, ["KeyValueStore"], () => require("./keyValueStore")); +export { KeyvaluestoreKeyArgs, KeyvaluestoreKeyState } from "./keyvaluestoreKey"; +export type KeyvaluestoreKey = import("./keyvaluestoreKey").KeyvaluestoreKey; +export const KeyvaluestoreKey: typeof import("./keyvaluestoreKey").KeyvaluestoreKey = null as any; +utilities.lazyLoad(exports, ["KeyvaluestoreKey"], () => require("./keyvaluestoreKey")); + export { MonitoringSubscriptionArgs, MonitoringSubscriptionState } from "./monitoringSubscription"; export type MonitoringSubscription = import("./monitoringSubscription").MonitoringSubscription; export const MonitoringSubscription: typeof import("./monitoringSubscription").MonitoringSubscription = null as any; @@ -146,6 +151,8 @@ const _module = { return new KeyGroup(name, undefined, { urn }) case "aws:cloudfront/keyValueStore:KeyValueStore": return new KeyValueStore(name, undefined, { urn }) + case "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey": + return new KeyvaluestoreKey(name, undefined, { urn }) case "aws:cloudfront/monitoringSubscription:MonitoringSubscription": return new MonitoringSubscription(name, undefined, { urn }) case "aws:cloudfront/originAccessControl:OriginAccessControl": @@ -173,6 +180,7 @@ pulumi.runtime.registerResourceModule("aws", "cloudfront/fieldLevelEncryptionPro pulumi.runtime.registerResourceModule("aws", "cloudfront/function", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/keyGroup", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/keyValueStore", _module) +pulumi.runtime.registerResourceModule("aws", "cloudfront/keyvaluestoreKey", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/monitoringSubscription", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/originAccessControl", _module) pulumi.runtime.registerResourceModule("aws", "cloudfront/originAccessIdentity", _module) diff --git a/sdk/nodejs/cloudfront/keyvaluestoreKey.ts b/sdk/nodejs/cloudfront/keyvaluestoreKey.ts new file mode 100644 index 00000000000..25483923759 --- /dev/null +++ b/sdk/nodejs/cloudfront/keyvaluestoreKey.ts @@ -0,0 +1,160 @@ +// *** 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"; + +/** + * Resource for managing an AWS CloudFront KeyValueStore Key. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.cloudfront.KeyValueStore("example", { + * name: "ExampleKeyValueStore", + * comment: "This is an example key value store", + * }); + * const exampleKeyvaluestoreKey = new aws.cloudfront.KeyvaluestoreKey("example", { + * keyValueStoreArn: example.arn, + * key: "Test Key", + * value: "Test Value", + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: + * + * ```sh + * $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey + * ``` + */ +export class KeyvaluestoreKey extends pulumi.CustomResource { + /** + * Get an existing KeyvaluestoreKey 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?: KeyvaluestoreKeyState, opts?: pulumi.CustomResourceOptions): KeyvaluestoreKey { + return new KeyvaluestoreKey(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey'; + + /** + * Returns true if the given object is an instance of KeyvaluestoreKey. 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 KeyvaluestoreKey { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === KeyvaluestoreKey.__pulumiType; + } + + /** + * Key to put. + */ + public readonly key!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the Key Value Store. + */ + public readonly keyValueStoreArn!: pulumi.Output; + /** + * Total size of the Key Value Store in bytes. + */ + public /*out*/ readonly totalSizeInBytes!: pulumi.Output; + /** + * Value to put. + */ + public readonly value!: pulumi.Output; + + /** + * Create a KeyvaluestoreKey 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: KeyvaluestoreKeyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: KeyvaluestoreKeyArgs | KeyvaluestoreKeyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as KeyvaluestoreKeyState | undefined; + resourceInputs["key"] = state ? state.key : undefined; + resourceInputs["keyValueStoreArn"] = state ? state.keyValueStoreArn : undefined; + resourceInputs["totalSizeInBytes"] = state ? state.totalSizeInBytes : undefined; + resourceInputs["value"] = state ? state.value : undefined; + } else { + const args = argsOrState as KeyvaluestoreKeyArgs | undefined; + if ((!args || args.key === undefined) && !opts.urn) { + throw new Error("Missing required property 'key'"); + } + if ((!args || args.keyValueStoreArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'keyValueStoreArn'"); + } + if ((!args || args.value === undefined) && !opts.urn) { + throw new Error("Missing required property 'value'"); + } + resourceInputs["key"] = args ? args.key : undefined; + resourceInputs["keyValueStoreArn"] = args ? args.keyValueStoreArn : undefined; + resourceInputs["value"] = args ? args.value : undefined; + resourceInputs["totalSizeInBytes"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(KeyvaluestoreKey.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering KeyvaluestoreKey resources. + */ +export interface KeyvaluestoreKeyState { + /** + * Key to put. + */ + key?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Key Value Store. + */ + keyValueStoreArn?: pulumi.Input; + /** + * Total size of the Key Value Store in bytes. + */ + totalSizeInBytes?: pulumi.Input; + /** + * Value to put. + */ + value?: pulumi.Input; +} + +/** + * The set of arguments for constructing a KeyvaluestoreKey resource. + */ +export interface KeyvaluestoreKeyArgs { + /** + * Key to put. + */ + key: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Key Value Store. + */ + keyValueStoreArn: pulumi.Input; + /** + * Value to put. + */ + value: pulumi.Input; +} diff --git a/sdk/nodejs/devopsguru/index.ts b/sdk/nodejs/devopsguru/index.ts index b37cb15177e..332ceb64369 100644 --- a/sdk/nodejs/devopsguru/index.ts +++ b/sdk/nodejs/devopsguru/index.ts @@ -10,6 +10,11 @@ export type EventSourcesConfig = import("./eventSourcesConfig").EventSourcesConf export const EventSourcesConfig: typeof import("./eventSourcesConfig").EventSourcesConfig = null as any; utilities.lazyLoad(exports, ["EventSourcesConfig"], () => require("./eventSourcesConfig")); +export { NotificationChannelArgs, NotificationChannelState } from "./notificationChannel"; +export type NotificationChannel = import("./notificationChannel").NotificationChannel; +export const NotificationChannel: typeof import("./notificationChannel").NotificationChannel = null as any; +utilities.lazyLoad(exports, ["NotificationChannel"], () => require("./notificationChannel")); + export { ResourceCollectionArgs, ResourceCollectionState } from "./resourceCollection"; export type ResourceCollection = import("./resourceCollection").ResourceCollection; export const ResourceCollection: typeof import("./resourceCollection").ResourceCollection = null as any; @@ -22,6 +27,8 @@ const _module = { switch (type) { case "aws:devopsguru/eventSourcesConfig:EventSourcesConfig": return new EventSourcesConfig(name, undefined, { urn }) + case "aws:devopsguru/notificationChannel:NotificationChannel": + return new NotificationChannel(name, undefined, { urn }) case "aws:devopsguru/resourceCollection:ResourceCollection": return new ResourceCollection(name, undefined, { urn }) default: @@ -30,4 +37,5 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("aws", "devopsguru/eventSourcesConfig", _module) +pulumi.runtime.registerResourceModule("aws", "devopsguru/notificationChannel", _module) pulumi.runtime.registerResourceModule("aws", "devopsguru/resourceCollection", _module) diff --git a/sdk/nodejs/devopsguru/notificationChannel.ts b/sdk/nodejs/devopsguru/notificationChannel.ts new file mode 100644 index 00000000000..9b2f02e0150 --- /dev/null +++ b/sdk/nodejs/devopsguru/notificationChannel.ts @@ -0,0 +1,149 @@ +// *** 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 DevOps Guru Notification Channel. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.devopsguru.NotificationChannel("example", {sns: { + * topicArn: exampleAwsSnsTopic.arn, + * }}); + * ``` + * + * + * ### Filters + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.devopsguru.NotificationChannel("example", { + * sns: { + * topicArn: exampleAwsSnsTopic.arn, + * }, + * filters: { + * messageTypes: ["NEW_INSIGHT"], + * severities: ["HIGH"], + * }, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: + * + * ```sh + * $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 + * ``` + */ +export class NotificationChannel extends pulumi.CustomResource { + /** + * Get an existing NotificationChannel 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?: NotificationChannelState, opts?: pulumi.CustomResourceOptions): NotificationChannel { + return new NotificationChannel(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:devopsguru/notificationChannel:NotificationChannel'; + + /** + * Returns true if the given object is an instance of NotificationChannel. 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 NotificationChannel { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === NotificationChannel.__pulumiType; + } + + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + */ + public readonly filters!: pulumi.Output; + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + */ + public readonly sns!: pulumi.Output; + + /** + * Create a NotificationChannel 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?: NotificationChannelArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: NotificationChannelArgs | NotificationChannelState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as NotificationChannelState | undefined; + resourceInputs["filters"] = state ? state.filters : undefined; + resourceInputs["sns"] = state ? state.sns : undefined; + } else { + const args = argsOrState as NotificationChannelArgs | undefined; + resourceInputs["filters"] = args ? args.filters : undefined; + resourceInputs["sns"] = args ? args.sns : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(NotificationChannel.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering NotificationChannel resources. + */ +export interface NotificationChannelState { + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + */ + filters?: pulumi.Input; + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + */ + sns?: pulumi.Input; +} + +/** + * The set of arguments for constructing a NotificationChannel resource. + */ +export interface NotificationChannelArgs { + /** + * Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + */ + filters?: pulumi.Input; + /** + * SNS noficiation channel configurations. See the `sns` argument reference below. + * + * The following arguments are optional: + */ + sns?: pulumi.Input; +} diff --git a/sdk/nodejs/dynamodb/index.ts b/sdk/nodejs/dynamodb/index.ts index 9e7f2f59cad..76f0bcb2bc9 100644 --- a/sdk/nodejs/dynamodb/index.ts +++ b/sdk/nodejs/dynamodb/index.ts @@ -31,6 +31,11 @@ export type KinesisStreamingDestination = import("./kinesisStreamingDestination" export const KinesisStreamingDestination: typeof import("./kinesisStreamingDestination").KinesisStreamingDestination = null as any; utilities.lazyLoad(exports, ["KinesisStreamingDestination"], () => require("./kinesisStreamingDestination")); +export { ResourcePolicyArgs, ResourcePolicyState } from "./resourcePolicy"; +export type ResourcePolicy = import("./resourcePolicy").ResourcePolicy; +export const ResourcePolicy: typeof import("./resourcePolicy").ResourcePolicy = null as any; +utilities.lazyLoad(exports, ["ResourcePolicy"], () => require("./resourcePolicy")); + export { TableArgs, TableState } from "./table"; export type Table = import("./table").Table; export const Table: typeof import("./table").Table = null as any; @@ -67,6 +72,8 @@ const _module = { return new GlobalTable(name, undefined, { urn }) case "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination": return new KinesisStreamingDestination(name, undefined, { urn }) + case "aws:dynamodb/resourcePolicy:ResourcePolicy": + return new ResourcePolicy(name, undefined, { urn }) case "aws:dynamodb/table:Table": return new Table(name, undefined, { urn }) case "aws:dynamodb/tableExport:TableExport": @@ -85,6 +92,7 @@ const _module = { pulumi.runtime.registerResourceModule("aws", "dynamodb/contributorInsights", _module) pulumi.runtime.registerResourceModule("aws", "dynamodb/globalTable", _module) pulumi.runtime.registerResourceModule("aws", "dynamodb/kinesisStreamingDestination", _module) +pulumi.runtime.registerResourceModule("aws", "dynamodb/resourcePolicy", _module) pulumi.runtime.registerResourceModule("aws", "dynamodb/table", _module) pulumi.runtime.registerResourceModule("aws", "dynamodb/tableExport", _module) pulumi.runtime.registerResourceModule("aws", "dynamodb/tableItem", _module) diff --git a/sdk/nodejs/dynamodb/resourcePolicy.ts b/sdk/nodejs/dynamodb/resourcePolicy.ts new file mode 100644 index 00000000000..c90f1178a3f --- /dev/null +++ b/sdk/nodejs/dynamodb/resourcePolicy.ts @@ -0,0 +1,167 @@ +// *** 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"; + +/** + * ` + * + * Resource for managing an AWS DynamoDB Resource Policy. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.dynamodb.ResourcePolicy("example", { + * resourceArn: exampleAwsDynamodbTable.arn, + * policy: test.json, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: + * + * ```sh + * $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table + * ``` + */ +export class ResourcePolicy extends pulumi.CustomResource { + /** + * Get an existing ResourcePolicy 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?: ResourcePolicyState, opts?: pulumi.CustomResourceOptions): ResourcePolicy { + return new ResourcePolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:dynamodb/resourcePolicy:ResourcePolicy'; + + /** + * Returns true if the given object is an instance of ResourcePolicy. 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 ResourcePolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourcePolicy.__pulumiType; + } + + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + */ + public readonly confirmRemoveSelfResourceAccess!: pulumi.Output; + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + */ + public readonly policy!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + */ + public readonly resourceArn!: pulumi.Output; + /** + * A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + */ + public /*out*/ readonly revisionId!: pulumi.Output; + + /** + * Create a ResourcePolicy 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: ResourcePolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResourcePolicyArgs | ResourcePolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ResourcePolicyState | undefined; + resourceInputs["confirmRemoveSelfResourceAccess"] = state ? state.confirmRemoveSelfResourceAccess : undefined; + resourceInputs["policy"] = state ? state.policy : undefined; + resourceInputs["resourceArn"] = state ? state.resourceArn : undefined; + resourceInputs["revisionId"] = state ? state.revisionId : undefined; + } else { + const args = argsOrState as ResourcePolicyArgs | undefined; + if ((!args || args.policy === undefined) && !opts.urn) { + throw new Error("Missing required property 'policy'"); + } + if ((!args || args.resourceArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceArn'"); + } + resourceInputs["confirmRemoveSelfResourceAccess"] = args ? args.confirmRemoveSelfResourceAccess : undefined; + resourceInputs["policy"] = args ? args.policy : undefined; + resourceInputs["resourceArn"] = args ? args.resourceArn : undefined; + resourceInputs["revisionId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourcePolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ResourcePolicy resources. + */ +export interface ResourcePolicyState { + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + */ + confirmRemoveSelfResourceAccess?: pulumi.Input; + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + */ + policy?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + */ + resourceArn?: pulumi.Input; + /** + * A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + */ + revisionId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResourcePolicy resource. + */ +export interface ResourcePolicyArgs { + /** + * Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + */ + confirmRemoveSelfResourceAccess?: pulumi.Input; + /** + * n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + * + * The following arguments are optional: + */ + policy: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + */ + resourceArn: pulumi.Input; +} diff --git a/sdk/nodejs/ec2/index.ts b/sdk/nodejs/ec2/index.ts index 61311a70a7d..a31ce61b5a7 100644 --- a/sdk/nodejs/ec2/index.ts +++ b/sdk/nodejs/ec2/index.ts @@ -425,6 +425,11 @@ export type Instance = import("./instance").Instance; export const Instance: typeof import("./instance").Instance = null as any; utilities.lazyLoad(exports, ["Instance"], () => require("./instance")); +export { InstanceMetadataDefaultsArgs, InstanceMetadataDefaultsState } from "./instanceMetadataDefaults"; +export type InstanceMetadataDefaults = import("./instanceMetadataDefaults").InstanceMetadataDefaults; +export const InstanceMetadataDefaults: typeof import("./instanceMetadataDefaults").InstanceMetadataDefaults = null as any; +utilities.lazyLoad(exports, ["InstanceMetadataDefaults"], () => require("./instanceMetadataDefaults")); + export * from "./instancePlatform"; export * from "./instanceType"; export { InternetGatewayArgs, InternetGatewayState } from "./internetGateway"; @@ -837,6 +842,8 @@ const _module = { return new ImageBlockPublicAccess(name, undefined, { urn }) case "aws:ec2/instance:Instance": return new Instance(name, undefined, { urn }) + case "aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults": + return new InstanceMetadataDefaults(name, undefined, { urn }) case "aws:ec2/internetGateway:InternetGateway": return new InternetGateway(name, undefined, { urn }) case "aws:ec2/internetGatewayAttachment:InternetGatewayAttachment": @@ -1006,6 +1013,7 @@ pulumi.runtime.registerResourceModule("aws", "ec2/fleet", _module) pulumi.runtime.registerResourceModule("aws", "ec2/flowLog", _module) pulumi.runtime.registerResourceModule("aws", "ec2/imageBlockPublicAccess", _module) pulumi.runtime.registerResourceModule("aws", "ec2/instance", _module) +pulumi.runtime.registerResourceModule("aws", "ec2/instanceMetadataDefaults", _module) pulumi.runtime.registerResourceModule("aws", "ec2/internetGateway", _module) pulumi.runtime.registerResourceModule("aws", "ec2/internetGatewayAttachment", _module) pulumi.runtime.registerResourceModule("aws", "ec2/keyPair", _module) diff --git a/sdk/nodejs/ec2/instanceMetadataDefaults.ts b/sdk/nodejs/ec2/instanceMetadataDefaults.ts new file mode 100644 index 00000000000..07c85a86264 --- /dev/null +++ b/sdk/nodejs/ec2/instanceMetadataDefaults.ts @@ -0,0 +1,145 @@ +// *** 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"; + +/** + * Manages regional EC2 instance metadata default settings. + * More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const enforce_imdsv2 = new aws.ec2.InstanceMetadataDefaults("enforce-imdsv2", { + * httpTokens: "required", + * httpPutResponseHopLimit: 1, + * }); + * ``` + * + * + * ## Import + * + * You cannot import this resource. + */ +export class InstanceMetadataDefaults extends pulumi.CustomResource { + /** + * Get an existing InstanceMetadataDefaults 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?: InstanceMetadataDefaultsState, opts?: pulumi.CustomResourceOptions): InstanceMetadataDefaults { + return new InstanceMetadataDefaults(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults'; + + /** + * Returns true if the given object is an instance of InstanceMetadataDefaults. 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 InstanceMetadataDefaults { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === InstanceMetadataDefaults.__pulumiType; + } + + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + public readonly httpEndpoint!: pulumi.Output; + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + */ + public readonly httpPutResponseHopLimit!: pulumi.Output; + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + */ + public readonly httpTokens!: pulumi.Output; + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + public readonly instanceMetadataTags!: pulumi.Output; + + /** + * Create a InstanceMetadataDefaults 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?: InstanceMetadataDefaultsArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: InstanceMetadataDefaultsArgs | InstanceMetadataDefaultsState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as InstanceMetadataDefaultsState | undefined; + resourceInputs["httpEndpoint"] = state ? state.httpEndpoint : undefined; + resourceInputs["httpPutResponseHopLimit"] = state ? state.httpPutResponseHopLimit : undefined; + resourceInputs["httpTokens"] = state ? state.httpTokens : undefined; + resourceInputs["instanceMetadataTags"] = state ? state.instanceMetadataTags : undefined; + } else { + const args = argsOrState as InstanceMetadataDefaultsArgs | undefined; + resourceInputs["httpEndpoint"] = args ? args.httpEndpoint : undefined; + resourceInputs["httpPutResponseHopLimit"] = args ? args.httpPutResponseHopLimit : undefined; + resourceInputs["httpTokens"] = args ? args.httpTokens : undefined; + resourceInputs["instanceMetadataTags"] = args ? args.instanceMetadataTags : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(InstanceMetadataDefaults.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering InstanceMetadataDefaults resources. + */ +export interface InstanceMetadataDefaultsState { + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + httpEndpoint?: pulumi.Input; + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + */ + httpPutResponseHopLimit?: pulumi.Input; + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + */ + httpTokens?: pulumi.Input; + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + instanceMetadataTags?: pulumi.Input; +} + +/** + * The set of arguments for constructing a InstanceMetadataDefaults resource. + */ +export interface InstanceMetadataDefaultsArgs { + /** + * Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + httpEndpoint?: pulumi.Input; + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + */ + httpPutResponseHopLimit?: pulumi.Input; + /** + * Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + */ + httpTokens?: pulumi.Input; + /** + * Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + */ + instanceMetadataTags?: pulumi.Input; +} diff --git a/sdk/nodejs/ec2/vpc.ts b/sdk/nodejs/ec2/vpc.ts index fc37986429a..72fc2e18ed3 100644 --- a/sdk/nodejs/ec2/vpc.ts +++ b/sdk/nodejs/ec2/vpc.ts @@ -124,6 +124,9 @@ export class Vpc extends pulumi.CustomResource { * The ID of the security group created by default on VPC creation */ public /*out*/ readonly defaultSecurityGroupId!: pulumi.Output; + /** + * DHCP options id of the desired VPC. + */ public /*out*/ readonly dhcpOptionsId!: pulumi.Output; /** * A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. @@ -283,6 +286,9 @@ export interface VpcState { * The ID of the security group created by default on VPC creation */ defaultSecurityGroupId?: pulumi.Input; + /** + * DHCP options id of the desired VPC. + */ dhcpOptionsId?: pulumi.Input; /** * A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. diff --git a/sdk/nodejs/ec2/vpcIpam.ts b/sdk/nodejs/ec2/vpcIpam.ts index 9b755c4cb56..e151f395582 100644 --- a/sdk/nodejs/ec2/vpcIpam.ts +++ b/sdk/nodejs/ec2/vpcIpam.ts @@ -117,6 +117,10 @@ export class VpcIpam extends pulumi.CustomResource { * @deprecated Please use `tags` instead. */ public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + */ + public readonly tier!: pulumi.Output; /** * Create a VpcIpam resource with the given unique name, arguments, and options. @@ -142,6 +146,7 @@ export class VpcIpam extends pulumi.CustomResource { resourceInputs["scopeCount"] = state ? state.scopeCount : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["tier"] = state ? state.tier : undefined; } else { const args = argsOrState as VpcIpamArgs | undefined; if ((!args || args.operatingRegions === undefined) && !opts.urn) { @@ -151,6 +156,7 @@ export class VpcIpam extends pulumi.CustomResource { resourceInputs["description"] = args ? args.description : undefined; resourceInputs["operatingRegions"] = args ? args.operatingRegions : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["tier"] = args ? args.tier : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["defaultResourceDiscoveryAssociationId"] = undefined /*out*/; resourceInputs["defaultResourceDiscoveryId"] = undefined /*out*/; @@ -215,6 +221,10 @@ export interface VpcIpamState { * @deprecated Please use `tags` instead. */ tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + */ + tier?: pulumi.Input; } /** @@ -237,4 +247,8 @@ export interface VpcIpamArgs { * 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. */ tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + */ + tier?: pulumi.Input; } diff --git a/sdk/nodejs/ec2/vpnConnection.ts b/sdk/nodejs/ec2/vpnConnection.ts index ad79c703d30..a27f52ad8ce 100644 --- a/sdk/nodejs/ec2/vpnConnection.ts +++ b/sdk/nodejs/ec2/vpnConnection.ts @@ -183,7 +183,7 @@ export class VpnConnection extends pulumi.CustomResource { */ public readonly remoteIpv4NetworkCidr!: pulumi.Output; /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. */ public readonly remoteIpv6NetworkCidr!: pulumi.Output; /** @@ -651,7 +651,7 @@ export interface VpnConnectionState { */ remoteIpv4NetworkCidr?: pulumi.Input; /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. */ remoteIpv6NetworkCidr?: pulumi.Input; /** @@ -931,7 +931,7 @@ export interface VpnConnectionArgs { */ remoteIpv4NetworkCidr?: pulumi.Input; /** - * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + * The IPv6 CIDR on the AWS side of the VPN connection. */ remoteIpv6NetworkCidr?: pulumi.Input; /** diff --git a/sdk/nodejs/glacier/vaultLock.ts b/sdk/nodejs/glacier/vaultLock.ts index cb595bf10b5..5e6cb58600d 100644 --- a/sdk/nodejs/glacier/vaultLock.ts +++ b/sdk/nodejs/glacier/vaultLock.ts @@ -5,12 +5,6 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. - * - * > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `completeLock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `completeLock` argument to `true`. When changing `completeLock` to `true`, it is expected the resource will show as recreating. - * - * !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignoreDeletionError` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. - * * ## Example Usage * * ### Testing Glacier Vault Lock Policy diff --git a/sdk/nodejs/iam/groupPolicy.ts b/sdk/nodejs/iam/groupPolicy.ts index fbec8486350..599e6aa1ca8 100644 --- a/sdk/nodejs/iam/groupPolicy.ts +++ b/sdk/nodejs/iam/groupPolicy.ts @@ -9,6 +9,8 @@ import {PolicyDocument} from "./index"; /** * Provides an IAM policy attached to a group. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * diff --git a/sdk/nodejs/iam/instanceProfile.ts b/sdk/nodejs/iam/instanceProfile.ts index daa26330789..851a8f45d9c 100644 --- a/sdk/nodejs/iam/instanceProfile.ts +++ b/sdk/nodejs/iam/instanceProfile.ts @@ -9,6 +9,8 @@ import {Role} from "./index"; /** * Provides an IAM instance profile. * + * > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. + * * ## Example Usage * * @@ -83,7 +85,7 @@ export class InstanceProfile extends pulumi.CustomResource { */ public /*out*/ readonly createDate!: pulumi.Output; /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. */ public readonly name!: pulumi.Output; /** @@ -165,7 +167,7 @@ export interface InstanceProfileState { */ createDate?: pulumi.Input; /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. */ name?: pulumi.Input; /** @@ -201,7 +203,7 @@ export interface InstanceProfileState { */ export interface InstanceProfileArgs { /** - * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + * Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/iam/policy.ts b/sdk/nodejs/iam/policy.ts index 1be5f4b7148..b6565a86d4e 100644 --- a/sdk/nodejs/iam/policy.ts +++ b/sdk/nodejs/iam/policy.ts @@ -9,6 +9,8 @@ import {PolicyDocument} from "./index"; /** * Provides an IAM policy. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * @@ -69,7 +71,7 @@ export class Policy extends pulumi.CustomResource { } /** - * The ARN assigned by AWS to this policy. + * ARN assigned by AWS to this policy. */ public /*out*/ readonly arn!: pulumi.Output; /** @@ -77,7 +79,7 @@ export class Policy extends pulumi.CustomResource { */ public readonly description!: pulumi.Output; /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. */ public readonly name!: pulumi.Output; /** @@ -85,16 +87,15 @@ export class Policy extends pulumi.CustomResource { */ public readonly namePrefix!: pulumi.Output; /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. */ public readonly path!: pulumi.Output; /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide */ public readonly policy!: pulumi.Output; /** - * The policy's ID. + * Policy's ID. */ public /*out*/ readonly policyId!: pulumi.Output; /** @@ -155,7 +156,7 @@ export class Policy extends pulumi.CustomResource { */ export interface PolicyState { /** - * The ARN assigned by AWS to this policy. + * ARN assigned by AWS to this policy. */ arn?: pulumi.Input; /** @@ -163,7 +164,7 @@ export interface PolicyState { */ description?: pulumi.Input; /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. */ name?: pulumi.Input; /** @@ -171,16 +172,15 @@ export interface PolicyState { */ namePrefix?: pulumi.Input; /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. */ path?: pulumi.Input; /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide */ policy?: pulumi.Input; /** - * The policy's ID. + * Policy's ID. */ policyId?: pulumi.Input; /** @@ -204,7 +204,7 @@ export interface PolicyArgs { */ description?: pulumi.Input; /** - * The name of the policy. If omitted, the provider will assign a random, unique name. + * Name of the policy. If omitted, the provider will assign a random, unique name. */ name?: pulumi.Input; /** @@ -212,12 +212,11 @@ export interface PolicyArgs { */ namePrefix?: pulumi.Input; /** - * Path in which to create the policy. - * See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + * Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. */ path?: pulumi.Input; /** - * The policy document. This is a JSON formatted string. + * Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide */ policy: pulumi.Input; /** diff --git a/sdk/nodejs/iam/role.ts b/sdk/nodejs/iam/role.ts index a254d455232..e5719e82d42 100644 --- a/sdk/nodejs/iam/role.ts +++ b/sdk/nodejs/iam/role.ts @@ -16,6 +16,8 @@ import {PolicyDocument} from "./index"; * * > **NOTE:** If you use this resource's `managedPolicyArns` argument or `inlinePolicy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * ### Basic Example diff --git a/sdk/nodejs/iam/rolePolicy.ts b/sdk/nodejs/iam/rolePolicy.ts index e9d943d94b0..6ebc3a68885 100644 --- a/sdk/nodejs/iam/rolePolicy.ts +++ b/sdk/nodejs/iam/rolePolicy.ts @@ -11,6 +11,8 @@ import {PolicyDocument, Role} from "./index"; * * > **NOTE:** For a given role, this resource is incompatible with using the `aws.iam.Role` resource `inlinePolicy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * diff --git a/sdk/nodejs/iam/userPolicy.ts b/sdk/nodejs/iam/userPolicy.ts index 5411431aa54..5b36d168e83 100644 --- a/sdk/nodejs/iam/userPolicy.ts +++ b/sdk/nodejs/iam/userPolicy.ts @@ -9,6 +9,8 @@ import {PolicyDocument} from "./index"; /** * Provides an IAM policy attached to a user. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 54a5dbde7b8..6fff3e12492 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -194,6 +194,7 @@ import * as lex from "./lex"; import * as licensemanager from "./licensemanager"; import * as lightsail from "./lightsail"; import * as location from "./location"; +import * as m2 from "./m2"; import * as macie from "./macie"; import * as macie2 from "./macie2"; import * as mediaconvert from "./mediaconvert"; @@ -400,6 +401,7 @@ export { licensemanager, lightsail, location, + m2, macie, macie2, mediaconvert, diff --git a/sdk/nodejs/kinesisanalyticsv2/application.ts b/sdk/nodejs/kinesisanalyticsv2/application.ts index d44b5667563..90c65f9a7ac 100644 --- a/sdk/nodejs/kinesisanalyticsv2/application.ts +++ b/sdk/nodejs/kinesisanalyticsv2/application.ts @@ -297,7 +297,7 @@ export class Application extends pulumi.CustomResource { */ public readonly name!: pulumi.Output; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. */ public readonly runtimeEnvironment!: pulumi.Output; /** @@ -421,7 +421,7 @@ export interface ApplicationState { */ name?: pulumi.Input; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. */ runtimeEnvironment?: pulumi.Input; /** @@ -477,7 +477,7 @@ export interface ApplicationArgs { */ name?: pulumi.Input; /** - * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + * The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. */ runtimeEnvironment: pulumi.Input; /** diff --git a/sdk/nodejs/lakeformation/index.ts b/sdk/nodejs/lakeformation/index.ts index baa45459b0d..00c1644d669 100644 --- a/sdk/nodejs/lakeformation/index.ts +++ b/sdk/nodejs/lakeformation/index.ts @@ -45,6 +45,11 @@ export type Resource = import("./resource").Resource; export const Resource: typeof import("./resource").Resource = null as any; utilities.lazyLoad(exports, ["Resource"], () => require("./resource")); +export { ResourceLfTagArgs, ResourceLfTagState } from "./resourceLfTag"; +export type ResourceLfTag = import("./resourceLfTag").ResourceLfTag; +export const ResourceLfTag: typeof import("./resourceLfTag").ResourceLfTag = null as any; +utilities.lazyLoad(exports, ["ResourceLfTag"], () => require("./resourceLfTag")); + export { ResourceLfTagsArgs, ResourceLfTagsState } from "./resourceLfTags"; export type ResourceLfTags = import("./resourceLfTags").ResourceLfTags; export const ResourceLfTags: typeof import("./resourceLfTags").ResourceLfTags = null as any; @@ -65,6 +70,8 @@ const _module = { return new Permissions(name, undefined, { urn }) case "aws:lakeformation/resource:Resource": return new Resource(name, undefined, { urn }) + case "aws:lakeformation/resourceLfTag:ResourceLfTag": + return new ResourceLfTag(name, undefined, { urn }) case "aws:lakeformation/resourceLfTags:ResourceLfTags": return new ResourceLfTags(name, undefined, { urn }) default: @@ -77,4 +84,5 @@ pulumi.runtime.registerResourceModule("aws", "lakeformation/dataLakeSettings", _ pulumi.runtime.registerResourceModule("aws", "lakeformation/lfTag", _module) pulumi.runtime.registerResourceModule("aws", "lakeformation/permissions", _module) pulumi.runtime.registerResourceModule("aws", "lakeformation/resource", _module) +pulumi.runtime.registerResourceModule("aws", "lakeformation/resourceLfTag", _module) pulumi.runtime.registerResourceModule("aws", "lakeformation/resourceLfTags", _module) diff --git a/sdk/nodejs/lakeformation/resourceLfTag.ts b/sdk/nodejs/lakeformation/resourceLfTag.ts new file mode 100644 index 00000000000..f8b85db69c4 --- /dev/null +++ b/sdk/nodejs/lakeformation/resourceLfTag.ts @@ -0,0 +1,185 @@ +// *** 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 Lake Formation Resource LF Tag. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.lakeformation.ResourceLfTag("example", { + * database: { + * name: exampleAwsGlueCatalogDatabase.name, + * }, + * lfTag: { + * key: exampleAwsLakeformationLfTag.key, + * value: "stowe", + * }, + * }); + * ``` + * + * + * ## Import + * + * You cannot import this resource. + */ +export class ResourceLfTag extends pulumi.CustomResource { + /** + * Get an existing ResourceLfTag 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?: ResourceLfTagState, opts?: pulumi.CustomResourceOptions): ResourceLfTag { + return new ResourceLfTag(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:lakeformation/resourceLfTag:ResourceLfTag'; + + /** + * Returns true if the given object is an instance of ResourceLfTag. 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 ResourceLfTag { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResourceLfTag.__pulumiType; + } + + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + */ + public readonly catalogId!: pulumi.Output; + /** + * Configuration block for a database resource. See Database for more details. + */ + public readonly database!: pulumi.Output; + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + */ + public readonly lfTag!: pulumi.Output; + /** + * Configuration block for a table resource. See Table for more details. + */ + public readonly table!: pulumi.Output; + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + */ + public readonly tableWithColumns!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a ResourceLfTag 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?: ResourceLfTagArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResourceLfTagArgs | ResourceLfTagState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ResourceLfTagState | undefined; + resourceInputs["catalogId"] = state ? state.catalogId : undefined; + resourceInputs["database"] = state ? state.database : undefined; + resourceInputs["lfTag"] = state ? state.lfTag : undefined; + resourceInputs["table"] = state ? state.table : undefined; + resourceInputs["tableWithColumns"] = state ? state.tableWithColumns : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as ResourceLfTagArgs | undefined; + resourceInputs["catalogId"] = args ? args.catalogId : undefined; + resourceInputs["database"] = args ? args.database : undefined; + resourceInputs["lfTag"] = args ? args.lfTag : undefined; + resourceInputs["table"] = args ? args.table : undefined; + resourceInputs["tableWithColumns"] = args ? args.tableWithColumns : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResourceLfTag.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ResourceLfTag resources. + */ +export interface ResourceLfTagState { + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + */ + catalogId?: pulumi.Input; + /** + * Configuration block for a database resource. See Database for more details. + */ + database?: pulumi.Input; + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + */ + lfTag?: pulumi.Input; + /** + * Configuration block for a table resource. See Table for more details. + */ + table?: pulumi.Input; + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + */ + tableWithColumns?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResourceLfTag resource. + */ +export interface ResourceLfTagArgs { + /** + * Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + */ + catalogId?: pulumi.Input; + /** + * Configuration block for a database resource. See Database for more details. + */ + database?: pulumi.Input; + /** + * Set of LF-tags to attach to the resource. See LF Tag for more details. + * + * Exactly one of the following is required: + */ + lfTag?: pulumi.Input; + /** + * Configuration block for a table resource. See Table for more details. + */ + table?: pulumi.Input; + /** + * Configuration block for a table with columns resource. See Table With Columns for more details. + * + * The following arguments are optional: + */ + tableWithColumns?: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/lb/targetGroupAttachment.ts b/sdk/nodejs/lb/targetGroupAttachment.ts index d77f375c34c..21d1f90e8e6 100644 --- a/sdk/nodejs/lb/targetGroupAttachment.ts +++ b/sdk/nodejs/lb/targetGroupAttachment.ts @@ -67,7 +67,7 @@ import * as utilities from "../utilities"; * } * const exampleTargetGroup = new aws.lb.TargetGroup("example", {}); * const exampleTargetGroupAttachment: aws.lb.TargetGroupAttachment[] = []; - * pulumi.all(example.map((v, k) => [k, v]).reduce((__obj, [, ]) => ({ ...__obj, [v.id]: v }))).apply(rangeBody => { + * pulumi.all(example.map((v, k) => [k, v]).reduce((__obj, [, ]) => ({ ...__obj, [k]: v }))).apply(rangeBody => { * for (const range of Object.entries(rangeBody).map(([k, v]) => ({key: k, value: v}))) { * exampleTargetGroupAttachment.push(new aws.lb.TargetGroupAttachment(`example-${range.key}`, { * targetGroupArn: exampleTargetGroup.arn, diff --git a/sdk/nodejs/m2/application.ts b/sdk/nodejs/m2/application.ts new file mode 100644 index 00000000000..f8e0d9e02c0 --- /dev/null +++ b/sdk/nodejs/m2/application.ts @@ -0,0 +1,281 @@ +// *** 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 Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.m2.Application("example", { + * name: "Example", + * engineType: "bluage", + * definition: { + * content: `{ + * "definition": { + * "listeners": [ + * { + * "port": 8196, + * "type": "http" + * } + * ], + * "ba-application": { + * "app-location": "${s3_source}/PlanetsDemo-v1.zip" + * } + * }, + * "source-locations": [ + * { + * "source-id": "s3-source", + * "source-type": "s3", + * "properties": { + * "s3-bucket": "example-bucket", + * "s3-key-prefix": "v1" + * } + * } + * ], + * "template-version": "2.0" + * } + * + * `, + * }, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: + * + * ```sh + * $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 + * ``` + */ +export class Application extends pulumi.CustomResource { + /** + * Get an existing Application 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?: ApplicationState, opts?: pulumi.CustomResourceOptions): Application { + return new Application(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:m2/application:Application'; + + /** + * Returns true if the given object is an instance of Application. 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 Application { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Application.__pulumiType; + } + + /** + * Id of the Application. + */ + public /*out*/ readonly applicationId!: pulumi.Output; + /** + * ARN of the Application. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Current version of the application deployed. + */ + public /*out*/ readonly currentVersion!: pulumi.Output; + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + */ + public readonly definition!: pulumi.Output; + /** + * Description of the application. + */ + public readonly description!: pulumi.Output; + /** + * Engine type must be `microfocus | bluage`. + */ + public readonly engineType!: pulumi.Output; + /** + * KMS Key to use for the Application. + */ + public readonly kmsKeyId!: pulumi.Output; + /** + * Unique identifier of the application. + * + * The following arguments are optional: + */ + public readonly name!: pulumi.Output; + /** + * ARN of role for application to use to access AWS resources. + */ + public readonly roleArn!: pulumi.Output; + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + public /*out*/ readonly tagsAll!: pulumi.Output<{[key: string]: string}>; + public readonly timeouts!: pulumi.Output; + + /** + * Create a Application 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: ApplicationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ApplicationArgs | ApplicationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ApplicationState | undefined; + resourceInputs["applicationId"] = state ? state.applicationId : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["currentVersion"] = state ? state.currentVersion : undefined; + resourceInputs["definition"] = state ? state.definition : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["engineType"] = state ? state.engineType : undefined; + resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["roleArn"] = state ? state.roleArn : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as ApplicationArgs | undefined; + if ((!args || args.engineType === undefined) && !opts.urn) { + throw new Error("Missing required property 'engineType'"); + } + resourceInputs["definition"] = args ? args.definition : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["engineType"] = args ? args.engineType : undefined; + resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["applicationId"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["currentVersion"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Application.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Application resources. + */ +export interface ApplicationState { + /** + * Id of the Application. + */ + applicationId?: pulumi.Input; + /** + * ARN of the Application. + */ + arn?: pulumi.Input; + /** + * Current version of the application deployed. + */ + currentVersion?: pulumi.Input; + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + */ + definition?: pulumi.Input; + /** + * Description of the application. + */ + description?: pulumi.Input; + /** + * Engine type must be `microfocus | bluage`. + */ + engineType?: pulumi.Input; + /** + * KMS Key to use for the Application. + */ + kmsKeyId?: pulumi.Input; + /** + * Unique identifier of the application. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * ARN of role for application to use to access AWS resources. + */ + roleArn?: pulumi.Input; + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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}>; + /** + * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + * + * @deprecated Please use `tags` instead. + */ + tagsAll?: pulumi.Input<{[key: string]: pulumi.Input}>; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Application resource. + */ +export interface ApplicationArgs { + /** + * The application definition for this application. You can specify either inline JSON or an S3 bucket location. + */ + definition?: pulumi.Input; + /** + * Description of the application. + */ + description?: pulumi.Input; + /** + * Engine type must be `microfocus | bluage`. + */ + engineType: pulumi.Input; + /** + * KMS Key to use for the Application. + */ + kmsKeyId?: pulumi.Input; + /** + * Unique identifier of the application. + * + * The following arguments are optional: + */ + name?: pulumi.Input; + /** + * ARN of role for application to use to access AWS resources. + */ + roleArn?: pulumi.Input; + /** + * A map of tags assigned to the WorkSpaces Connection Alias. 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; +} diff --git a/sdk/nodejs/m2/deployment.ts b/sdk/nodejs/m2/deployment.ts new file mode 100644 index 00000000000..ecf0286426f --- /dev/null +++ b/sdk/nodejs/m2/deployment.ts @@ -0,0 +1,181 @@ +// *** 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 Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.m2.Deployment("test", { + * environmentId: "01234567890abcdef012345678", + * applicationId: "34567890abcdef012345678012", + * applicationVersion: 1, + * start: true, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: + * + * ```sh + * $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID + * ``` + */ +export class Deployment extends pulumi.CustomResource { + /** + * Get an existing Deployment 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?: DeploymentState, opts?: pulumi.CustomResourceOptions): Deployment { + return new Deployment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:m2/deployment:Deployment'; + + /** + * Returns true if the given object is an instance of Deployment. 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 Deployment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Deployment.__pulumiType; + } + + /** + * Application to deploy. + */ + public readonly applicationId!: pulumi.Output; + /** + * Version to application to deploy + */ + public readonly applicationVersion!: pulumi.Output; + public /*out*/ readonly deploymentId!: pulumi.Output; + /** + * Environment to deploy application to. + */ + public readonly environmentId!: pulumi.Output; + public readonly forceStop!: pulumi.Output; + /** + * Start the application once deployed. + */ + public readonly start!: pulumi.Output; + public readonly timeouts!: pulumi.Output; + + /** + * Create a Deployment 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: DeploymentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DeploymentArgs | DeploymentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DeploymentState | undefined; + resourceInputs["applicationId"] = state ? state.applicationId : undefined; + resourceInputs["applicationVersion"] = state ? state.applicationVersion : undefined; + resourceInputs["deploymentId"] = state ? state.deploymentId : undefined; + resourceInputs["environmentId"] = state ? state.environmentId : undefined; + resourceInputs["forceStop"] = state ? state.forceStop : undefined; + resourceInputs["start"] = state ? state.start : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as DeploymentArgs | undefined; + if ((!args || args.applicationId === undefined) && !opts.urn) { + throw new Error("Missing required property 'applicationId'"); + } + if ((!args || args.applicationVersion === undefined) && !opts.urn) { + throw new Error("Missing required property 'applicationVersion'"); + } + if ((!args || args.environmentId === undefined) && !opts.urn) { + throw new Error("Missing required property 'environmentId'"); + } + if ((!args || args.start === undefined) && !opts.urn) { + throw new Error("Missing required property 'start'"); + } + resourceInputs["applicationId"] = args ? args.applicationId : undefined; + resourceInputs["applicationVersion"] = args ? args.applicationVersion : undefined; + resourceInputs["environmentId"] = args ? args.environmentId : undefined; + resourceInputs["forceStop"] = args ? args.forceStop : undefined; + resourceInputs["start"] = args ? args.start : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["deploymentId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Deployment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Deployment resources. + */ +export interface DeploymentState { + /** + * Application to deploy. + */ + applicationId?: pulumi.Input; + /** + * Version to application to deploy + */ + applicationVersion?: pulumi.Input; + deploymentId?: pulumi.Input; + /** + * Environment to deploy application to. + */ + environmentId?: pulumi.Input; + forceStop?: pulumi.Input; + /** + * Start the application once deployed. + */ + start?: pulumi.Input; + timeouts?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Deployment resource. + */ +export interface DeploymentArgs { + /** + * Application to deploy. + */ + applicationId: pulumi.Input; + /** + * Version to application to deploy + */ + applicationVersion: pulumi.Input; + /** + * Environment to deploy application to. + */ + environmentId: pulumi.Input; + forceStop?: pulumi.Input; + /** + * Start the application once deployed. + */ + start: pulumi.Input; + timeouts?: pulumi.Input; +} diff --git a/sdk/nodejs/m2/environment.ts b/sdk/nodejs/m2/environment.ts new file mode 100644 index 00000000000..e8b913580f7 --- /dev/null +++ b/sdk/nodejs/m2/environment.ts @@ -0,0 +1,314 @@ +// *** 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 Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). + * + * ## Example Usage + * + * ## Import + * + * Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: + * + * ```sh + * $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 + * ``` + */ +export class Environment extends pulumi.CustomResource { + /** + * Get an existing Environment 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?: EnvironmentState, opts?: pulumi.CustomResourceOptions): Environment { + return new Environment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:m2/environment:Environment'; + + /** + * Returns true if the given object is an instance of Environment. 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 Environment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Environment.__pulumiType; + } + + public readonly applyChangesDuringMaintenanceWindow!: pulumi.Output; + /** + * ARN of the Environment. + */ + public /*out*/ readonly arn!: pulumi.Output; + public readonly description!: pulumi.Output; + /** + * Engine type must be `microfocus` or `bluage`. + */ + public readonly engineType!: pulumi.Output; + /** + * The specific version of the engine for the Environment. + */ + public readonly engineVersion!: pulumi.Output; + /** + * The id of the Environment. + */ + public /*out*/ readonly environmentId!: pulumi.Output; + /** + * Force update the environment even if applications are running. + */ + public readonly forceUpdate!: pulumi.Output; + public readonly highAvailabilityConfig!: pulumi.Output; + /** + * M2 Instance Type. + * + * The following arguments are optional: + */ + public readonly instanceType!: pulumi.Output; + /** + * ARN of the KMS key to use for the Environment. + */ + public readonly kmsKeyId!: pulumi.Output; + /** + * ARN of the load balancer created by the Environment. + */ + public /*out*/ readonly loadBalancerArn!: pulumi.Output; + /** + * Name of the runtime environment. Must be unique within the account. + */ + public readonly name!: pulumi.Output; + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + */ + public readonly preferredMaintenanceWindow!: pulumi.Output; + /** + * Allow applications deployed to this environment to be publicly accessible. + */ + public readonly publiclyAccessible!: pulumi.Output; + /** + * List of security group ids. + */ + public readonly securityGroupIds!: pulumi.Output; + public readonly storageConfiguration!: pulumi.Output; + /** + * List of subnet ids to deploy environment to. + */ + public readonly subnetIds!: pulumi.Output; + /** + * Key-value tags for the place index. 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; + + /** + * Create a Environment 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: EnvironmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EnvironmentArgs | EnvironmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EnvironmentState | undefined; + resourceInputs["applyChangesDuringMaintenanceWindow"] = state ? state.applyChangesDuringMaintenanceWindow : undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["engineType"] = state ? state.engineType : undefined; + resourceInputs["engineVersion"] = state ? state.engineVersion : undefined; + resourceInputs["environmentId"] = state ? state.environmentId : undefined; + resourceInputs["forceUpdate"] = state ? state.forceUpdate : undefined; + resourceInputs["highAvailabilityConfig"] = state ? state.highAvailabilityConfig : undefined; + resourceInputs["instanceType"] = state ? state.instanceType : undefined; + resourceInputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; + resourceInputs["loadBalancerArn"] = state ? state.loadBalancerArn : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["preferredMaintenanceWindow"] = state ? state.preferredMaintenanceWindow : undefined; + resourceInputs["publiclyAccessible"] = state ? state.publiclyAccessible : undefined; + resourceInputs["securityGroupIds"] = state ? state.securityGroupIds : undefined; + resourceInputs["storageConfiguration"] = state ? state.storageConfiguration : undefined; + resourceInputs["subnetIds"] = state ? state.subnetIds : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["tagsAll"] = state ? state.tagsAll : undefined; + resourceInputs["timeouts"] = state ? state.timeouts : undefined; + } else { + const args = argsOrState as EnvironmentArgs | undefined; + if ((!args || args.engineType === undefined) && !opts.urn) { + throw new Error("Missing required property 'engineType'"); + } + if ((!args || args.instanceType === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceType'"); + } + resourceInputs["applyChangesDuringMaintenanceWindow"] = args ? args.applyChangesDuringMaintenanceWindow : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["engineType"] = args ? args.engineType : undefined; + resourceInputs["engineVersion"] = args ? args.engineVersion : undefined; + resourceInputs["forceUpdate"] = args ? args.forceUpdate : undefined; + resourceInputs["highAvailabilityConfig"] = args ? args.highAvailabilityConfig : undefined; + resourceInputs["instanceType"] = args ? args.instanceType : undefined; + resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["preferredMaintenanceWindow"] = args ? args.preferredMaintenanceWindow : undefined; + resourceInputs["publiclyAccessible"] = args ? args.publiclyAccessible : undefined; + resourceInputs["securityGroupIds"] = args ? args.securityGroupIds : undefined; + resourceInputs["storageConfiguration"] = args ? args.storageConfiguration : undefined; + resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["timeouts"] = args ? args.timeouts : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["environmentId"] = undefined /*out*/; + resourceInputs["loadBalancerArn"] = undefined /*out*/; + resourceInputs["tagsAll"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Environment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Environment resources. + */ +export interface EnvironmentState { + applyChangesDuringMaintenanceWindow?: pulumi.Input; + /** + * ARN of the Environment. + */ + arn?: pulumi.Input; + description?: pulumi.Input; + /** + * Engine type must be `microfocus` or `bluage`. + */ + engineType?: pulumi.Input; + /** + * The specific version of the engine for the Environment. + */ + engineVersion?: pulumi.Input; + /** + * The id of the Environment. + */ + environmentId?: pulumi.Input; + /** + * Force update the environment even if applications are running. + */ + forceUpdate?: pulumi.Input; + highAvailabilityConfig?: pulumi.Input; + /** + * M2 Instance Type. + * + * The following arguments are optional: + */ + instanceType?: pulumi.Input; + /** + * ARN of the KMS key to use for the Environment. + */ + kmsKeyId?: pulumi.Input; + /** + * ARN of the load balancer created by the Environment. + */ + loadBalancerArn?: pulumi.Input; + /** + * Name of the runtime environment. Must be unique within the account. + */ + name?: pulumi.Input; + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + */ + preferredMaintenanceWindow?: pulumi.Input; + /** + * Allow applications deployed to this environment to be publicly accessible. + */ + publiclyAccessible?: pulumi.Input; + /** + * List of security group ids. + */ + securityGroupIds?: pulumi.Input[]>; + storageConfiguration?: pulumi.Input; + /** + * List of subnet ids to deploy environment to. + */ + subnetIds?: pulumi.Input[]>; + /** + * Key-value tags for the place index. 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; +} + +/** + * The set of arguments for constructing a Environment resource. + */ +export interface EnvironmentArgs { + applyChangesDuringMaintenanceWindow?: pulumi.Input; + description?: pulumi.Input; + /** + * Engine type must be `microfocus` or `bluage`. + */ + engineType: pulumi.Input; + /** + * The specific version of the engine for the Environment. + */ + engineVersion?: pulumi.Input; + /** + * Force update the environment even if applications are running. + */ + forceUpdate?: pulumi.Input; + highAvailabilityConfig?: pulumi.Input; + /** + * M2 Instance Type. + * + * The following arguments are optional: + */ + instanceType: pulumi.Input; + /** + * ARN of the KMS key to use for the Environment. + */ + kmsKeyId?: pulumi.Input; + /** + * Name of the runtime environment. Must be unique within the account. + */ + name?: pulumi.Input; + /** + * Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + */ + preferredMaintenanceWindow?: pulumi.Input; + /** + * Allow applications deployed to this environment to be publicly accessible. + */ + publiclyAccessible?: pulumi.Input; + /** + * List of security group ids. + */ + securityGroupIds?: pulumi.Input[]>; + storageConfiguration?: pulumi.Input; + /** + * List of subnet ids to deploy environment to. + */ + subnetIds?: pulumi.Input[]>; + /** + * Key-value tags for the place index. 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; +} diff --git a/sdk/nodejs/m2/index.ts b/sdk/nodejs/m2/index.ts new file mode 100644 index 00000000000..6ec41470a04 --- /dev/null +++ b/sdk/nodejs/m2/index.ts @@ -0,0 +1,41 @@ +// *** 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"; + +// Export members: +export { ApplicationArgs, ApplicationState } from "./application"; +export type Application = import("./application").Application; +export const Application: typeof import("./application").Application = null as any; +utilities.lazyLoad(exports, ["Application"], () => require("./application")); + +export { DeploymentArgs, DeploymentState } from "./deployment"; +export type Deployment = import("./deployment").Deployment; +export const Deployment: typeof import("./deployment").Deployment = null as any; +utilities.lazyLoad(exports, ["Deployment"], () => require("./deployment")); + +export { EnvironmentArgs, EnvironmentState } from "./environment"; +export type Environment = import("./environment").Environment; +export const Environment: typeof import("./environment").Environment = null as any; +utilities.lazyLoad(exports, ["Environment"], () => require("./environment")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws:m2/application:Application": + return new Application(name, undefined, { urn }) + case "aws:m2/deployment:Deployment": + return new Deployment(name, undefined, { urn }) + case "aws:m2/environment:Environment": + return new Environment(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws", "m2/application", _module) +pulumi.runtime.registerResourceModule("aws", "m2/deployment", _module) +pulumi.runtime.registerResourceModule("aws", "m2/environment", _module) diff --git a/sdk/nodejs/mediastore/containerPolicy.ts b/sdk/nodejs/mediastore/containerPolicy.ts index 86a0ea3247a..ecb2420569d 100644 --- a/sdk/nodejs/mediastore/containerPolicy.ts +++ b/sdk/nodejs/mediastore/containerPolicy.ts @@ -5,8 +5,6 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Provides a MediaStore Container Policy. - * * ## Example Usage * * diff --git a/sdk/nodejs/rds/getSnapshot.ts b/sdk/nodejs/rds/getSnapshot.ts index bee18a10349..b59476f3f30 100644 --- a/sdk/nodejs/rds/getSnapshot.ts +++ b/sdk/nodejs/rds/getSnapshot.ts @@ -150,9 +150,13 @@ export interface GetSnapshotResult { * Provides the option group name for the DB snapshot. */ readonly optionGroupName: string; + /** + * Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + */ + readonly originalSnapshotCreateTime: string; readonly port: number; /** - * Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + * Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. */ readonly snapshotCreateTime: string; readonly snapshotType?: string; diff --git a/sdk/nodejs/redshiftserverless/customDomainAssociation.ts b/sdk/nodejs/redshiftserverless/customDomainAssociation.ts new file mode 100644 index 00000000000..717b02a398f --- /dev/null +++ b/sdk/nodejs/redshiftserverless/customDomainAssociation.ts @@ -0,0 +1,160 @@ +// *** 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"; + +/** + * Resource for managing an AWS Redshift Serverless Custom Domain Association. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.acm.Certificate("example", {domainName: "example.com"}); + * const exampleNamespace = new aws.redshiftserverless.Namespace("example", {namespaceName: "example-namespace"}); + * const exampleWorkgroup = new aws.redshiftserverless.Workgroup("example", { + * workgroupName: "example-workgroup", + * namespaceName: exampleNamespace.namespaceName, + * }); + * const exampleCustomDomainAssociation = new aws.redshiftserverless.CustomDomainAssociation("example", { + * workgroupName: exampleWorkgroup.workgroupName, + * customDomainName: "example.com", + * customDomainCertificateArn: example.arn, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: + * + * ```sh + * $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com + * ``` + */ +export class CustomDomainAssociation extends pulumi.CustomResource { + /** + * Get an existing CustomDomainAssociation 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?: CustomDomainAssociationState, opts?: pulumi.CustomResourceOptions): CustomDomainAssociation { + return new CustomDomainAssociation(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation'; + + /** + * Returns true if the given object is an instance of CustomDomainAssociation. 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 CustomDomainAssociation { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CustomDomainAssociation.__pulumiType; + } + + /** + * ARN of the certificate for the custom domain association. + */ + public readonly customDomainCertificateArn!: pulumi.Output; + /** + * Expiration time for the certificate. + */ + public /*out*/ readonly customDomainCertificateExpiryTime!: pulumi.Output; + /** + * Custom domain to associate with the workgroup. + */ + public readonly customDomainName!: pulumi.Output; + /** + * Name of the workgroup. + */ + public readonly workgroupName!: pulumi.Output; + + /** + * Create a CustomDomainAssociation 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: CustomDomainAssociationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CustomDomainAssociationArgs | CustomDomainAssociationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CustomDomainAssociationState | undefined; + resourceInputs["customDomainCertificateArn"] = state ? state.customDomainCertificateArn : undefined; + resourceInputs["customDomainCertificateExpiryTime"] = state ? state.customDomainCertificateExpiryTime : undefined; + resourceInputs["customDomainName"] = state ? state.customDomainName : undefined; + resourceInputs["workgroupName"] = state ? state.workgroupName : undefined; + } else { + const args = argsOrState as CustomDomainAssociationArgs | undefined; + if ((!args || args.customDomainCertificateArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'customDomainCertificateArn'"); + } + if ((!args || args.customDomainName === undefined) && !opts.urn) { + throw new Error("Missing required property 'customDomainName'"); + } + if ((!args || args.workgroupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'workgroupName'"); + } + resourceInputs["customDomainCertificateArn"] = args ? args.customDomainCertificateArn : undefined; + resourceInputs["customDomainName"] = args ? args.customDomainName : undefined; + resourceInputs["workgroupName"] = args ? args.workgroupName : undefined; + resourceInputs["customDomainCertificateExpiryTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CustomDomainAssociation.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CustomDomainAssociation resources. + */ +export interface CustomDomainAssociationState { + /** + * ARN of the certificate for the custom domain association. + */ + customDomainCertificateArn?: pulumi.Input; + /** + * Expiration time for the certificate. + */ + customDomainCertificateExpiryTime?: pulumi.Input; + /** + * Custom domain to associate with the workgroup. + */ + customDomainName?: pulumi.Input; + /** + * Name of the workgroup. + */ + workgroupName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CustomDomainAssociation resource. + */ +export interface CustomDomainAssociationArgs { + /** + * ARN of the certificate for the custom domain association. + */ + customDomainCertificateArn: pulumi.Input; + /** + * Custom domain to associate with the workgroup. + */ + customDomainName: pulumi.Input; + /** + * Name of the workgroup. + */ + workgroupName: pulumi.Input; +} diff --git a/sdk/nodejs/redshiftserverless/index.ts b/sdk/nodejs/redshiftserverless/index.ts index b564c1060da..064ae42c1ab 100644 --- a/sdk/nodejs/redshiftserverless/index.ts +++ b/sdk/nodejs/redshiftserverless/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { CustomDomainAssociationArgs, CustomDomainAssociationState } from "./customDomainAssociation"; +export type CustomDomainAssociation = import("./customDomainAssociation").CustomDomainAssociation; +export const CustomDomainAssociation: typeof import("./customDomainAssociation").CustomDomainAssociation = null as any; +utilities.lazyLoad(exports, ["CustomDomainAssociation"], () => require("./customDomainAssociation")); + export { EndpointAccessArgs, EndpointAccessState } from "./endpointAccess"; export type EndpointAccess = import("./endpointAccess").EndpointAccess; export const EndpointAccess: typeof import("./endpointAccess").EndpointAccess = null as any; @@ -55,6 +60,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation": + return new CustomDomainAssociation(name, undefined, { urn }) case "aws:redshiftserverless/endpointAccess:EndpointAccess": return new EndpointAccess(name, undefined, { urn }) case "aws:redshiftserverless/namespace:Namespace": @@ -72,6 +79,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "redshiftserverless/customDomainAssociation", _module) pulumi.runtime.registerResourceModule("aws", "redshiftserverless/endpointAccess", _module) pulumi.runtime.registerResourceModule("aws", "redshiftserverless/namespace", _module) pulumi.runtime.registerResourceModule("aws", "redshiftserverless/resourcePolicy", _module) diff --git a/sdk/nodejs/resourceexplorer/index.ts b/sdk/nodejs/resourceexplorer/index.ts index f16414a0357..7713e850543 100644 --- a/sdk/nodejs/resourceexplorer/index.ts +++ b/sdk/nodejs/resourceexplorer/index.ts @@ -10,6 +10,11 @@ export type Index = import("./index_").Index; export const Index: typeof import("./index_").Index = null as any; utilities.lazyLoad(exports, ["Index"], () => require("./index_")); +export { SearchArgs, SearchResult, SearchOutputArgs } from "./search"; +export const search: typeof import("./search").search = null as any; +export const searchOutput: typeof import("./search").searchOutput = null as any; +utilities.lazyLoad(exports, ["search","searchOutput"], () => require("./search")); + export { ViewArgs, ViewState } from "./view"; export type View = import("./view").View; export const View: typeof import("./view").View = null as any; diff --git a/sdk/nodejs/resourceexplorer/search.ts b/sdk/nodejs/resourceexplorer/search.ts new file mode 100644 index 00000000000..12db2c7e30f --- /dev/null +++ b/sdk/nodejs/resourceexplorer/search.ts @@ -0,0 +1,128 @@ +// *** 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 Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.resourceexplorer.Search({ + * queryString: "region:us-west-2", + * viewArn: test.arn, + * }); + * ``` + * + */ +export function search(args: SearchArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:resourceexplorer/search:Search", { + "queryString": args.queryString, + "resourceCounts": args.resourceCounts, + "resources": args.resources, + "viewArn": args.viewArn, + }, opts); +} + +/** + * A collection of arguments for invoking Search. + */ +export interface SearchArgs { + /** + * String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + */ + queryString: string; + /** + * Number of resources that match the query. See `resourceCount` below. + */ + resourceCounts?: inputs.resourceexplorer.SearchResourceCount[]; + /** + * List of structures that describe the resources that match the query. See `resources` below. + */ + resources?: inputs.resourceexplorer.SearchResource[]; + /** + * Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + */ + viewArn?: string; +} + +/** + * A collection of values returned by Search. + */ +export interface SearchResult { + /** + * Query String. + */ + readonly id: string; + readonly queryString: string; + /** + * Number of resources that match the query. See `resourceCount` below. + */ + readonly resourceCounts?: outputs.resourceexplorer.SearchResourceCount[]; + /** + * List of structures that describe the resources that match the query. See `resources` below. + */ + readonly resources?: outputs.resourceexplorer.SearchResource[]; + readonly viewArn?: string; +} +/** + * Data source for managing an AWS Resource Explorer Search. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.resourceexplorer.Search({ + * queryString: "region:us-west-2", + * viewArn: test.arn, + * }); + * ``` + * + */ +export function searchOutput(args: SearchOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => search(a, opts)) +} + +/** + * A collection of arguments for invoking Search. + */ +export interface SearchOutputArgs { + /** + * String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + * + * The following arguments are optional: + */ + queryString: pulumi.Input; + /** + * Number of resources that match the query. See `resourceCount` below. + */ + resourceCounts?: pulumi.Input[]>; + /** + * List of structures that describe the resources that match the query. See `resources` below. + */ + resources?: pulumi.Input[]>; + /** + * Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + */ + viewArn?: pulumi.Input; +} diff --git a/sdk/nodejs/secretsmanager/secretVersion.ts b/sdk/nodejs/secretsmanager/secretVersion.ts index 0c29f8671a8..6eb9bb5b005 100644 --- a/sdk/nodejs/secretsmanager/secretVersion.ts +++ b/sdk/nodejs/secretsmanager/secretVersion.ts @@ -89,7 +89,7 @@ export class SecretVersion extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. */ public readonly secretBinary!: pulumi.Output; /** @@ -97,7 +97,7 @@ export class SecretVersion extends pulumi.CustomResource { */ public readonly secretId!: pulumi.Output; /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. */ public readonly secretString!: pulumi.Output; /** @@ -158,7 +158,7 @@ export interface SecretVersionState { */ arn?: pulumi.Input; /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. */ secretBinary?: pulumi.Input; /** @@ -166,7 +166,7 @@ export interface SecretVersionState { */ secretId?: pulumi.Input; /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. */ secretString?: pulumi.Input; /** @@ -186,7 +186,7 @@ export interface SecretVersionState { */ export interface SecretVersionArgs { /** - * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secretString is not set. Needs to be encoded to base64. + * Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secretString` is not set. Needs to be encoded to base64. */ secretBinary?: pulumi.Input; /** @@ -194,7 +194,7 @@ export interface SecretVersionArgs { */ secretId: pulumi.Input; /** - * Specifies text data that you want to encrypt and store in this version of the secret. This is required if secretBinary is not set. + * Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secretBinary` is not set. */ secretString?: pulumi.Input; /** diff --git a/sdk/nodejs/servicecatalog/appregistryApplication.ts b/sdk/nodejs/servicecatalog/appregistryApplication.ts new file mode 100644 index 00000000000..362baade1ce --- /dev/null +++ b/sdk/nodejs/servicecatalog/appregistryApplication.ts @@ -0,0 +1,154 @@ +// *** 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"; + +/** + * Resource for managing an AWS Service Catalog AppRegistry Application. + * + * > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.servicecatalog.AppregistryApplication("example", {name: "example-app"}); + * ``` + * + * + * ### Connecting Resources + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.servicecatalog.AppregistryApplication("example", {name: "example-app"}); + * const bucket = new aws.s3.BucketV2("bucket", { + * bucket: "example-bucket", + * tags: { + * awsApplication: example.arn, + * }, + * }); + * ``` + * + * + * ## Import + * + * Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: + * + * ```sh + * $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 + * ``` + */ +export class AppregistryApplication extends pulumi.CustomResource { + /** + * Get an existing AppregistryApplication 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?: AppregistryApplicationState, opts?: pulumi.CustomResourceOptions): AppregistryApplication { + return new AppregistryApplication(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:servicecatalog/appregistryApplication:AppregistryApplication'; + + /** + * Returns true if the given object is an instance of AppregistryApplication. 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 AppregistryApplication { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AppregistryApplication.__pulumiType; + } + + /** + * ARN (Amazon Resource Name) of the application. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Description of the application. + */ + public readonly description!: pulumi.Output; + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + */ + public readonly name!: pulumi.Output; + + /** + * Create a AppregistryApplication 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?: AppregistryApplicationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AppregistryApplicationArgs | AppregistryApplicationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AppregistryApplicationState | undefined; + resourceInputs["arn"] = state ? state.arn : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["name"] = state ? state.name : undefined; + } else { + const args = argsOrState as AppregistryApplicationArgs | undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["arn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AppregistryApplication.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AppregistryApplication resources. + */ +export interface AppregistryApplicationState { + /** + * ARN (Amazon Resource Name) of the application. + */ + arn?: pulumi.Input; + /** + * Description of the application. + */ + description?: pulumi.Input; + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + */ + name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AppregistryApplication resource. + */ +export interface AppregistryApplicationArgs { + /** + * Description of the application. + */ + description?: pulumi.Input; + /** + * Name of the application. The name must be unique within an AWS region. + * + * The following arguments are optional: + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/servicecatalog/getAppregistryApplication.ts b/sdk/nodejs/servicecatalog/getAppregistryApplication.ts new file mode 100644 index 00000000000..0b1a79bab16 --- /dev/null +++ b/sdk/nodejs/servicecatalog/getAppregistryApplication.ts @@ -0,0 +1,91 @@ +// *** 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"; + +/** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.servicecatalog.getAppregistryApplication({ + * id: "application-1234", + * }); + * ``` + * + */ +export function getAppregistryApplication(args: GetAppregistryApplicationArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws:servicecatalog/getAppregistryApplication:getAppregistryApplication", { + "id": args.id, + }, opts); +} + +/** + * A collection of arguments for invoking getAppregistryApplication. + */ +export interface GetAppregistryApplicationArgs { + /** + * Application identifier. + */ + id: string; +} + +/** + * A collection of values returned by getAppregistryApplication. + */ +export interface GetAppregistryApplicationResult { + /** + * ARN (Amazon Resource Name) of the application. + */ + readonly arn: string; + /** + * Description of the application. + */ + readonly description: string; + readonly id: string; + /** + * Name of the application. + */ + readonly name: string; +} +/** + * Data source for managing an AWS Service Catalog AppRegistry Application. + * + * ## Example Usage + * + * ### Basic Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = aws.servicecatalog.getAppregistryApplication({ + * id: "application-1234", + * }); + * ``` + * + */ +export function getAppregistryApplicationOutput(args: GetAppregistryApplicationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getAppregistryApplication(a, opts)) +} + +/** + * A collection of arguments for invoking getAppregistryApplication. + */ +export interface GetAppregistryApplicationOutputArgs { + /** + * Application identifier. + */ + id: pulumi.Input; +} diff --git a/sdk/nodejs/servicecatalog/index.ts b/sdk/nodejs/servicecatalog/index.ts index dc4885555c6..37cd26bc416 100644 --- a/sdk/nodejs/servicecatalog/index.ts +++ b/sdk/nodejs/servicecatalog/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { AppregistryApplicationArgs, AppregistryApplicationState } from "./appregistryApplication"; +export type AppregistryApplication = import("./appregistryApplication").AppregistryApplication; +export const AppregistryApplication: typeof import("./appregistryApplication").AppregistryApplication = null as any; +utilities.lazyLoad(exports, ["AppregistryApplication"], () => require("./appregistryApplication")); + export { BudgetResourceAssociationArgs, BudgetResourceAssociationState } from "./budgetResourceAssociation"; export type BudgetResourceAssociation = import("./budgetResourceAssociation").BudgetResourceAssociation; export const BudgetResourceAssociation: typeof import("./budgetResourceAssociation").BudgetResourceAssociation = null as any; @@ -15,6 +20,11 @@ export type Constraint = import("./constraint").Constraint; export const Constraint: typeof import("./constraint").Constraint = null as any; utilities.lazyLoad(exports, ["Constraint"], () => require("./constraint")); +export { GetAppregistryApplicationArgs, GetAppregistryApplicationResult, GetAppregistryApplicationOutputArgs } from "./getAppregistryApplication"; +export const getAppregistryApplication: typeof import("./getAppregistryApplication").getAppregistryApplication = null as any; +export const getAppregistryApplicationOutput: typeof import("./getAppregistryApplication").getAppregistryApplicationOutput = null as any; +utilities.lazyLoad(exports, ["getAppregistryApplication","getAppregistryApplicationOutput"], () => require("./getAppregistryApplication")); + export { GetConstraintArgs, GetConstraintResult, GetConstraintOutputArgs } from "./getConstraint"; export const getConstraint: typeof import("./getConstraint").getConstraint = null as any; export const getConstraintOutput: typeof import("./getConstraint").getConstraintOutput = null as any; @@ -105,6 +115,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:servicecatalog/appregistryApplication:AppregistryApplication": + return new AppregistryApplication(name, undefined, { urn }) case "aws:servicecatalog/budgetResourceAssociation:BudgetResourceAssociation": return new BudgetResourceAssociation(name, undefined, { urn }) case "aws:servicecatalog/constraint:Constraint": @@ -136,6 +148,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "servicecatalog/appregistryApplication", _module) pulumi.runtime.registerResourceModule("aws", "servicecatalog/budgetResourceAssociation", _module) pulumi.runtime.registerResourceModule("aws", "servicecatalog/constraint", _module) pulumi.runtime.registerResourceModule("aws", "servicecatalog/organizationsAccess", _module) diff --git a/sdk/nodejs/ssoadmin/permissionSetInlinePolicy.ts b/sdk/nodejs/ssoadmin/permissionSetInlinePolicy.ts index ab5a7645d78..e0ac3b4848d 100644 --- a/sdk/nodejs/ssoadmin/permissionSetInlinePolicy.ts +++ b/sdk/nodejs/ssoadmin/permissionSetInlinePolicy.ts @@ -5,10 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource - * - * > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `aws.ssoadmin.PermissionSet` resource. - * Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. + * ## Example Usage * * ## Import * diff --git a/sdk/nodejs/transfer/access.ts b/sdk/nodejs/transfer/access.ts index fe154c4f4ad..558d1184376 100644 --- a/sdk/nodejs/transfer/access.ts +++ b/sdk/nodejs/transfer/access.ts @@ -10,6 +10,8 @@ import * as utilities from "../utilities"; /** * Provides a AWS Transfer Access resource. * + * > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + * * ## Example Usage * * ### Basic S3 diff --git a/sdk/nodejs/transfer/user.ts b/sdk/nodejs/transfer/user.ts index 4e3f1660c23..963b880840e 100644 --- a/sdk/nodejs/transfer/user.ts +++ b/sdk/nodejs/transfer/user.ts @@ -8,8 +8,6 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` resource. - * * ## Example Usage * * diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 5b29d42f610..868c4751181 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -317,6 +317,7 @@ "cloudfront/index.ts", "cloudfront/keyGroup.ts", "cloudfront/keyValueStore.ts", + "cloudfront/keyvaluestoreKey.ts", "cloudfront/monitoringSubscription.ts", "cloudfront/originAccessControl.ts", "cloudfront/originAccessIdentity.ts", @@ -531,6 +532,7 @@ "devicefarm/upload.ts", "devopsguru/eventSourcesConfig.ts", "devopsguru/index.ts", + "devopsguru/notificationChannel.ts", "devopsguru/resourceCollection.ts", "directconnect/bgpPeer.ts", "directconnect/connection.ts", @@ -601,6 +603,7 @@ "dynamodb/globalTable.ts", "dynamodb/index.ts", "dynamodb/kinesisStreamingDestination.ts", + "dynamodb/resourcePolicy.ts", "dynamodb/table.ts", "dynamodb/tableExport.ts", "dynamodb/tableItem.ts", @@ -705,6 +708,7 @@ "ec2/imageBlockPublicAccess.ts", "ec2/index.ts", "ec2/instance.ts", + "ec2/instanceMetadataDefaults.ts", "ec2/instancePlatform.ts", "ec2/instanceType.ts", "ec2/internetGateway.ts", @@ -1229,6 +1233,7 @@ "lakeformation/lfTag.ts", "lakeformation/permissions.ts", "lakeformation/resource.ts", + "lakeformation/resourceLfTag.ts", "lakeformation/resourceLfTags.ts", "lambda/alias.ts", "lambda/codeSigningConfig.ts", @@ -1327,6 +1332,10 @@ "location/routeCalculation.ts", "location/tracker.ts", "location/trackerAssociation.ts", + "m2/application.ts", + "m2/deployment.ts", + "m2/environment.ts", + "m2/index.ts", "macie/customDataIdentifier.ts", "macie/findingsFilter.ts", "macie/index.ts", @@ -1651,6 +1660,7 @@ "redshift/usageLimit.ts", "redshiftdata/index.ts", "redshiftdata/statement.ts", + "redshiftserverless/customDomainAssociation.ts", "redshiftserverless/endpointAccess.ts", "redshiftserverless/getCredentials.ts", "redshiftserverless/getNamespace.ts", @@ -1667,6 +1677,7 @@ "rekognition/project.ts", "resourceexplorer/index.ts", "resourceexplorer/index_.ts", + "resourceexplorer/search.ts", "resourceexplorer/view.ts", "resourcegroups/group.ts", "resourcegroups/index.ts", @@ -1860,8 +1871,10 @@ "serverlessrepository/cloudFormationStack.ts", "serverlessrepository/getApplication.ts", "serverlessrepository/index.ts", + "servicecatalog/appregistryApplication.ts", "servicecatalog/budgetResourceAssociation.ts", "servicecatalog/constraint.ts", + "servicecatalog/getAppregistryApplication.ts", "servicecatalog/getConstraint.ts", "servicecatalog/getLaunchPaths.ts", "servicecatalog/getPortfolio.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 7d9460acc8e..f7ee8e9549f 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -482,6 +482,10 @@ export interface ProviderEndpoint { * Use this to override the default service endpoint URL */ datasync?: pulumi.Input; + /** + * Use this to override the default service endpoint URL + */ + datazone?: pulumi.Input; /** * Use this to override the default service endpoint URL */ @@ -922,6 +926,10 @@ export interface ProviderEndpoint { * Use this to override the default service endpoint URL */ outposts?: pulumi.Input; + /** + * Use this to override the default service endpoint URL + */ + paymentcryptography?: pulumi.Input; /** * Use this to override the default service endpoint URL */ @@ -17553,6 +17561,21 @@ export namespace devopsguru { status: pulumi.Input; } + export interface NotificationChannelFilters { + /** + * Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + */ + messageTypes?: pulumi.Input[]>; + /** + * Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + */ + severities?: pulumi.Input[]>; + } + + export interface NotificationChannelSns { + topicArn: pulumi.Input; + } + export interface ResourceCollectionCloudformation { /** * Array of the names of the AWS CloudFormation stacks. If `type` is `AWS_SERVICE` (all acccount resources) this array should be a single item containing a wildcard (`"*"`). @@ -33913,7 +33936,7 @@ export namespace kinesis { */ orcSerDe?: pulumi.Input; /** - * Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + * Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. */ parquetSerDe?: pulumi.Input; } @@ -36202,6 +36225,97 @@ export namespace lakeformation { wildcard?: pulumi.Input; } + export interface ResourceLfTagDatabase { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: pulumi.Input; + /** + * Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + */ + name: pulumi.Input; + } + + export interface ResourceLfTagLfTag { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: pulumi.Input; + /** + * Key name for an existing LF-tag. + */ + key: pulumi.Input; + /** + * Value from the possible values for the LF-tag. + * + * The following argument is optional: + */ + value: pulumi.Input; + } + + export interface ResourceLfTagTable { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: pulumi.Input; + /** + * Name of the database for the table. Unique to a Data Catalog. + */ + databaseName: pulumi.Input; + /** + * Name of the table. + */ + name?: pulumi.Input; + /** + * Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + */ + wildcard?: pulumi.Input; + } + + export interface ResourceLfTagTableWithColumns { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: pulumi.Input; + /** + * Set of column names for the table. + */ + columnNames?: pulumi.Input[]>; + /** + * Option to add column wildcard. See Column Wildcard for more details. + */ + columnWildcard?: pulumi.Input; + /** + * Name of the database for the table with columns resource. Unique to the Data Catalog. + */ + databaseName: pulumi.Input; + /** + * Name of the table resource. + * + * The following arguments are optional: + */ + name: pulumi.Input; + } + + export interface ResourceLfTagTableWithColumnsColumnWildcard { + excludedColumnNames?: pulumi.Input[]>; + } + + export interface ResourceLfTagTimeouts { + /** + * 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; + } + export interface ResourceLfTagsDatabase { /** * Identifier for the Data Catalog. By default, it is the account ID of the caller. @@ -49707,6 +49821,98 @@ export namespace location { } } +export namespace m2 { + export interface ApplicationDefinition { + /** + * JSON application definition. Either this or `s3Location` must be specified. + */ + content?: pulumi.Input; + /** + * Location of the application definition in S3. Either this or `content` must be specified. + */ + s3Location?: pulumi.Input; + } + + export interface ApplicationTimeouts { + /** + * 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 DeploymentTimeouts { + /** + * 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 EnvironmentHighAvailabilityConfig { + /** + * Desired number of instances for the Environment. + */ + desiredCapacity: pulumi.Input; + } + + export interface EnvironmentStorageConfiguration { + efs?: pulumi.Input; + fsx?: pulumi.Input; + } + + export interface EnvironmentStorageConfigurationEfs { + /** + * Id of the EFS filesystem to mount. + */ + fileSystemId: pulumi.Input; + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + */ + mountPoint: pulumi.Input; + } + + export interface EnvironmentStorageConfigurationFsx { + /** + * Id of the FSX filesystem to mount. + */ + fileSystemId: pulumi.Input; + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + */ + mountPoint: pulumi.Input; + } + + export interface EnvironmentTimeouts { + /** + * 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 namespace macie { export interface FindingsFilterFindingCriteria { /** @@ -59835,6 +60041,114 @@ export namespace resourceexplorer { update?: pulumi.Input; } + export interface SearchResource { + /** + * Amazon resource name of resource. + */ + arn?: string; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt?: string; + /** + * Amazon Web Services account that owns the resource. + */ + owningAccountId?: string; + /** + * Amazon Web Services Region in which the resource was created and exists. + */ + region?: string; + /** + * Structure with additional type-specific details about the resource. See `resourceProperty` below. + */ + resourceProperties?: inputs.resourceexplorer.SearchResourceResourceProperty[]; + /** + * Type of the resource. + */ + resourceType?: string; + /** + * Amazon Web Service that owns the resource and is responsible for creating and updating it. + */ + service?: string; + } + + export interface SearchResourceArgs { + /** + * Amazon resource name of resource. + */ + arn?: pulumi.Input; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt?: pulumi.Input; + /** + * Amazon Web Services account that owns the resource. + */ + owningAccountId?: pulumi.Input; + /** + * Amazon Web Services Region in which the resource was created and exists. + */ + region?: pulumi.Input; + /** + * Structure with additional type-specific details about the resource. See `resourceProperty` below. + */ + resourceProperties?: pulumi.Input[]>; + /** + * Type of the resource. + */ + resourceType?: pulumi.Input; + /** + * Amazon Web Service that owns the resource and is responsible for creating and updating it. + */ + service?: pulumi.Input; + } + + export interface SearchResourceCount { + completed: boolean; + /** + * Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + */ + totalResources?: number; + } + + export interface SearchResourceCountArgs { + completed: pulumi.Input; + /** + * Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + */ + totalResources?: pulumi.Input; + } + + export interface SearchResourceResourceProperty { + /** + * Details about this property. The content of this field is a JSON object that varies based on the resource type. + */ + data?: string; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt?: string; + /** + * Name of this property of the resource. + */ + name?: string; + } + + export interface SearchResourceResourcePropertyArgs { + /** + * Details about this property. The content of this field is a JSON object that varies based on the resource type. + */ + data?: pulumi.Input; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt?: pulumi.Input; + /** + * Name of this property of the resource. + */ + name?: pulumi.Input; + } + export interface ViewFilters { /** * The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a search operation. For more details, see [Search query syntax](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index cfdb55f5377..12c12980a1e 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -16648,6 +16648,10 @@ export namespace config { * Use this to override the default service endpoint URL */ datasync?: string; + /** + * Use this to override the default service endpoint URL + */ + datazone?: string; /** * Use this to override the default service endpoint URL */ @@ -17088,6 +17092,10 @@ export namespace config { * Use this to override the default service endpoint URL */ outposts?: string; + /** + * Use this to override the default service endpoint URL + */ + paymentcryptography?: string; /** * Use this to override the default service endpoint URL */ @@ -20387,6 +20395,21 @@ export namespace devopsguru { status: string; } + export interface NotificationChannelFilters { + /** + * Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + */ + messageTypes?: string[]; + /** + * Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + */ + severities?: string[]; + } + + export interface NotificationChannelSns { + topicArn: string; + } + export interface ResourceCollectionCloudformation { /** * Array of the names of the AWS CloudFormation stacks. If `type` is `AWS_SERVICE` (all acccount resources) this array should be a single item containing a wildcard (`"*"`). @@ -39370,7 +39393,7 @@ export namespace kinesis { */ orcSerDe?: outputs.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDe; /** - * Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + * Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. */ parquetSerDe?: outputs.kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe; } @@ -41558,6 +41581,97 @@ export namespace lakeformation { wildcard?: boolean; } + export interface ResourceLfTagDatabase { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: string; + /** + * Name of the database resource. Unique to the Data Catalog. + * + * The following argument is optional: + */ + name: string; + } + + export interface ResourceLfTagLfTag { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId: string; + /** + * Key name for an existing LF-tag. + */ + key: string; + /** + * Value from the possible values for the LF-tag. + * + * The following argument is optional: + */ + value: string; + } + + export interface ResourceLfTagTable { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: string; + /** + * Name of the database for the table. Unique to a Data Catalog. + */ + databaseName: string; + /** + * Name of the table. + */ + name?: string; + /** + * Whether to use a wildcard representing every table under a database. Defaults to `false`. + * + * The following arguments are optional: + */ + wildcard?: boolean; + } + + export interface ResourceLfTagTableWithColumns { + /** + * Identifier for the Data Catalog. By default, it is the account ID of the caller. + */ + catalogId?: string; + /** + * Set of column names for the table. + */ + columnNames?: string[]; + /** + * Option to add column wildcard. See Column Wildcard for more details. + */ + columnWildcard?: outputs.lakeformation.ResourceLfTagTableWithColumnsColumnWildcard; + /** + * Name of the database for the table with columns resource. Unique to the Data Catalog. + */ + databaseName: string; + /** + * Name of the table resource. + * + * The following arguments are optional: + */ + name: string; + } + + export interface ResourceLfTagTableWithColumnsColumnWildcard { + excludedColumnNames?: string[]; + } + + export interface ResourceLfTagTimeouts { + /** + * 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; + } + export interface ResourceLfTagsDatabase { /** * Identifier for the Data Catalog. By default, it is the account ID of the caller. @@ -55314,6 +55428,99 @@ export namespace location { } +export namespace m2 { + export interface ApplicationDefinition { + /** + * JSON application definition. Either this or `s3Location` must be specified. + */ + content?: string; + /** + * Location of the application definition in S3. Either this or `content` must be specified. + */ + s3Location?: string; + } + + export interface ApplicationTimeouts { + /** + * 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 DeploymentTimeouts { + /** + * 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 EnvironmentHighAvailabilityConfig { + /** + * Desired number of instances for the Environment. + */ + desiredCapacity: number; + } + + export interface EnvironmentStorageConfiguration { + efs?: outputs.m2.EnvironmentStorageConfigurationEfs; + fsx?: outputs.m2.EnvironmentStorageConfigurationFsx; + } + + export interface EnvironmentStorageConfigurationEfs { + /** + * Id of the EFS filesystem to mount. + */ + fileSystemId: string; + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + */ + mountPoint: string; + } + + export interface EnvironmentStorageConfigurationFsx { + /** + * Id of the FSX filesystem to mount. + */ + fileSystemId: string; + /** + * Path to mount the filesystem on, must start with `/m2/mount/`. + */ + mountPoint: string; + } + + export interface EnvironmentTimeouts { + /** + * 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 namespace macie { export interface FindingsFilterFindingCriteria { /** @@ -66484,6 +66691,60 @@ export namespace resourceexplorer { update?: string; } + export interface SearchResource { + /** + * Amazon resource name of resource. + */ + arn: string; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt: string; + /** + * Amazon Web Services account that owns the resource. + */ + owningAccountId: string; + /** + * Amazon Web Services Region in which the resource was created and exists. + */ + region: string; + /** + * Structure with additional type-specific details about the resource. See `resourceProperty` below. + */ + resourceProperties?: outputs.resourceexplorer.SearchResourceResourceProperty[]; + /** + * Type of the resource. + */ + resourceType: string; + /** + * Amazon Web Service that owns the resource and is responsible for creating and updating it. + */ + service: string; + } + + export interface SearchResourceCount { + completed: boolean; + /** + * Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + */ + totalResources: number; + } + + export interface SearchResourceResourceProperty { + /** + * Details about this property. The content of this field is a JSON object that varies based on the resource type. + */ + data: string; + /** + * The date and time that the information about this resource property was last updated. + */ + lastReportedAt: string; + /** + * Name of this property of the resource. + */ + name: string; + } + export interface ViewFilters { /** * The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a search operation. For more details, see [Search query syntax](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index d6a1e9f93e9..721b2e0ef42 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -261,6 +261,8 @@ lightsail = __lightsail import pulumi_aws.location as __location location = __location + import pulumi_aws.m2 as __m2 + m2 = __m2 import pulumi_aws.macie as __macie macie = __macie import pulumi_aws.macie2 as __macie2 @@ -547,6 +549,7 @@ licensemanager = _utilities.lazy_import('pulumi_aws.licensemanager') lightsail = _utilities.lazy_import('pulumi_aws.lightsail') location = _utilities.lazy_import('pulumi_aws.location') + m2 = _utilities.lazy_import('pulumi_aws.m2') macie = _utilities.lazy_import('pulumi_aws.macie') macie2 = _utilities.lazy_import('pulumi_aws.macie2') mediaconvert = _utilities.lazy_import('pulumi_aws.mediaconvert') @@ -2186,6 +2189,14 @@ "aws:cloudfront/keyValueStore:KeyValueStore": "KeyValueStore" } }, + { + "pkg": "aws", + "mod": "cloudfront/keyvaluestoreKey", + "fqn": "pulumi_aws.cloudfront", + "classes": { + "aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey": "KeyvaluestoreKey" + } + }, { "pkg": "aws", "mod": "cloudfront/monitoringSubscription", @@ -3274,6 +3285,14 @@ "aws:devopsguru/eventSourcesConfig:EventSourcesConfig": "EventSourcesConfig" } }, + { + "pkg": "aws", + "mod": "devopsguru/notificationChannel", + "fqn": "pulumi_aws.devopsguru", + "classes": { + "aws:devopsguru/notificationChannel:NotificationChannel": "NotificationChannel" + } + }, { "pkg": "aws", "mod": "devopsguru/resourceCollection", @@ -3658,6 +3677,14 @@ "aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination": "KinesisStreamingDestination" } }, + { + "pkg": "aws", + "mod": "dynamodb/resourcePolicy", + "fqn": "pulumi_aws.dynamodb", + "classes": { + "aws:dynamodb/resourcePolicy:ResourcePolicy": "ResourcePolicy" + } + }, { "pkg": "aws", "mod": "dynamodb/table", @@ -3930,6 +3957,14 @@ "aws:ec2/instance:Instance": "Instance" } }, + { + "pkg": "aws", + "mod": "ec2/instanceMetadataDefaults", + "fqn": "pulumi_aws.ec2", + "classes": { + "aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults": "InstanceMetadataDefaults" + } + }, { "pkg": "aws", "mod": "ec2/internetGateway", @@ -6642,6 +6677,14 @@ "aws:lakeformation/resource:Resource": "Resource" } }, + { + "pkg": "aws", + "mod": "lakeformation/resourceLfTag", + "fqn": "pulumi_aws.lakeformation", + "classes": { + "aws:lakeformation/resourceLfTag:ResourceLfTag": "ResourceLfTag" + } + }, { "pkg": "aws", "mod": "lakeformation/resourceLfTags", @@ -7146,6 +7189,30 @@ "aws:location/trackerAssociation:TrackerAssociation": "TrackerAssociation" } }, + { + "pkg": "aws", + "mod": "m2/application", + "fqn": "pulumi_aws.m2", + "classes": { + "aws:m2/application:Application": "Application" + } + }, + { + "pkg": "aws", + "mod": "m2/deployment", + "fqn": "pulumi_aws.m2", + "classes": { + "aws:m2/deployment:Deployment": "Deployment" + } + }, + { + "pkg": "aws", + "mod": "m2/environment", + "fqn": "pulumi_aws.m2", + "classes": { + "aws:m2/environment:Environment": "Environment" + } + }, { "pkg": "aws", "mod": "macie/customDataIdentifier", @@ -8690,6 +8757,14 @@ "aws:redshiftdata/statement:Statement": "Statement" } }, + { + "pkg": "aws", + "mod": "redshiftserverless/customDomainAssociation", + "fqn": "pulumi_aws.redshiftserverless", + "classes": { + "aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation": "CustomDomainAssociation" + } + }, { "pkg": "aws", "mod": "redshiftserverless/endpointAccess", @@ -9890,6 +9965,14 @@ "aws:serverlessrepository/cloudFormationStack:CloudFormationStack": "CloudFormationStack" } }, + { + "pkg": "aws", + "mod": "servicecatalog/appregistryApplication", + "fqn": "pulumi_aws.servicecatalog", + "classes": { + "aws:servicecatalog/appregistryApplication:AppregistryApplication": "AppregistryApplication" + } + }, { "pkg": "aws", "mod": "servicecatalog/budgetResourceAssociation", diff --git a/sdk/python/pulumi_aws/_inputs.py b/sdk/python/pulumi_aws/_inputs.py index 9d11f658c88..c5ebfe6c9bb 100644 --- a/sdk/python/pulumi_aws/_inputs.py +++ b/sdk/python/pulumi_aws/_inputs.py @@ -393,6 +393,7 @@ def __init__(__self__, *, dataexchange: Optional[pulumi.Input[str]] = None, datapipeline: Optional[pulumi.Input[str]] = None, datasync: Optional[pulumi.Input[str]] = None, + datazone: Optional[pulumi.Input[str]] = None, dax: Optional[pulumi.Input[str]] = None, deploy: Optional[pulumi.Input[str]] = None, detective: Optional[pulumi.Input[str]] = None, @@ -503,6 +504,7 @@ def __init__(__self__, *, organizations: Optional[pulumi.Input[str]] = None, osis: Optional[pulumi.Input[str]] = None, outposts: Optional[pulumi.Input[str]] = None, + paymentcryptography: Optional[pulumi.Input[str]] = None, pcaconnectorad: Optional[pulumi.Input[str]] = None, pinpoint: Optional[pulumi.Input[str]] = None, pipes: Optional[pulumi.Input[str]] = None, @@ -668,6 +670,7 @@ def __init__(__self__, *, :param pulumi.Input[str] dataexchange: Use this to override the default service endpoint URL :param pulumi.Input[str] datapipeline: Use this to override the default service endpoint URL :param pulumi.Input[str] datasync: Use this to override the default service endpoint URL + :param pulumi.Input[str] datazone: Use this to override the default service endpoint URL :param pulumi.Input[str] dax: Use this to override the default service endpoint URL :param pulumi.Input[str] deploy: Use this to override the default service endpoint URL :param pulumi.Input[str] detective: Use this to override the default service endpoint URL @@ -778,6 +781,7 @@ def __init__(__self__, *, :param pulumi.Input[str] organizations: Use this to override the default service endpoint URL :param pulumi.Input[str] osis: Use this to override the default service endpoint URL :param pulumi.Input[str] outposts: Use this to override the default service endpoint URL + :param pulumi.Input[str] paymentcryptography: Use this to override the default service endpoint URL :param pulumi.Input[str] pcaconnectorad: Use this to override the default service endpoint URL :param pulumi.Input[str] pinpoint: Use this to override the default service endpoint URL :param pulumi.Input[str] pipes: Use this to override the default service endpoint URL @@ -1027,6 +1031,8 @@ def __init__(__self__, *, pulumi.set(__self__, "datapipeline", datapipeline) if datasync is not None: pulumi.set(__self__, "datasync", datasync) + if datazone is not None: + pulumi.set(__self__, "datazone", datazone) if dax is not None: pulumi.set(__self__, "dax", dax) if deploy is not None: @@ -1247,6 +1253,8 @@ def __init__(__self__, *, pulumi.set(__self__, "osis", osis) if outposts is not None: pulumi.set(__self__, "outposts", outposts) + if paymentcryptography is not None: + pulumi.set(__self__, "paymentcryptography", paymentcryptography) if pcaconnectorad is not None: pulumi.set(__self__, "pcaconnectorad", pcaconnectorad) if pinpoint is not None: @@ -2416,6 +2424,18 @@ def datasync(self) -> Optional[pulumi.Input[str]]: def datasync(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "datasync", value) + @property + @pulumi.getter + def datazone(self) -> Optional[pulumi.Input[str]]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "datazone") + + @datazone.setter + def datazone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "datazone", value) + @property @pulumi.getter def dax(self) -> Optional[pulumi.Input[str]]: @@ -3736,6 +3756,18 @@ def outposts(self) -> Optional[pulumi.Input[str]]: def outposts(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "outposts", value) + @property + @pulumi.getter + def paymentcryptography(self) -> Optional[pulumi.Input[str]]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "paymentcryptography") + + @paymentcryptography.setter + def paymentcryptography(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "paymentcryptography", value) + @property @pulumi.getter def pcaconnectorad(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_aws/acmpca/certificate.py b/sdk/python/pulumi_aws/acmpca/certificate.py index 15c8681286f..7e60f96bdc5 100644 --- a/sdk/python/pulumi_aws/acmpca/certificate.py +++ b/sdk/python/pulumi_aws/acmpca/certificate.py @@ -291,6 +291,40 @@ def __init__(__self__, ## Example Usage + ### Basic + + + ```python + import pulumi + import pulumi_aws as aws + import pulumi_tls as tls + + example_certificate_authority = aws.acmpca.CertificateAuthority("example", + certificate_authority_configuration=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationArgs( + key_algorithm="RSA_4096", + signing_algorithm="SHA512WITHRSA", + subject=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs( + common_name="example.com", + ), + ), + permanent_deletion_time_in_days=7) + key = tls.PrivateKey("key", algorithm="RSA") + csr = tls.CertRequest("csr", + private_key_pem=key.private_key_pem, + subject=tls.CertRequestSubjectArgs( + common_name="example", + )) + example = aws.acmpca.Certificate("example", + certificate_authority_arn=example_certificate_authority.arn, + certificate_signing_request=csr.cert_request_pem, + signing_algorithm="SHA256WITHRSA", + validity=aws.acmpca.CertificateValidityArgs( + type="YEARS", + value="1", + )) + ``` + + ## Import Using `pulumi import`, import ACM PCA Certificates using their ARN. For example: @@ -325,6 +359,40 @@ def __init__(__self__, ## Example Usage + ### Basic + + + ```python + import pulumi + import pulumi_aws as aws + import pulumi_tls as tls + + example_certificate_authority = aws.acmpca.CertificateAuthority("example", + certificate_authority_configuration=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationArgs( + key_algorithm="RSA_4096", + signing_algorithm="SHA512WITHRSA", + subject=aws.acmpca.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs( + common_name="example.com", + ), + ), + permanent_deletion_time_in_days=7) + key = tls.PrivateKey("key", algorithm="RSA") + csr = tls.CertRequest("csr", + private_key_pem=key.private_key_pem, + subject=tls.CertRequestSubjectArgs( + common_name="example", + )) + example = aws.acmpca.Certificate("example", + certificate_authority_arn=example_certificate_authority.arn, + certificate_signing_request=csr.cert_request_pem, + signing_algorithm="SHA256WITHRSA", + validity=aws.acmpca.CertificateValidityArgs( + type="YEARS", + value="1", + )) + ``` + + ## Import Using `pulumi import`, import ACM PCA Certificates using their ARN. For example: diff --git a/sdk/python/pulumi_aws/alb/target_group_attachment.py b/sdk/python/pulumi_aws/alb/target_group_attachment.py index b84d818ef3f..7773c99f506 100644 --- a/sdk/python/pulumi_aws/alb/target_group_attachment.py +++ b/sdk/python/pulumi_aws/alb/target_group_attachment.py @@ -236,7 +236,7 @@ def create_example(range_body): target_id=range["value"], port=80)) - pulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) + pulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) ``` @@ -324,7 +324,7 @@ def create_example(range_body): target_id=range["value"], port=80)) - pulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) + pulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) ``` diff --git a/sdk/python/pulumi_aws/apigateway/method_response.py b/sdk/python/pulumi_aws/apigateway/method_response.py index bd8300a50c0..beea2ab47cc 100644 --- a/sdk/python/pulumi_aws/apigateway/method_response.py +++ b/sdk/python/pulumi_aws/apigateway/method_response.py @@ -318,7 +318,7 @@ def __init__(__self__, http_method=my_demo_method.http_method, status_code="200", response_models={ - "application-json": "MyDemoResponseModel", + "application/json": "MyDemoResponseModel", }, response_parameters={ "method.response.header.Content-Type": False, @@ -435,7 +435,7 @@ def __init__(__self__, http_method=my_demo_method.http_method, status_code="200", response_models={ - "application-json": "MyDemoResponseModel", + "application/json": "MyDemoResponseModel", }, response_parameters={ "method.response.header.Content-Type": False, diff --git a/sdk/python/pulumi_aws/cloudfront/__init__.py b/sdk/python/pulumi_aws/cloudfront/__init__.py index 5bbd489c6c7..45f0e21b1c4 100644 --- a/sdk/python/pulumi_aws/cloudfront/__init__.py +++ b/sdk/python/pulumi_aws/cloudfront/__init__.py @@ -22,6 +22,7 @@ from .get_response_headers_policy import * from .key_group import * from .key_value_store import * +from .keyvaluestore_key import * from .monitoring_subscription import * from .origin_access_control import * from .origin_access_identity import * diff --git a/sdk/python/pulumi_aws/cloudfront/function.py b/sdk/python/pulumi_aws/cloudfront/function.py index 25ef8cbfaf5..5655e922254 100644 --- a/sdk/python/pulumi_aws/cloudfront/function.py +++ b/sdk/python/pulumi_aws/cloudfront/function.py @@ -17,6 +17,7 @@ def __init__(__self__, *, code: pulumi.Input[str], runtime: pulumi.Input[str], comment: Optional[pulumi.Input[str]] = None, + key_value_store_associations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, publish: Optional[pulumi.Input[bool]] = None): """ @@ -26,6 +27,7 @@ def __init__(__self__, *, The following arguments are optional: :param pulumi.Input[str] comment: Comment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] key_value_store_associations: List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. :param pulumi.Input[str] name: Unique name for your CloudFront Function. :param pulumi.Input[bool] publish: Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. """ @@ -33,6 +35,8 @@ def __init__(__self__, *, pulumi.set(__self__, "runtime", runtime) if comment is not None: pulumi.set(__self__, "comment", comment) + if key_value_store_associations is not None: + pulumi.set(__self__, "key_value_store_associations", key_value_store_associations) if name is not None: pulumi.set(__self__, "name", name) if publish is not None: @@ -76,6 +80,18 @@ def comment(self) -> Optional[pulumi.Input[str]]: def comment(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "comment", value) + @property + @pulumi.getter(name="keyValueStoreAssociations") + def key_value_store_associations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + """ + return pulumi.get(self, "key_value_store_associations") + + @key_value_store_associations.setter + def key_value_store_associations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "key_value_store_associations", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -108,6 +124,7 @@ def __init__(__self__, *, code: Optional[pulumi.Input[str]] = None, comment: Optional[pulumi.Input[str]] = None, etag: Optional[pulumi.Input[str]] = None, + key_value_store_associations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, live_stage_etag: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, publish: Optional[pulumi.Input[bool]] = None, @@ -119,6 +136,7 @@ def __init__(__self__, *, :param pulumi.Input[str] code: Source code of the function :param pulumi.Input[str] comment: Comment. :param pulumi.Input[str] etag: ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. + :param pulumi.Input[Sequence[pulumi.Input[str]]] key_value_store_associations: List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. :param pulumi.Input[str] live_stage_etag: ETag hash of any `LIVE` stage of the function. :param pulumi.Input[str] name: Unique name for your CloudFront Function. :param pulumi.Input[bool] publish: Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. @@ -135,6 +153,8 @@ def __init__(__self__, *, pulumi.set(__self__, "comment", comment) if etag is not None: pulumi.set(__self__, "etag", etag) + if key_value_store_associations is not None: + pulumi.set(__self__, "key_value_store_associations", key_value_store_associations) if live_stage_etag is not None: pulumi.set(__self__, "live_stage_etag", live_stage_etag) if name is not None: @@ -194,6 +214,18 @@ def etag(self) -> Optional[pulumi.Input[str]]: def etag(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "etag", value) + @property + @pulumi.getter(name="keyValueStoreAssociations") + def key_value_store_associations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + """ + return pulumi.get(self, "key_value_store_associations") + + @key_value_store_associations.setter + def key_value_store_associations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "key_value_store_associations", value) + @property @pulumi.getter(name="liveStageEtag") def live_stage_etag(self) -> Optional[pulumi.Input[str]]: @@ -264,6 +296,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, code: Optional[pulumi.Input[str]] = None, comment: Optional[pulumi.Input[str]] = None, + key_value_store_associations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, publish: Optional[pulumi.Input[bool]] = None, runtime: Optional[pulumi.Input[str]] = None, @@ -289,6 +322,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] code: Source code of the function :param pulumi.Input[str] comment: Comment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] key_value_store_associations: List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. :param pulumi.Input[str] name: Unique name for your CloudFront Function. :param pulumi.Input[bool] publish: Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. :param pulumi.Input[str] runtime: Identifier of the function's runtime. Valid values are `cloudfront-js-1.0` and `cloudfront-js-2.0`. @@ -335,6 +369,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, code: Optional[pulumi.Input[str]] = None, comment: Optional[pulumi.Input[str]] = None, + key_value_store_associations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, publish: Optional[pulumi.Input[bool]] = None, runtime: Optional[pulumi.Input[str]] = None, @@ -351,6 +386,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'code'") __props__.__dict__["code"] = code __props__.__dict__["comment"] = comment + __props__.__dict__["key_value_store_associations"] = key_value_store_associations __props__.__dict__["name"] = name __props__.__dict__["publish"] = publish if runtime is None and not opts.urn: @@ -374,6 +410,7 @@ def get(resource_name: str, code: Optional[pulumi.Input[str]] = None, comment: Optional[pulumi.Input[str]] = None, etag: Optional[pulumi.Input[str]] = None, + key_value_store_associations: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, live_stage_etag: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, publish: Optional[pulumi.Input[bool]] = None, @@ -390,6 +427,7 @@ def get(resource_name: str, :param pulumi.Input[str] code: Source code of the function :param pulumi.Input[str] comment: Comment. :param pulumi.Input[str] etag: ETag hash of the function. This is the value for the `DEVELOPMENT` stage of the function. + :param pulumi.Input[Sequence[pulumi.Input[str]]] key_value_store_associations: List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. :param pulumi.Input[str] live_stage_etag: ETag hash of any `LIVE` stage of the function. :param pulumi.Input[str] name: Unique name for your CloudFront Function. :param pulumi.Input[bool] publish: Whether to publish creation/change as Live CloudFront Function Version. Defaults to `true`. @@ -406,6 +444,7 @@ def get(resource_name: str, __props__.__dict__["code"] = code __props__.__dict__["comment"] = comment __props__.__dict__["etag"] = etag + __props__.__dict__["key_value_store_associations"] = key_value_store_associations __props__.__dict__["live_stage_etag"] = live_stage_etag __props__.__dict__["name"] = name __props__.__dict__["publish"] = publish @@ -445,6 +484,14 @@ def etag(self) -> pulumi.Output[str]: """ return pulumi.get(self, "etag") + @property + @pulumi.getter(name="keyValueStoreAssociations") + def key_value_store_associations(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + List of `cloudfront.KeyValueStore` ARNs to be associated to the function. AWS limits associations to on key value store per function. + """ + return pulumi.get(self, "key_value_store_associations") + @property @pulumi.getter(name="liveStageEtag") def live_stage_etag(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/cloudfront/get_function.py b/sdk/python/pulumi_aws/cloudfront/get_function.py index 8baeb15109e..2eb74050e89 100644 --- a/sdk/python/pulumi_aws/cloudfront/get_function.py +++ b/sdk/python/pulumi_aws/cloudfront/get_function.py @@ -21,7 +21,7 @@ class GetFunctionResult: """ A collection of values returned by getFunction. """ - def __init__(__self__, arn=None, code=None, comment=None, etag=None, id=None, last_modified_time=None, name=None, runtime=None, stage=None, status=None): + def __init__(__self__, arn=None, code=None, comment=None, etag=None, id=None, key_value_store_associations=None, last_modified_time=None, name=None, runtime=None, stage=None, status=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -37,6 +37,9 @@ def __init__(__self__, arn=None, code=None, comment=None, etag=None, id=None, la if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) + if key_value_store_associations and not isinstance(key_value_store_associations, list): + raise TypeError("Expected argument 'key_value_store_associations' to be a list") + pulumi.set(__self__, "key_value_store_associations", key_value_store_associations) if last_modified_time and not isinstance(last_modified_time, str): raise TypeError("Expected argument 'last_modified_time' to be a str") pulumi.set(__self__, "last_modified_time", last_modified_time) @@ -93,6 +96,14 @@ def id(self) -> str: """ return pulumi.get(self, "id") + @property + @pulumi.getter(name="keyValueStoreAssociations") + def key_value_store_associations(self) -> Sequence[str]: + """ + List of `cloudfront.KeyValueStore` ARNs associated to the function. + """ + return pulumi.get(self, "key_value_store_associations") + @property @pulumi.getter(name="lastModifiedTime") def last_modified_time(self) -> str: @@ -139,6 +150,7 @@ def __await__(self): comment=self.comment, etag=self.etag, id=self.id, + key_value_store_associations=self.key_value_store_associations, last_modified_time=self.last_modified_time, name=self.name, runtime=self.runtime, @@ -181,6 +193,7 @@ def get_function(name: Optional[str] = None, comment=pulumi.get(__ret__, 'comment'), etag=pulumi.get(__ret__, 'etag'), id=pulumi.get(__ret__, 'id'), + key_value_store_associations=pulumi.get(__ret__, 'key_value_store_associations'), last_modified_time=pulumi.get(__ret__, 'last_modified_time'), name=pulumi.get(__ret__, 'name'), runtime=pulumi.get(__ret__, 'runtime'), diff --git a/sdk/python/pulumi_aws/cloudfront/keyvaluestore_key.py b/sdk/python/pulumi_aws/cloudfront/keyvaluestore_key.py new file mode 100644 index 00000000000..a97d7a90864 --- /dev/null +++ b/sdk/python/pulumi_aws/cloudfront/keyvaluestore_key.py @@ -0,0 +1,324 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['KeyvaluestoreKeyArgs', 'KeyvaluestoreKey'] + +@pulumi.input_type +class KeyvaluestoreKeyArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + key_value_store_arn: pulumi.Input[str], + value: pulumi.Input[str]): + """ + The set of arguments for constructing a KeyvaluestoreKey resource. + :param pulumi.Input[str] key: Key to put. + :param pulumi.Input[str] key_value_store_arn: Amazon Resource Name (ARN) of the Key Value Store. + :param pulumi.Input[str] value: Value to put. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "key_value_store_arn", key_value_store_arn) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + Key to put. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter(name="keyValueStoreArn") + def key_value_store_arn(self) -> pulumi.Input[str]: + """ + Amazon Resource Name (ARN) of the Key Value Store. + """ + return pulumi.get(self, "key_value_store_arn") + + @key_value_store_arn.setter + def key_value_store_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "key_value_store_arn", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Value to put. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class _KeyvaluestoreKeyState: + def __init__(__self__, *, + key: Optional[pulumi.Input[str]] = None, + key_value_store_arn: Optional[pulumi.Input[str]] = None, + total_size_in_bytes: Optional[pulumi.Input[int]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering KeyvaluestoreKey resources. + :param pulumi.Input[str] key: Key to put. + :param pulumi.Input[str] key_value_store_arn: Amazon Resource Name (ARN) of the Key Value Store. + :param pulumi.Input[int] total_size_in_bytes: Total size of the Key Value Store in bytes. + :param pulumi.Input[str] value: Value to put. + """ + if key is not None: + pulumi.set(__self__, "key", key) + if key_value_store_arn is not None: + pulumi.set(__self__, "key_value_store_arn", key_value_store_arn) + if total_size_in_bytes is not None: + pulumi.set(__self__, "total_size_in_bytes", total_size_in_bytes) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input[str]]: + """ + Key to put. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter(name="keyValueStoreArn") + def key_value_store_arn(self) -> Optional[pulumi.Input[str]]: + """ + Amazon Resource Name (ARN) of the Key Value Store. + """ + return pulumi.get(self, "key_value_store_arn") + + @key_value_store_arn.setter + def key_value_store_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_value_store_arn", value) + + @property + @pulumi.getter(name="totalSizeInBytes") + def total_size_in_bytes(self) -> Optional[pulumi.Input[int]]: + """ + Total size of the Key Value Store in bytes. + """ + return pulumi.get(self, "total_size_in_bytes") + + @total_size_in_bytes.setter + def total_size_in_bytes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "total_size_in_bytes", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + Value to put. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +class KeyvaluestoreKey(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + key_value_store_arn: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS CloudFront KeyValueStore Key. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.cloudfront.KeyValueStore("example", + name="ExampleKeyValueStore", + comment="This is an example key value store") + example_keyvaluestore_key = aws.cloudfront.KeyvaluestoreKey("example", + key_value_store_arn=example.arn, + key="Test Key", + value="Test Value") + ``` + + + ## Import + + Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: + + ```sh + $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] key: Key to put. + :param pulumi.Input[str] key_value_store_arn: Amazon Resource Name (ARN) of the Key Value Store. + :param pulumi.Input[str] value: Value to put. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: KeyvaluestoreKeyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS CloudFront KeyValueStore Key. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.cloudfront.KeyValueStore("example", + name="ExampleKeyValueStore", + comment="This is an example key value store") + example_keyvaluestore_key = aws.cloudfront.KeyvaluestoreKey("example", + key_value_store_arn=example.arn, + key="Test Key", + value="Test Value") + ``` + + + ## Import + + Using `pulumi import`, import CloudFront KeyValueStore Key using the `id`. For example: + + ```sh + $ pulumi import aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey example arn:aws:cloudfront::111111111111:key-value-store/8562g61f-caba-2845-9d99-b97diwae5d3c,someKey + ``` + + :param str resource_name: The name of the resource. + :param KeyvaluestoreKeyArgs 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(KeyvaluestoreKeyArgs, 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, + key: Optional[pulumi.Input[str]] = None, + key_value_store_arn: Optional[pulumi.Input[str]] = None, + value: 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__ = KeyvaluestoreKeyArgs.__new__(KeyvaluestoreKeyArgs) + + if key is None and not opts.urn: + raise TypeError("Missing required property 'key'") + __props__.__dict__["key"] = key + if key_value_store_arn is None and not opts.urn: + raise TypeError("Missing required property 'key_value_store_arn'") + __props__.__dict__["key_value_store_arn"] = key_value_store_arn + if value is None and not opts.urn: + raise TypeError("Missing required property 'value'") + __props__.__dict__["value"] = value + __props__.__dict__["total_size_in_bytes"] = None + super(KeyvaluestoreKey, __self__).__init__( + 'aws:cloudfront/keyvaluestoreKey:KeyvaluestoreKey', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + key: Optional[pulumi.Input[str]] = None, + key_value_store_arn: Optional[pulumi.Input[str]] = None, + total_size_in_bytes: Optional[pulumi.Input[int]] = None, + value: Optional[pulumi.Input[str]] = None) -> 'KeyvaluestoreKey': + """ + Get an existing KeyvaluestoreKey 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] key: Key to put. + :param pulumi.Input[str] key_value_store_arn: Amazon Resource Name (ARN) of the Key Value Store. + :param pulumi.Input[int] total_size_in_bytes: Total size of the Key Value Store in bytes. + :param pulumi.Input[str] value: Value to put. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _KeyvaluestoreKeyState.__new__(_KeyvaluestoreKeyState) + + __props__.__dict__["key"] = key + __props__.__dict__["key_value_store_arn"] = key_value_store_arn + __props__.__dict__["total_size_in_bytes"] = total_size_in_bytes + __props__.__dict__["value"] = value + return KeyvaluestoreKey(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def key(self) -> pulumi.Output[str]: + """ + Key to put. + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter(name="keyValueStoreArn") + def key_value_store_arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the Key Value Store. + """ + return pulumi.get(self, "key_value_store_arn") + + @property + @pulumi.getter(name="totalSizeInBytes") + def total_size_in_bytes(self) -> pulumi.Output[int]: + """ + Total size of the Key Value Store in bytes. + """ + return pulumi.get(self, "total_size_in_bytes") + + @property + @pulumi.getter + def value(self) -> pulumi.Output[str]: + """ + Value to put. + """ + return pulumi.get(self, "value") + diff --git a/sdk/python/pulumi_aws/config/outputs.py b/sdk/python/pulumi_aws/config/outputs.py index 4a3f94efd3c..bff08a6d5bc 100644 --- a/sdk/python/pulumi_aws/config/outputs.py +++ b/sdk/python/pulumi_aws/config/outputs.py @@ -321,6 +321,7 @@ def __init__(__self__, *, dataexchange: Optional[str] = None, datapipeline: Optional[str] = None, datasync: Optional[str] = None, + datazone: Optional[str] = None, dax: Optional[str] = None, deploy: Optional[str] = None, detective: Optional[str] = None, @@ -431,6 +432,7 @@ def __init__(__self__, *, organizations: Optional[str] = None, osis: Optional[str] = None, outposts: Optional[str] = None, + paymentcryptography: Optional[str] = None, pcaconnectorad: Optional[str] = None, pinpoint: Optional[str] = None, pipes: Optional[str] = None, @@ -596,6 +598,7 @@ def __init__(__self__, *, :param str dataexchange: Use this to override the default service endpoint URL :param str datapipeline: Use this to override the default service endpoint URL :param str datasync: Use this to override the default service endpoint URL + :param str datazone: Use this to override the default service endpoint URL :param str dax: Use this to override the default service endpoint URL :param str deploy: Use this to override the default service endpoint URL :param str detective: Use this to override the default service endpoint URL @@ -706,6 +709,7 @@ def __init__(__self__, *, :param str organizations: Use this to override the default service endpoint URL :param str osis: Use this to override the default service endpoint URL :param str outposts: Use this to override the default service endpoint URL + :param str paymentcryptography: Use this to override the default service endpoint URL :param str pcaconnectorad: Use this to override the default service endpoint URL :param str pinpoint: Use this to override the default service endpoint URL :param str pipes: Use this to override the default service endpoint URL @@ -955,6 +959,8 @@ def __init__(__self__, *, pulumi.set(__self__, "datapipeline", datapipeline) if datasync is not None: pulumi.set(__self__, "datasync", datasync) + if datazone is not None: + pulumi.set(__self__, "datazone", datazone) if dax is not None: pulumi.set(__self__, "dax", dax) if deploy is not None: @@ -1175,6 +1181,8 @@ def __init__(__self__, *, pulumi.set(__self__, "osis", osis) if outposts is not None: pulumi.set(__self__, "outposts", outposts) + if paymentcryptography is not None: + pulumi.set(__self__, "paymentcryptography", paymentcryptography) if pcaconnectorad is not None: pulumi.set(__self__, "pcaconnectorad", pcaconnectorad) if pinpoint is not None: @@ -2008,6 +2016,14 @@ def datasync(self) -> Optional[str]: """ return pulumi.get(self, "datasync") + @property + @pulumi.getter + def datazone(self) -> Optional[str]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "datazone") + @property @pulumi.getter def dax(self) -> Optional[str]: @@ -2888,6 +2904,14 @@ def outposts(self) -> Optional[str]: """ return pulumi.get(self, "outposts") + @property + @pulumi.getter + def paymentcryptography(self) -> Optional[str]: + """ + Use this to override the default service endpoint URL + """ + return pulumi.get(self, "paymentcryptography") + @property @pulumi.getter def pcaconnectorad(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/devopsguru/__init__.py b/sdk/python/pulumi_aws/devopsguru/__init__.py index d2e0a85e41a..1423d05bd8f 100644 --- a/sdk/python/pulumi_aws/devopsguru/__init__.py +++ b/sdk/python/pulumi_aws/devopsguru/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from .event_sources_config import * +from .notification_channel import * from .resource_collection import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/devopsguru/_inputs.py b/sdk/python/pulumi_aws/devopsguru/_inputs.py index b1c996b849d..81c4af4594d 100644 --- a/sdk/python/pulumi_aws/devopsguru/_inputs.py +++ b/sdk/python/pulumi_aws/devopsguru/_inputs.py @@ -12,6 +12,8 @@ __all__ = [ 'EventSourcesConfigEventSourceArgs', 'EventSourcesConfigEventSourceAmazonCodeGuruProfilerArgs', + 'NotificationChannelFiltersArgs', + 'NotificationChannelSnsArgs', 'ResourceCollectionCloudformationArgs', 'ResourceCollectionTagsArgs', ] @@ -61,6 +63,61 @@ def status(self, value: pulumi.Input[str]): pulumi.set(self, "status", value) +@pulumi.input_type +class NotificationChannelFiltersArgs: + def __init__(__self__, *, + message_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + severities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] message_types: Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] severities: Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + """ + if message_types is not None: + pulumi.set(__self__, "message_types", message_types) + if severities is not None: + pulumi.set(__self__, "severities", severities) + + @property + @pulumi.getter(name="messageTypes") + def message_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + """ + return pulumi.get(self, "message_types") + + @message_types.setter + def message_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "message_types", value) + + @property + @pulumi.getter + def severities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + """ + return pulumi.get(self, "severities") + + @severities.setter + def severities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "severities", value) + + +@pulumi.input_type +class NotificationChannelSnsArgs: + def __init__(__self__, *, + topic_arn: pulumi.Input[str]): + pulumi.set(__self__, "topic_arn", topic_arn) + + @property + @pulumi.getter(name="topicArn") + def topic_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "topic_arn") + + @topic_arn.setter + def topic_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "topic_arn", value) + + @pulumi.input_type class ResourceCollectionCloudformationArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/devopsguru/notification_channel.py b/sdk/python/pulumi_aws/devopsguru/notification_channel.py new file mode 100644 index 00000000000..9ff7e22485d --- /dev/null +++ b/sdk/python/pulumi_aws/devopsguru/notification_channel.py @@ -0,0 +1,290 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['NotificationChannelArgs', 'NotificationChannel'] + +@pulumi.input_type +class NotificationChannelArgs: + def __init__(__self__, *, + filters: Optional[pulumi.Input['NotificationChannelFiltersArgs']] = None, + sns: Optional[pulumi.Input['NotificationChannelSnsArgs']] = None): + """ + The set of arguments for constructing a NotificationChannel resource. + :param pulumi.Input['NotificationChannelFiltersArgs'] filters: Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + :param pulumi.Input['NotificationChannelSnsArgs'] sns: SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + if filters is not None: + pulumi.set(__self__, "filters", filters) + if sns is not None: + pulumi.set(__self__, "sns", sns) + + @property + @pulumi.getter + def filters(self) -> Optional[pulumi.Input['NotificationChannelFiltersArgs']]: + """ + Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + """ + return pulumi.get(self, "filters") + + @filters.setter + def filters(self, value: Optional[pulumi.Input['NotificationChannelFiltersArgs']]): + pulumi.set(self, "filters", value) + + @property + @pulumi.getter + def sns(self) -> Optional[pulumi.Input['NotificationChannelSnsArgs']]: + """ + SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + return pulumi.get(self, "sns") + + @sns.setter + def sns(self, value: Optional[pulumi.Input['NotificationChannelSnsArgs']]): + pulumi.set(self, "sns", value) + + +@pulumi.input_type +class _NotificationChannelState: + def __init__(__self__, *, + filters: Optional[pulumi.Input['NotificationChannelFiltersArgs']] = None, + sns: Optional[pulumi.Input['NotificationChannelSnsArgs']] = None): + """ + Input properties used for looking up and filtering NotificationChannel resources. + :param pulumi.Input['NotificationChannelFiltersArgs'] filters: Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + :param pulumi.Input['NotificationChannelSnsArgs'] sns: SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + if filters is not None: + pulumi.set(__self__, "filters", filters) + if sns is not None: + pulumi.set(__self__, "sns", sns) + + @property + @pulumi.getter + def filters(self) -> Optional[pulumi.Input['NotificationChannelFiltersArgs']]: + """ + Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + """ + return pulumi.get(self, "filters") + + @filters.setter + def filters(self, value: Optional[pulumi.Input['NotificationChannelFiltersArgs']]): + pulumi.set(self, "filters", value) + + @property + @pulumi.getter + def sns(self) -> Optional[pulumi.Input['NotificationChannelSnsArgs']]: + """ + SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + return pulumi.get(self, "sns") + + @sns.setter + def sns(self, value: Optional[pulumi.Input['NotificationChannelSnsArgs']]): + pulumi.set(self, "sns", value) + + +class NotificationChannel(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + filters: Optional[pulumi.Input[pulumi.InputType['NotificationChannelFiltersArgs']]] = None, + sns: Optional[pulumi.Input[pulumi.InputType['NotificationChannelSnsArgs']]] = None, + __props__=None): + """ + Resource for managing an AWS DevOps Guru Notification Channel. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.devopsguru.NotificationChannel("example", sns=aws.devopsguru.NotificationChannelSnsArgs( + topic_arn=example_aws_sns_topic["arn"], + )) + ``` + + + ### Filters + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.devopsguru.NotificationChannel("example", + sns=aws.devopsguru.NotificationChannelSnsArgs( + topic_arn=example_aws_sns_topic["arn"], + ), + filters=aws.devopsguru.NotificationChannelFiltersArgs( + message_types=["NEW_INSIGHT"], + severities=["HIGH"], + )) + ``` + + + ## Import + + Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: + + ```sh + $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['NotificationChannelFiltersArgs']] filters: Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + :param pulumi.Input[pulumi.InputType['NotificationChannelSnsArgs']] sns: SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[NotificationChannelArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS DevOps Guru Notification Channel. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.devopsguru.NotificationChannel("example", sns=aws.devopsguru.NotificationChannelSnsArgs( + topic_arn=example_aws_sns_topic["arn"], + )) + ``` + + + ### Filters + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.devopsguru.NotificationChannel("example", + sns=aws.devopsguru.NotificationChannelSnsArgs( + topic_arn=example_aws_sns_topic["arn"], + ), + filters=aws.devopsguru.NotificationChannelFiltersArgs( + message_types=["NEW_INSIGHT"], + severities=["HIGH"], + )) + ``` + + + ## Import + + Using `pulumi import`, import DevOps Guru Notification Channel using the `id`. For example: + + ```sh + $ pulumi import aws:devopsguru/notificationChannel:NotificationChannel example id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param NotificationChannelArgs 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(NotificationChannelArgs, 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, + filters: Optional[pulumi.Input[pulumi.InputType['NotificationChannelFiltersArgs']]] = None, + sns: Optional[pulumi.Input[pulumi.InputType['NotificationChannelSnsArgs']]] = 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__ = NotificationChannelArgs.__new__(NotificationChannelArgs) + + __props__.__dict__["filters"] = filters + __props__.__dict__["sns"] = sns + super(NotificationChannel, __self__).__init__( + 'aws:devopsguru/notificationChannel:NotificationChannel', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + filters: Optional[pulumi.Input[pulumi.InputType['NotificationChannelFiltersArgs']]] = None, + sns: Optional[pulumi.Input[pulumi.InputType['NotificationChannelSnsArgs']]] = None) -> 'NotificationChannel': + """ + Get an existing NotificationChannel resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['NotificationChannelFiltersArgs']] filters: Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + :param pulumi.Input[pulumi.InputType['NotificationChannelSnsArgs']] sns: SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _NotificationChannelState.__new__(_NotificationChannelState) + + __props__.__dict__["filters"] = filters + __props__.__dict__["sns"] = sns + return NotificationChannel(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def filters(self) -> pulumi.Output[Optional['outputs.NotificationChannelFilters']]: + """ + Filter configurations for the Amazon SNS notification topic See the `filters` argument reference below. + """ + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def sns(self) -> pulumi.Output[Optional['outputs.NotificationChannelSns']]: + """ + SNS noficiation channel configurations. See the `sns` argument reference below. + + The following arguments are optional: + """ + return pulumi.get(self, "sns") + diff --git a/sdk/python/pulumi_aws/devopsguru/outputs.py b/sdk/python/pulumi_aws/devopsguru/outputs.py index 734587eb79e..3a2dfba54d5 100644 --- a/sdk/python/pulumi_aws/devopsguru/outputs.py +++ b/sdk/python/pulumi_aws/devopsguru/outputs.py @@ -13,6 +13,8 @@ __all__ = [ 'EventSourcesConfigEventSource', 'EventSourcesConfigEventSourceAmazonCodeGuruProfiler', + 'NotificationChannelFilters', + 'NotificationChannelSns', 'ResourceCollectionCloudformation', 'ResourceCollectionTags', ] @@ -71,6 +73,83 @@ def status(self) -> str: return pulumi.get(self, "status") +@pulumi.output_type +class NotificationChannelFilters(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "messageTypes": + suggest = "message_types" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NotificationChannelFilters. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NotificationChannelFilters.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NotificationChannelFilters.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + message_types: Optional[Sequence[str]] = None, + severities: Optional[Sequence[str]] = None): + """ + :param Sequence[str] message_types: Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + :param Sequence[str] severities: Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + """ + if message_types is not None: + pulumi.set(__self__, "message_types", message_types) + if severities is not None: + pulumi.set(__self__, "severities", severities) + + @property + @pulumi.getter(name="messageTypes") + def message_types(self) -> Optional[Sequence[str]]: + """ + Events to receive notifications for. Valid values are `NEW_INSIGHT`, `CLOSED_INSIGHT`, `NEW_ASSOCIATION`, `SEVERITY_UPGRADED`, and `NEW_RECOMMENDATION`. + """ + return pulumi.get(self, "message_types") + + @property + @pulumi.getter + def severities(self) -> Optional[Sequence[str]]: + """ + Severity levels to receive notifications for. Valid values are `LOW`, `MEDIUM`, and `HIGH`. + """ + return pulumi.get(self, "severities") + + +@pulumi.output_type +class NotificationChannelSns(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "topicArn": + suggest = "topic_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NotificationChannelSns. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NotificationChannelSns.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NotificationChannelSns.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + topic_arn: str): + pulumi.set(__self__, "topic_arn", topic_arn) + + @property + @pulumi.getter(name="topicArn") + def topic_arn(self) -> str: + return pulumi.get(self, "topic_arn") + + @pulumi.output_type class ResourceCollectionCloudformation(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/dynamodb/__init__.py b/sdk/python/pulumi_aws/dynamodb/__init__.py index 4bfac402c36..428bb05b4c6 100644 --- a/sdk/python/pulumi_aws/dynamodb/__init__.py +++ b/sdk/python/pulumi_aws/dynamodb/__init__.py @@ -10,6 +10,7 @@ from .get_table_item import * from .global_table import * from .kinesis_streaming_destination import * +from .resource_policy import * from .table import * from .table_export import * from .table_item import * diff --git a/sdk/python/pulumi_aws/dynamodb/resource_policy.py b/sdk/python/pulumi_aws/dynamodb/resource_policy.py new file mode 100644 index 00000000000..13090441ad0 --- /dev/null +++ b/sdk/python/pulumi_aws/dynamodb/resource_policy.py @@ -0,0 +1,347 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['ResourcePolicyArgs', 'ResourcePolicy'] + +@pulumi.input_type +class ResourcePolicyArgs: + def __init__(__self__, *, + policy: pulumi.Input[str], + resource_arn: pulumi.Input[str], + confirm_remove_self_resource_access: Optional[pulumi.Input[bool]] = None): + """ + The set of arguments for constructing a ResourcePolicy resource. + :param pulumi.Input[str] policy: n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + :param pulumi.Input[bool] confirm_remove_self_resource_access: Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + """ + pulumi.set(__self__, "policy", policy) + pulumi.set(__self__, "resource_arn", resource_arn) + if confirm_remove_self_resource_access is not None: + pulumi.set(__self__, "confirm_remove_self_resource_access", confirm_remove_self_resource_access) + + @property + @pulumi.getter + def policy(self) -> pulumi.Input[str]: + """ + n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @policy.setter + def policy(self, value: pulumi.Input[str]): + pulumi.set(self, "policy", value) + + @property + @pulumi.getter(name="resourceArn") + def resource_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + """ + return pulumi.get(self, "resource_arn") + + @resource_arn.setter + def resource_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_arn", value) + + @property + @pulumi.getter(name="confirmRemoveSelfResourceAccess") + def confirm_remove_self_resource_access(self) -> Optional[pulumi.Input[bool]]: + """ + Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + """ + return pulumi.get(self, "confirm_remove_self_resource_access") + + @confirm_remove_self_resource_access.setter + def confirm_remove_self_resource_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "confirm_remove_self_resource_access", value) + + +@pulumi.input_type +class _ResourcePolicyState: + def __init__(__self__, *, + confirm_remove_self_resource_access: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + revision_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ResourcePolicy resources. + :param pulumi.Input[bool] confirm_remove_self_resource_access: Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + :param pulumi.Input[str] policy: n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + :param pulumi.Input[str] revision_id: A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + """ + if confirm_remove_self_resource_access is not None: + pulumi.set(__self__, "confirm_remove_self_resource_access", confirm_remove_self_resource_access) + if policy is not None: + pulumi.set(__self__, "policy", policy) + if resource_arn is not None: + pulumi.set(__self__, "resource_arn", resource_arn) + if revision_id is not None: + pulumi.set(__self__, "revision_id", revision_id) + + @property + @pulumi.getter(name="confirmRemoveSelfResourceAccess") + def confirm_remove_self_resource_access(self) -> Optional[pulumi.Input[bool]]: + """ + Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + """ + return pulumi.get(self, "confirm_remove_self_resource_access") + + @confirm_remove_self_resource_access.setter + def confirm_remove_self_resource_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "confirm_remove_self_resource_access", value) + + @property + @pulumi.getter + def policy(self) -> Optional[pulumi.Input[str]]: + """ + n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @policy.setter + def policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "policy", value) + + @property + @pulumi.getter(name="resourceArn") + def resource_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + """ + return pulumi.get(self, "resource_arn") + + @resource_arn.setter + def resource_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_arn", value) + + @property + @pulumi.getter(name="revisionId") + def revision_id(self) -> Optional[pulumi.Input[str]]: + """ + A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + """ + return pulumi.get(self, "revision_id") + + @revision_id.setter + def revision_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "revision_id", value) + + +class ResourcePolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + confirm_remove_self_resource_access: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ` + + Resource for managing an AWS DynamoDB Resource Policy. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.dynamodb.ResourcePolicy("example", + resource_arn=example_aws_dynamodb_table["arn"], + policy=test["json"]) + ``` + + + ## Import + + Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: + + ```sh + $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] confirm_remove_self_resource_access: Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + :param pulumi.Input[str] policy: n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResourcePolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ` + + Resource for managing an AWS DynamoDB Resource Policy. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.dynamodb.ResourcePolicy("example", + resource_arn=example_aws_dynamodb_table["arn"], + policy=test["json"]) + ``` + + + ## Import + + Using `pulumi import`, import DynamoDB Resource Policy using the `example_id_arg`. For example: + + ```sh + $ pulumi import aws:dynamodb/resourcePolicy:ResourcePolicy example arn:aws:dynamodb:us-east-1:1234567890:table/my-table + ``` + + :param str resource_name: The name of the resource. + :param ResourcePolicyArgs 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(ResourcePolicyArgs, 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, + confirm_remove_self_resource_access: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + resource_arn: 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__ = ResourcePolicyArgs.__new__(ResourcePolicyArgs) + + __props__.__dict__["confirm_remove_self_resource_access"] = confirm_remove_self_resource_access + if policy is None and not opts.urn: + raise TypeError("Missing required property 'policy'") + __props__.__dict__["policy"] = policy + if resource_arn is None and not opts.urn: + raise TypeError("Missing required property 'resource_arn'") + __props__.__dict__["resource_arn"] = resource_arn + __props__.__dict__["revision_id"] = None + super(ResourcePolicy, __self__).__init__( + 'aws:dynamodb/resourcePolicy:ResourcePolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + confirm_remove_self_resource_access: Optional[pulumi.Input[bool]] = None, + policy: Optional[pulumi.Input[str]] = None, + resource_arn: Optional[pulumi.Input[str]] = None, + revision_id: Optional[pulumi.Input[str]] = None) -> 'ResourcePolicy': + """ + Get an existing ResourcePolicy 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[bool] confirm_remove_self_resource_access: Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + :param pulumi.Input[str] policy: n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + :param pulumi.Input[str] resource_arn: The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + :param pulumi.Input[str] revision_id: A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ResourcePolicyState.__new__(_ResourcePolicyState) + + __props__.__dict__["confirm_remove_self_resource_access"] = confirm_remove_self_resource_access + __props__.__dict__["policy"] = policy + __props__.__dict__["resource_arn"] = resource_arn + __props__.__dict__["revision_id"] = revision_id + return ResourcePolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="confirmRemoveSelfResourceAccess") + def confirm_remove_self_resource_access(self) -> pulumi.Output[bool]: + """ + Set this parameter to true to confirm that you want to remove your permissions to change the policy of this resource in the future. + """ + return pulumi.get(self, "confirm_remove_self_resource_access") + + @property + @pulumi.getter + def policy(self) -> pulumi.Output[str]: + """ + n Amazon Web Services resource-based policy document in JSON format. The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that you should keep in mind while attaching a resource-based policy, see Resource-based policy considerations. + + The following arguments are optional: + """ + return pulumi.get(self, "policy") + + @property + @pulumi.getter(name="resourceArn") + def resource_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the DynamoDB resource to which the policy will be attached. The resources you can specify include tables and streams. You can control index permissions using the base table's policy. To specify the same permission level for your table and its indexes, you can provide both the table and index Amazon Resource Name (ARN)s in the Resource field of a given Statement in your policy document. Alternatively, to specify different permissions for your table, indexes, or both, you can define multiple Statement fields in your policy document. + """ + return pulumi.get(self, "resource_arn") + + @property + @pulumi.getter(name="revisionId") + def revision_id(self) -> pulumi.Output[str]: + """ + A unique string that represents the revision ID of the policy. If you are comparing revision IDs, make sure to always use string comparison logic. + """ + return pulumi.get(self, "revision_id") + diff --git a/sdk/python/pulumi_aws/ec2/__init__.py b/sdk/python/pulumi_aws/ec2/__init__.py index d3cc1665343..82bf8c474fd 100644 --- a/sdk/python/pulumi_aws/ec2/__init__.py +++ b/sdk/python/pulumi_aws/ec2/__init__.py @@ -90,6 +90,7 @@ from .get_vpn_gateway import * from .image_block_public_access import * from .instance import * +from .instance_metadata_defaults import * from .internet_gateway import * from .internet_gateway_attachment import * from .key_pair import * diff --git a/sdk/python/pulumi_aws/ec2/instance_metadata_defaults.py b/sdk/python/pulumi_aws/ec2/instance_metadata_defaults.py new file mode 100644 index 00000000000..1ca084f8891 --- /dev/null +++ b/sdk/python/pulumi_aws/ec2/instance_metadata_defaults.py @@ -0,0 +1,322 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['InstanceMetadataDefaultsArgs', 'InstanceMetadataDefaults'] + +@pulumi.input_type +class InstanceMetadataDefaultsArgs: + def __init__(__self__, *, + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a InstanceMetadataDefaults resource. + :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + :param pulumi.Input[str] http_tokens: Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[str] instance_metadata_tags: Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + if http_endpoint is not None: + pulumi.set(__self__, "http_endpoint", http_endpoint) + if http_put_response_hop_limit is not None: + pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + if http_tokens is not None: + pulumi.set(__self__, "http_tokens", http_tokens) + if instance_metadata_tags is not None: + pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + + @property + @pulumi.getter(name="httpEndpoint") + def http_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_endpoint") + + @http_endpoint.setter + def http_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "http_endpoint", value) + + @property + @pulumi.getter(name="httpPutResponseHopLimit") + def http_put_response_hop_limit(self) -> Optional[pulumi.Input[int]]: + """ + The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + """ + return pulumi.get(self, "http_put_response_hop_limit") + + @http_put_response_hop_limit.setter + def http_put_response_hop_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "http_put_response_hop_limit", value) + + @property + @pulumi.getter(name="httpTokens") + def http_tokens(self) -> Optional[pulumi.Input[str]]: + """ + Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_tokens") + + @http_tokens.setter + def http_tokens(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "http_tokens", value) + + @property + @pulumi.getter(name="instanceMetadataTags") + def instance_metadata_tags(self) -> Optional[pulumi.Input[str]]: + """ + Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "instance_metadata_tags") + + @instance_metadata_tags.setter + def instance_metadata_tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_metadata_tags", value) + + +@pulumi.input_type +class _InstanceMetadataDefaultsState: + def __init__(__self__, *, + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering InstanceMetadataDefaults resources. + :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + :param pulumi.Input[str] http_tokens: Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[str] instance_metadata_tags: Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + if http_endpoint is not None: + pulumi.set(__self__, "http_endpoint", http_endpoint) + if http_put_response_hop_limit is not None: + pulumi.set(__self__, "http_put_response_hop_limit", http_put_response_hop_limit) + if http_tokens is not None: + pulumi.set(__self__, "http_tokens", http_tokens) + if instance_metadata_tags is not None: + pulumi.set(__self__, "instance_metadata_tags", instance_metadata_tags) + + @property + @pulumi.getter(name="httpEndpoint") + def http_endpoint(self) -> Optional[pulumi.Input[str]]: + """ + Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_endpoint") + + @http_endpoint.setter + def http_endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "http_endpoint", value) + + @property + @pulumi.getter(name="httpPutResponseHopLimit") + def http_put_response_hop_limit(self) -> Optional[pulumi.Input[int]]: + """ + The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + """ + return pulumi.get(self, "http_put_response_hop_limit") + + @http_put_response_hop_limit.setter + def http_put_response_hop_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "http_put_response_hop_limit", value) + + @property + @pulumi.getter(name="httpTokens") + def http_tokens(self) -> Optional[pulumi.Input[str]]: + """ + Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_tokens") + + @http_tokens.setter + def http_tokens(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "http_tokens", value) + + @property + @pulumi.getter(name="instanceMetadataTags") + def instance_metadata_tags(self) -> Optional[pulumi.Input[str]]: + """ + Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "instance_metadata_tags") + + @instance_metadata_tags.setter + def instance_metadata_tags(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_metadata_tags", value) + + +class InstanceMetadataDefaults(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages regional EC2 instance metadata default settings. + More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. + + ## Example Usage + + + ```python + import pulumi + import pulumi_aws as aws + + enforce_imdsv2 = aws.ec2.InstanceMetadataDefaults("enforce-imdsv2", + http_tokens="required", + http_put_response_hop_limit=1) + ``` + + + ## Import + + You cannot import this resource. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + :param pulumi.Input[str] http_tokens: Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[str] instance_metadata_tags: Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[InstanceMetadataDefaultsArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages regional EC2 instance metadata default settings. + More information can be found in the [Configure instance metadata options for new instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) user guide. + + ## Example Usage + + + ```python + import pulumi + import pulumi_aws as aws + + enforce_imdsv2 = aws.ec2.InstanceMetadataDefaults("enforce-imdsv2", + http_tokens="required", + http_put_response_hop_limit=1) + ``` + + + ## Import + + You cannot import this resource. + + :param str resource_name: The name of the resource. + :param InstanceMetadataDefaultsArgs 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(InstanceMetadataDefaultsArgs, 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, + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: 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__ = InstanceMetadataDefaultsArgs.__new__(InstanceMetadataDefaultsArgs) + + __props__.__dict__["http_endpoint"] = http_endpoint + __props__.__dict__["http_put_response_hop_limit"] = http_put_response_hop_limit + __props__.__dict__["http_tokens"] = http_tokens + __props__.__dict__["instance_metadata_tags"] = instance_metadata_tags + super(InstanceMetadataDefaults, __self__).__init__( + 'aws:ec2/instanceMetadataDefaults:InstanceMetadataDefaults', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + http_endpoint: Optional[pulumi.Input[str]] = None, + http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, + http_tokens: Optional[pulumi.Input[str]] = None, + instance_metadata_tags: Optional[pulumi.Input[str]] = None) -> 'InstanceMetadataDefaults': + """ + Get an existing InstanceMetadataDefaults 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] http_endpoint: Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + :param pulumi.Input[str] http_tokens: Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + :param pulumi.Input[str] instance_metadata_tags: Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _InstanceMetadataDefaultsState.__new__(_InstanceMetadataDefaultsState) + + __props__.__dict__["http_endpoint"] = http_endpoint + __props__.__dict__["http_put_response_hop_limit"] = http_put_response_hop_limit + __props__.__dict__["http_tokens"] = http_tokens + __props__.__dict__["instance_metadata_tags"] = instance_metadata_tags + return InstanceMetadataDefaults(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="httpEndpoint") + def http_endpoint(self) -> pulumi.Output[str]: + """ + Whether the metadata service is available. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_endpoint") + + @property + @pulumi.getter(name="httpPutResponseHopLimit") + def http_put_response_hop_limit(self) -> pulumi.Output[int]: + """ + The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`, or `-1` to indicate no preference. Default: `-1`. + """ + return pulumi.get(self, "http_put_response_hop_limit") + + @property + @pulumi.getter(name="httpTokens") + def http_tokens(self) -> pulumi.Output[str]: + """ + Whether the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"`, `"required"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "http_tokens") + + @property + @pulumi.getter(name="instanceMetadataTags") + def instance_metadata_tags(self) -> pulumi.Output[str]: + """ + Enables or disables access to instance tags from the instance metadata service. Can be `"enabled"`, `"disabled"`, or `"no-preference"`. Default: `"no-preference"`. + """ + return pulumi.get(self, "instance_metadata_tags") + diff --git a/sdk/python/pulumi_aws/ec2/vpc.py b/sdk/python/pulumi_aws/ec2/vpc.py index ffcc28ee3dc..5c59249dd89 100644 --- a/sdk/python/pulumi_aws/ec2/vpc.py +++ b/sdk/python/pulumi_aws/ec2/vpc.py @@ -260,6 +260,7 @@ def __init__(__self__, *, :param pulumi.Input[str] default_network_acl_id: The ID of the network ACL created by default on VPC creation :param pulumi.Input[str] default_route_table_id: The ID of the route table created by default on VPC creation :param pulumi.Input[str] default_security_group_id: The ID of the security group created by default on VPC creation + :param pulumi.Input[str] dhcp_options_id: DHCP options id of the desired VPC. :param pulumi.Input[bool] enable_dns_hostnames: A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. :param pulumi.Input[bool] enable_dns_support: A boolean flag to enable/disable DNS support in the VPC. Defaults to true. :param pulumi.Input[bool] enable_network_address_usage_metrics: Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. @@ -401,6 +402,9 @@ def default_security_group_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="dhcpOptionsId") def dhcp_options_id(self) -> Optional[pulumi.Input[str]]: + """ + DHCP options id of the desired VPC. + """ return pulumi.get(self, "dhcp_options_id") @dhcp_options_id.setter @@ -866,6 +870,7 @@ def get(resource_name: str, :param pulumi.Input[str] default_network_acl_id: The ID of the network ACL created by default on VPC creation :param pulumi.Input[str] default_route_table_id: The ID of the route table created by default on VPC creation :param pulumi.Input[str] default_security_group_id: The ID of the security group created by default on VPC creation + :param pulumi.Input[str] dhcp_options_id: DHCP options id of the desired VPC. :param pulumi.Input[bool] enable_dns_hostnames: A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. :param pulumi.Input[bool] enable_dns_support: A boolean flag to enable/disable DNS support in the VPC. Defaults to true. :param pulumi.Input[bool] enable_network_address_usage_metrics: Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. @@ -963,6 +968,9 @@ def default_security_group_id(self) -> pulumi.Output[str]: @property @pulumi.getter(name="dhcpOptionsId") def dhcp_options_id(self) -> pulumi.Output[str]: + """ + DHCP options id of the desired VPC. + """ return pulumi.get(self, "dhcp_options_id") @property diff --git a/sdk/python/pulumi_aws/ec2/vpc_ipam.py b/sdk/python/pulumi_aws/ec2/vpc_ipam.py index ecddf62849d..1f2ff816b5d 100644 --- a/sdk/python/pulumi_aws/ec2/vpc_ipam.py +++ b/sdk/python/pulumi_aws/ec2/vpc_ipam.py @@ -19,13 +19,15 @@ def __init__(__self__, *, operating_regions: pulumi.Input[Sequence[pulumi.Input['VpcIpamOperatingRegionArgs']]], cascade: Optional[pulumi.Input[bool]] = None, description: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a VpcIpam resource. :param pulumi.Input[Sequence[pulumi.Input['VpcIpamOperatingRegionArgs']]] operating_regions: Determines which locales can be chosen when you create pools. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the region_name parameter. You **must** set your provider block region as an operating_region. :param pulumi.Input[bool] cascade: Enables you to quickly delete an IPAM, private scopes, pools in private scopes, and any allocations in the pools in private scopes. :param pulumi.Input[str] description: A description for the IPAM. :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. + :param pulumi.Input[str] tier: specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. """ pulumi.set(__self__, "operating_regions", operating_regions) if cascade is not None: @@ -34,6 +36,8 @@ def __init__(__self__, *, pulumi.set(__self__, "description", description) if tags is not None: pulumi.set(__self__, "tags", tags) + if tier is not None: + pulumi.set(__self__, "tier", tier) @property @pulumi.getter(name="operatingRegions") @@ -83,6 +87,18 @@ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags", value) + @property + @pulumi.getter + def tier(self) -> Optional[pulumi.Input[str]]: + """ + specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + """ + return pulumi.get(self, "tier") + + @tier.setter + def tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tier", value) + @pulumi.input_type class _VpcIpamState: @@ -97,7 +113,8 @@ def __init__(__self__, *, public_default_scope_id: Optional[pulumi.Input[str]] = None, scope_count: Optional[pulumi.Input[int]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering VpcIpam resources. :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of IPAM @@ -112,6 +129,7 @@ def __init__(__self__, *, :param pulumi.Input[int] scope_count: The number of scopes in the IPAM. :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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tier: specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. """ if arn is not None: pulumi.set(__self__, "arn", arn) @@ -138,6 +156,8 @@ def __init__(__self__, *, 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 tier is not None: + pulumi.set(__self__, "tier", tier) @property @pulumi.getter @@ -275,6 +295,18 @@ def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: def tags_all(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "tags_all", value) + @property + @pulumi.getter + def tier(self) -> Optional[pulumi.Input[str]]: + """ + specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + """ + return pulumi.get(self, "tier") + + @tier.setter + def tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tier", value) + class VpcIpam(pulumi.CustomResource): @overload @@ -285,6 +317,7 @@ def __init__(__self__, description: Optional[pulumi.Input[str]] = None, operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpcIpamOperatingRegionArgs']]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, __props__=None): """ Provides an IPAM resource. @@ -326,6 +359,7 @@ def __init__(__self__, :param pulumi.Input[str] description: A description for the IPAM. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpcIpamOperatingRegionArgs']]]] operating_regions: Determines which locales can be chosen when you create pools. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. You specify a region using the region_name parameter. You **must** set your provider block region as an operating_region. :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. + :param pulumi.Input[str] tier: specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. """ ... @overload @@ -386,6 +420,7 @@ def _internal_init(__self__, description: Optional[pulumi.Input[str]] = None, operating_regions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpcIpamOperatingRegionArgs']]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -401,6 +436,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'operating_regions'") __props__.__dict__["operating_regions"] = operating_regions __props__.__dict__["tags"] = tags + __props__.__dict__["tier"] = tier __props__.__dict__["arn"] = None __props__.__dict__["default_resource_discovery_association_id"] = None __props__.__dict__["default_resource_discovery_id"] = None @@ -428,7 +464,8 @@ def get(resource_name: str, public_default_scope_id: Optional[pulumi.Input[str]] = None, scope_count: Optional[pulumi.Input[int]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'VpcIpam': + tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + tier: Optional[pulumi.Input[str]] = None) -> 'VpcIpam': """ Get an existing VpcIpam resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -448,6 +485,7 @@ def get(resource_name: str, :param pulumi.Input[int] scope_count: The number of scopes in the IPAM. :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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + :param pulumi.Input[str] tier: specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -464,6 +502,7 @@ def get(resource_name: str, __props__.__dict__["scope_count"] = scope_count __props__.__dict__["tags"] = tags __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["tier"] = tier return VpcIpam(resource_name, opts=opts, __props__=__props__) @property @@ -558,3 +597,11 @@ def tags_all(self) -> pulumi.Output[Mapping[str, str]]: return pulumi.get(self, "tags_all") + @property + @pulumi.getter + def tier(self) -> pulumi.Output[Optional[str]]: + """ + specifies the IPAM tier. Valid options include `free` and `advanced`. Default is `advanced`. + """ + return pulumi.get(self, "tier") + diff --git a/sdk/python/pulumi_aws/ec2/vpn_connection.py b/sdk/python/pulumi_aws/ec2/vpn_connection.py index a0df5c3f90e..6db8c8209c1 100644 --- a/sdk/python/pulumi_aws/ec2/vpn_connection.py +++ b/sdk/python/pulumi_aws/ec2/vpn_connection.py @@ -79,7 +79,7 @@ def __init__(__self__, *, :param pulumi.Input[str] local_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. :param pulumi.Input[str] outside_ip_address_type: Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` :param pulumi.Input[str] remote_ipv4_network_cidr: The IPv4 CIDR on the AWS side of the VPN connection. - :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the AWS side of the VPN connection. :param pulumi.Input[bool] static_routes_only: Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. 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[str] transit_gateway_id: The ID of the EC2 Transit Gateway. @@ -322,7 +322,7 @@ def remote_ipv4_network_cidr(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="remoteIpv6NetworkCidr") def remote_ipv6_network_cidr(self) -> Optional[pulumi.Input[str]]: """ - The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + The IPv6 CIDR on the AWS side of the VPN connection. """ return pulumi.get(self, "remote_ipv6_network_cidr") @@ -970,7 +970,7 @@ def __init__(__self__, *, :param pulumi.Input[str] local_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. :param pulumi.Input[str] outside_ip_address_type: Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` :param pulumi.Input[str] remote_ipv4_network_cidr: The IPv4 CIDR on the AWS side of the VPN connection. - :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the AWS side of the VPN connection. :param pulumi.Input[Sequence[pulumi.Input['VpnConnectionRouteArgs']]] routes: The static routes associated with the VPN connection. Detailed below. :param pulumi.Input[bool] static_routes_only: Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -1305,7 +1305,7 @@ def remote_ipv4_network_cidr(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="remoteIpv6NetworkCidr") def remote_ipv6_network_cidr(self) -> Optional[pulumi.Input[str]]: """ - The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + The IPv6 CIDR on the AWS side of the VPN connection. """ return pulumi.get(self, "remote_ipv6_network_cidr") @@ -2213,7 +2213,7 @@ def __init__(__self__, :param pulumi.Input[str] local_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. :param pulumi.Input[str] outside_ip_address_type: Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` :param pulumi.Input[str] remote_ipv4_network_cidr: The IPv4 CIDR on the AWS side of the VPN connection. - :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the AWS side of the VPN connection. :param pulumi.Input[bool] static_routes_only: Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. 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[str] transit_gateway_id: The ID of the EC2 Transit Gateway. @@ -2619,7 +2619,7 @@ def get(resource_name: str, :param pulumi.Input[str] local_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. :param pulumi.Input[str] outside_ip_address_type: Indicates if a Public S2S VPN or Private S2S VPN over AWS Direct Connect. Valid values are `PublicIpv4 | PrivateIpv4` :param pulumi.Input[str] remote_ipv4_network_cidr: The IPv4 CIDR on the AWS side of the VPN connection. - :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + :param pulumi.Input[str] remote_ipv6_network_cidr: The IPv6 CIDR on the AWS side of the VPN connection. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpnConnectionRouteArgs']]]] routes: The static routes associated with the VPN connection. Detailed below. :param pulumi.Input[bool] static_routes_only: Whether the VPN connection uses static routes exclusively. Static routes must be used for devices that don't support BGP. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Tags to apply to the connection. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. @@ -2844,7 +2844,7 @@ def remote_ipv4_network_cidr(self) -> pulumi.Output[str]: @pulumi.getter(name="remoteIpv6NetworkCidr") def remote_ipv6_network_cidr(self) -> pulumi.Output[str]: """ - The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection. + The IPv6 CIDR on the AWS side of the VPN connection. """ return pulumi.get(self, "remote_ipv6_network_cidr") diff --git a/sdk/python/pulumi_aws/glacier/vault_lock.py b/sdk/python/pulumi_aws/glacier/vault_lock.py index 632bbf291bb..c4ecb87074c 100644 --- a/sdk/python/pulumi_aws/glacier/vault_lock.py +++ b/sdk/python/pulumi_aws/glacier/vault_lock.py @@ -163,12 +163,6 @@ def __init__(__self__, vault_name: Optional[pulumi.Input[str]] = None, __props__=None): """ - Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. - - > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `complete_lock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `complete_lock` argument to `true`. When changing `complete_lock` to `true`, it is expected the resource will show as recreating. - - !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignore_deletion_error` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. - ## Example Usage ### Testing Glacier Vault Lock Policy @@ -232,12 +226,6 @@ def __init__(__self__, args: VaultLockArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Manages a Glacier Vault Lock. You can refer to the [Glacier Developer Guide](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) for a full explanation of the Glacier Vault Lock functionality. - - > **NOTE:** This resource allows you to test Glacier Vault Lock policies by setting the `complete_lock` argument to `false`. When testing policies in this manner, the Glacier Vault Lock automatically expires after 24 hours and this provider will show this resource as needing recreation after that time. To permanently apply the policy, set the `complete_lock` argument to `true`. When changing `complete_lock` to `true`, it is expected the resource will show as recreating. - - !> **WARNING:** Once a Glacier Vault Lock is completed, it is immutable. The deletion of the Glacier Vault Lock is not be possible and attempting to remove it from this provider will return an error. Set the `ignore_deletion_error` argument to `true` and apply this configuration before attempting to delete this resource via this provider or remove this resource from this provider's management. - ## Example Usage ### Testing Glacier Vault Lock Policy diff --git a/sdk/python/pulumi_aws/iam/group_policy.py b/sdk/python/pulumi_aws/iam/group_policy.py index c553585720b..4ddbf4d8b02 100644 --- a/sdk/python/pulumi_aws/iam/group_policy.py +++ b/sdk/python/pulumi_aws/iam/group_policy.py @@ -174,6 +174,8 @@ def __init__(__self__, """ Provides an IAM policy attached to a group. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage @@ -225,6 +227,8 @@ def __init__(__self__, """ Provides an IAM policy attached to a group. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage diff --git a/sdk/python/pulumi_aws/iam/instance_profile.py b/sdk/python/pulumi_aws/iam/instance_profile.py index b7ea55bffc5..db04db5cfda 100644 --- a/sdk/python/pulumi_aws/iam/instance_profile.py +++ b/sdk/python/pulumi_aws/iam/instance_profile.py @@ -21,7 +21,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a InstanceProfile resource. - :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] path: Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including most punctuation characters, digits, and upper and lowercase letters. :param pulumi.Input[str] role: Name of the role to add to the profile. @@ -42,7 +42,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. """ return pulumi.get(self, "name") @@ -115,7 +115,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering InstanceProfile resources. :param pulumi.Input[str] arn: ARN assigned by AWS to the instance profile. :param pulumi.Input[str] create_date: Creation timestamp of the instance profile. - :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] path: Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including most punctuation characters, digits, and upper and lowercase letters. :param pulumi.Input[str] role: Name of the role to add to the profile. @@ -173,7 +173,7 @@ def create_date(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. """ return pulumi.get(self, "name") @@ -271,6 +271,8 @@ def __init__(__self__, """ Provides an IAM instance profile. + > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. + ## Example Usage @@ -306,7 +308,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] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] path: Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including most punctuation characters, digits, and upper and lowercase letters. :param pulumi.Input[str] role: Name of the role to add to the profile. @@ -321,6 +323,8 @@ def __init__(__self__, """ Provides an IAM instance profile. + > **NOTE:** When managing instance profiles, remember that the `name` attribute must always be unique. This means that even if you have different `role` or `path` values, duplicating an existing instance profile `name` will lead to an `EntityAlreadyExists` error. + ## Example Usage @@ -420,7 +424,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] arn: ARN assigned by AWS to the instance profile. :param pulumi.Input[str] create_date: Creation timestamp of the instance profile. - :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + :param pulumi.Input[str] name: Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. :param pulumi.Input[str] path: Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including most punctuation characters, digits, and upper and lowercase letters. :param pulumi.Input[str] role: Name of the role to add to the profile. @@ -463,7 +467,7 @@ def create_date(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. The `name` must be unique, regardless of the `path` or `role`. In other words, if there are different `role` or `path` values but the same `name` as an existing instance profile, it will still cause an `EntityAlreadyExists` error. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws/iam/policy.py b/sdk/python/pulumi_aws/iam/policy.py index 3c2933328db..6ee9fc402f8 100644 --- a/sdk/python/pulumi_aws/iam/policy.py +++ b/sdk/python/pulumi_aws/iam/policy.py @@ -22,12 +22,11 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Policy resource. - :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. + :param pulumi.Input[str] policy: Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide :param pulumi.Input[str] description: Description of the IAM policy. - :param pulumi.Input[str] name: The name of the policy. If omitted, the provider will assign a random, unique name. + :param pulumi.Input[str] name: Name of the policy. If omitted, the provider will assign a random, unique name. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. - :param pulumi.Input[str] path: Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + :param pulumi.Input[str] path: Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ pulumi.set(__self__, "policy", policy) @@ -46,7 +45,7 @@ def __init__(__self__, *, @pulumi.getter def policy(self) -> pulumi.Input[str]: """ - The policy document. This is a JSON formatted string. + Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide """ return pulumi.get(self, "policy") @@ -70,7 +69,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - The name of the policy. If omitted, the provider will assign a random, unique name. + Name of the policy. If omitted, the provider will assign a random, unique name. """ return pulumi.get(self, "name") @@ -94,8 +93,7 @@ def name_prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def path(self) -> Optional[pulumi.Input[str]]: """ - Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. """ return pulumi.get(self, "path") @@ -130,14 +128,13 @@ def __init__(__self__, *, tags_all: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering Policy resources. - :param pulumi.Input[str] arn: The ARN assigned by AWS to this policy. + :param pulumi.Input[str] arn: ARN assigned by AWS to this policy. :param pulumi.Input[str] description: Description of the IAM policy. - :param pulumi.Input[str] name: The name of the policy. If omitted, the provider will assign a random, unique name. + :param pulumi.Input[str] name: Name of the policy. If omitted, the provider will assign a random, unique name. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. - :param pulumi.Input[str] path: Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. - :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. - :param pulumi.Input[str] policy_id: The policy's ID. + :param pulumi.Input[str] path: Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + :param pulumi.Input[str] policy: Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide + :param pulumi.Input[str] policy_id: Policy's ID. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. 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[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -167,7 +164,7 @@ def __init__(__self__, *, @pulumi.getter def arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN assigned by AWS to this policy. + ARN assigned by AWS to this policy. """ return pulumi.get(self, "arn") @@ -191,7 +188,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - The name of the policy. If omitted, the provider will assign a random, unique name. + Name of the policy. If omitted, the provider will assign a random, unique name. """ return pulumi.get(self, "name") @@ -215,8 +212,7 @@ def name_prefix(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def path(self) -> Optional[pulumi.Input[str]]: """ - Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. """ return pulumi.get(self, "path") @@ -228,7 +224,7 @@ def path(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def policy(self) -> Optional[pulumi.Input[str]]: """ - The policy document. This is a JSON formatted string. + Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide """ return pulumi.get(self, "policy") @@ -240,7 +236,7 @@ def policy(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="policyId") def policy_id(self) -> Optional[pulumi.Input[str]]: """ - The policy's ID. + Policy's ID. """ return pulumi.get(self, "policy_id") @@ -291,6 +287,8 @@ def __init__(__self__, """ Provides an IAM policy. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage @@ -325,11 +323,10 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Description of the IAM policy. - :param pulumi.Input[str] name: The name of the policy. If omitted, the provider will assign a random, unique name. + :param pulumi.Input[str] name: Name of the policy. If omitted, the provider will assign a random, unique name. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. - :param pulumi.Input[str] path: Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. - :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. + :param pulumi.Input[str] path: Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + :param pulumi.Input[str] policy: Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ ... @@ -341,6 +338,8 @@ def __init__(__self__, """ Provides an IAM policy. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage @@ -439,14 +438,13 @@ def get(resource_name: str, :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: The ARN assigned by AWS to this policy. + :param pulumi.Input[str] arn: ARN assigned by AWS to this policy. :param pulumi.Input[str] description: Description of the IAM policy. - :param pulumi.Input[str] name: The name of the policy. If omitted, the provider will assign a random, unique name. + :param pulumi.Input[str] name: Name of the policy. If omitted, the provider will assign a random, unique name. :param pulumi.Input[str] name_prefix: Creates a unique name beginning with the specified prefix. Conflicts with `name`. - :param pulumi.Input[str] path: Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. - :param pulumi.Input[str] policy: The policy document. This is a JSON formatted string. - :param pulumi.Input[str] policy_id: The policy's ID. + :param pulumi.Input[str] path: Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + :param pulumi.Input[str] policy: Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide + :param pulumi.Input[str] policy_id: Policy's ID. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of resource tags for the IAM Policy. 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[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. """ @@ -469,7 +467,7 @@ def get(resource_name: str, @pulumi.getter def arn(self) -> pulumi.Output[str]: """ - The ARN assigned by AWS to this policy. + ARN assigned by AWS to this policy. """ return pulumi.get(self, "arn") @@ -485,7 +483,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - The name of the policy. If omitted, the provider will assign a random, unique name. + Name of the policy. If omitted, the provider will assign a random, unique name. """ return pulumi.get(self, "name") @@ -501,8 +499,7 @@ def name_prefix(self) -> pulumi.Output[str]: @pulumi.getter def path(self) -> pulumi.Output[Optional[str]]: """ - Path in which to create the policy. - See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path in which to create the policy. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. """ return pulumi.get(self, "path") @@ -510,7 +507,7 @@ def path(self) -> pulumi.Output[Optional[str]]: @pulumi.getter def policy(self) -> pulumi.Output[str]: """ - The policy document. This is a JSON formatted string. + Policy document. This is a JSON formatted string. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide """ return pulumi.get(self, "policy") @@ -518,7 +515,7 @@ def policy(self) -> pulumi.Output[str]: @pulumi.getter(name="policyId") def policy_id(self) -> pulumi.Output[str]: """ - The policy's ID. + Policy's ID. """ return pulumi.get(self, "policy_id") diff --git a/sdk/python/pulumi_aws/iam/role.py b/sdk/python/pulumi_aws/iam/role.py index 73bfa55328e..14dd36927cf 100644 --- a/sdk/python/pulumi_aws/iam/role.py +++ b/sdk/python/pulumi_aws/iam/role.py @@ -482,6 +482,8 @@ def __init__(__self__, > **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `iam.PolicyAttachment`, `iam.RolePolicyAttachment`, and `iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage ### Basic Example @@ -683,6 +685,8 @@ def __init__(__self__, > **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `iam.PolicyAttachment`, `iam.RolePolicyAttachment`, and `iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage ### Basic Example diff --git a/sdk/python/pulumi_aws/iam/role_policy.py b/sdk/python/pulumi_aws/iam/role_policy.py index 49f4f679dd6..a749d0bfc48 100644 --- a/sdk/python/pulumi_aws/iam/role_policy.py +++ b/sdk/python/pulumi_aws/iam/role_policy.py @@ -176,6 +176,8 @@ def __init__(__self__, > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage @@ -239,6 +241,8 @@ def __init__(__self__, > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `inline_policy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage diff --git a/sdk/python/pulumi_aws/iam/user_policy.py b/sdk/python/pulumi_aws/iam/user_policy.py index 08fe0073689..6f160b46e1b 100644 --- a/sdk/python/pulumi_aws/iam/user_policy.py +++ b/sdk/python/pulumi_aws/iam/user_policy.py @@ -166,6 +166,8 @@ def __init__(__self__, """ Provides an IAM policy attached to a user. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage @@ -216,6 +218,8 @@ def __init__(__self__, """ Provides an IAM policy attached to a user. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage diff --git a/sdk/python/pulumi_aws/kinesis/_inputs.py b/sdk/python/pulumi_aws/kinesis/_inputs.py index a4b0fde46ea..401f36d5fb2 100644 --- a/sdk/python/pulumi_aws/kinesis/_inputs.py +++ b/sdk/python/pulumi_aws/kinesis/_inputs.py @@ -2588,7 +2588,7 @@ def __init__(__self__, *, parquet_ser_de: Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs']] = None): """ :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs'] orc_ser_de: Specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). See `orc_ser_de` block below for details. - :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs'] parquet_ser_de: Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + :param pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs'] parquet_ser_de: Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. """ if orc_ser_de is not None: pulumi.set(__self__, "orc_ser_de", orc_ser_de) @@ -2611,7 +2611,7 @@ def orc_ser_de(self, value: Optional[pulumi.Input['FirehoseDeliveryStreamExtende @pulumi.getter(name="parquetSerDe") def parquet_ser_de(self) -> Optional[pulumi.Input['FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs']]: """ - Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. """ return pulumi.get(self, "parquet_ser_de") diff --git a/sdk/python/pulumi_aws/kinesis/outputs.py b/sdk/python/pulumi_aws/kinesis/outputs.py index fd08c7b5853..f591b354574 100644 --- a/sdk/python/pulumi_aws/kinesis/outputs.py +++ b/sdk/python/pulumi_aws/kinesis/outputs.py @@ -2813,7 +2813,7 @@ def __init__(__self__, *, parquet_ser_de: Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe'] = None): """ :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs' orc_ser_de: Specifies converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/). See `orc_ser_de` block below for details. - :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs' parquet_ser_de: Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + :param 'FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDeArgs' parquet_ser_de: Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. """ if orc_ser_de is not None: pulumi.set(__self__, "orc_ser_de", orc_ser_de) @@ -2832,7 +2832,7 @@ def orc_ser_de(self) -> Optional['outputs.FirehoseDeliveryStreamExtendedS3Config @pulumi.getter(name="parquetSerDe") def parquet_ser_de(self) -> Optional['outputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerParquetSerDe']: """ - Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/documentation/latest/). More details below. + Specifies converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/). More details below. """ return pulumi.get(self, "parquet_ser_de") diff --git a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py index f5b7db2b903..6e92fc79382 100644 --- a/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py +++ b/sdk/python/pulumi_aws/kinesisanalyticsv2/application.py @@ -27,7 +27,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a Application resource. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input['ApplicationApplicationConfigurationArgs'] application_configuration: The application's configuration :param pulumi.Input['ApplicationCloudwatchLoggingOptionsArgs'] cloudwatch_logging_options: A CloudWatch log stream to monitor application configuration errors. @@ -58,7 +58,7 @@ def __init__(__self__, *, @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> pulumi.Input[str]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. """ return pulumi.get(self, "runtime_environment") @@ -191,7 +191,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] last_update_timestamp: The current timestamp when the application was last updated. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[str] status: The status of the application. @@ -333,7 +333,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> Optional[pulumi.Input[str]]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. """ return pulumi.get(self, "runtime_environment") @@ -662,7 +662,7 @@ def __init__(__self__, :param pulumi.Input[str] description: A summary description of the application. :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the application. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level @@ -988,7 +988,7 @@ def get(resource_name: str, :param pulumi.Input[bool] force_stop: Whether to force stop an unresponsive Flink-based application. :param pulumi.Input[str] last_update_timestamp: The current timestamp when the application was last updated. :param pulumi.Input[str] name: The name of the application. - :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + :param pulumi.Input[str] runtime_environment: The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. :param pulumi.Input[str] service_execution_role: The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources. :param pulumi.Input[bool] start_application: Whether to start or stop the application. :param pulumi.Input[str] status: The status of the application. @@ -1085,7 +1085,7 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter(name="runtimeEnvironment") def runtime_environment(self) -> pulumi.Output[str]: """ - The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`. + The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`. """ return pulumi.get(self, "runtime_environment") diff --git a/sdk/python/pulumi_aws/lakeformation/__init__.py b/sdk/python/pulumi_aws/lakeformation/__init__.py index ddf96f63b96..a72625c5135 100644 --- a/sdk/python/pulumi_aws/lakeformation/__init__.py +++ b/sdk/python/pulumi_aws/lakeformation/__init__.py @@ -13,6 +13,7 @@ from .lf_tag import * from .permissions import * from .resource import * +from .resource_lf_tag import * from .resource_lf_tags import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/lakeformation/_inputs.py b/sdk/python/pulumi_aws/lakeformation/_inputs.py index b8cf48fe9bf..7d38aa8377c 100644 --- a/sdk/python/pulumi_aws/lakeformation/_inputs.py +++ b/sdk/python/pulumi_aws/lakeformation/_inputs.py @@ -25,6 +25,12 @@ 'PermissionsLfTagPolicyExpressionArgs', 'PermissionsTableArgs', 'PermissionsTableWithColumnsArgs', + 'ResourceLfTagDatabaseArgs', + 'ResourceLfTagLfTagArgs', + 'ResourceLfTagTableArgs', + 'ResourceLfTagTableWithColumnsArgs', + 'ResourceLfTagTableWithColumnsColumnWildcardArgs', + 'ResourceLfTagTimeoutsArgs', 'ResourceLfTagsDatabaseArgs', 'ResourceLfTagsLfTagArgs', 'ResourceLfTagsTableArgs', @@ -816,6 +822,324 @@ def wildcard(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "wildcard", value) +@pulumi.input_type +class ResourceLfTagDatabaseArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + catalog_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: Name of the database resource. Unique to the Data Catalog. + + The following argument is optional: + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + pulumi.set(__self__, "name", name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name of the database resource. Unique to the Data Catalog. + + The following argument is optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + +@pulumi.input_type +class ResourceLfTagLfTagArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + value: pulumi.Input[str], + catalog_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] key: Key name for an existing LF-tag. + :param pulumi.Input[str] value: Value from the possible values for the LF-tag. + + The following argument is optional: + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + Key name for an existing LF-tag. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Value from the possible values for the LF-tag. + + The following argument is optional: + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + +@pulumi.input_type +class ResourceLfTagTableArgs: + def __init__(__self__, *, + database_name: pulumi.Input[str], + catalog_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + wildcard: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] database_name: Name of the database for the table. Unique to a Data Catalog. + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + :param pulumi.Input[str] name: Name of the table. + :param pulumi.Input[bool] wildcard: Whether to use a wildcard representing every table under a database. Defaults to `false`. + + The following arguments are optional: + """ + pulumi.set(__self__, "database_name", database_name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if name is not None: + pulumi.set(__self__, "name", name) + if wildcard is not None: + pulumi.set(__self__, "wildcard", wildcard) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> pulumi.Input[str]: + """ + Name of the database for the table. Unique to a Data Catalog. + """ + return pulumi.get(self, "database_name") + + @database_name.setter + def database_name(self, value: pulumi.Input[str]): + pulumi.set(self, "database_name", value) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the table. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def wildcard(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to use a wildcard representing every table under a database. Defaults to `false`. + + The following arguments are optional: + """ + return pulumi.get(self, "wildcard") + + @wildcard.setter + def wildcard(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "wildcard", value) + + +@pulumi.input_type +class ResourceLfTagTableWithColumnsArgs: + def __init__(__self__, *, + database_name: pulumi.Input[str], + name: pulumi.Input[str], + catalog_id: Optional[pulumi.Input[str]] = None, + column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + column_wildcard: Optional[pulumi.Input['ResourceLfTagTableWithColumnsColumnWildcardArgs']] = None): + """ + :param pulumi.Input[str] database_name: Name of the database for the table with columns resource. Unique to the Data Catalog. + :param pulumi.Input[str] name: Name of the table resource. + + The following arguments are optional: + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + :param pulumi.Input[Sequence[pulumi.Input[str]]] column_names: Set of column names for the table. + :param pulumi.Input['ResourceLfTagTableWithColumnsColumnWildcardArgs'] column_wildcard: Option to add column wildcard. See Column Wildcard for more details. + """ + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "name", name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if column_names is not None: + pulumi.set(__self__, "column_names", column_names) + if column_wildcard is not None: + pulumi.set(__self__, "column_wildcard", column_wildcard) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> pulumi.Input[str]: + """ + Name of the database for the table with columns resource. Unique to the Data Catalog. + """ + return pulumi.get(self, "database_name") + + @database_name.setter + def database_name(self, value: pulumi.Input[str]): + pulumi.set(self, "database_name", value) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + Name of the table resource. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + @property + @pulumi.getter(name="columnNames") + def column_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Set of column names for the table. + """ + return pulumi.get(self, "column_names") + + @column_names.setter + def column_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "column_names", value) + + @property + @pulumi.getter(name="columnWildcard") + def column_wildcard(self) -> Optional[pulumi.Input['ResourceLfTagTableWithColumnsColumnWildcardArgs']]: + """ + Option to add column wildcard. See Column Wildcard for more details. + """ + return pulumi.get(self, "column_wildcard") + + @column_wildcard.setter + def column_wildcard(self, value: Optional[pulumi.Input['ResourceLfTagTableWithColumnsColumnWildcardArgs']]): + pulumi.set(self, "column_wildcard", value) + + +@pulumi.input_type +class ResourceLfTagTableWithColumnsColumnWildcardArgs: + def __init__(__self__, *, + excluded_column_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + if excluded_column_names is not None: + pulumi.set(__self__, "excluded_column_names", excluded_column_names) + + @property + @pulumi.getter(name="excludedColumnNames") + def excluded_column_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "excluded_column_names") + + @excluded_column_names.setter + def excluded_column_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "excluded_column_names", value) + + +@pulumi.input_type +class ResourceLfTagTimeoutsArgs: + def __init__(__self__, *, + create: Optional[pulumi.Input[str]] = None, + delete: 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. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @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) + + @pulumi.input_type class ResourceLfTagsDatabaseArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/lakeformation/outputs.py b/sdk/python/pulumi_aws/lakeformation/outputs.py index f487113b7f1..f430627172c 100644 --- a/sdk/python/pulumi_aws/lakeformation/outputs.py +++ b/sdk/python/pulumi_aws/lakeformation/outputs.py @@ -26,6 +26,12 @@ 'PermissionsLfTagPolicyExpression', 'PermissionsTable', 'PermissionsTableWithColumns', + 'ResourceLfTagDatabase', + 'ResourceLfTagLfTag', + 'ResourceLfTagTable', + 'ResourceLfTagTableWithColumns', + 'ResourceLfTagTableWithColumnsColumnWildcard', + 'ResourceLfTagTimeouts', 'ResourceLfTagsDatabase', 'ResourceLfTagsLfTag', 'ResourceLfTagsTable', @@ -849,6 +855,349 @@ def wildcard(self) -> Optional[bool]: return pulumi.get(self, "wildcard") +@pulumi.output_type +class ResourceLfTagDatabase(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "catalogId": + suggest = "catalog_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceLfTagDatabase. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceLfTagDatabase.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceLfTagDatabase.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + name: str, + catalog_id: Optional[str] = None): + """ + :param str name: Name of the database resource. Unique to the Data Catalog. + + The following argument is optional: + :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + pulumi.set(__self__, "name", name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the database resource. Unique to the Data Catalog. + + The following argument is optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[str]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + +@pulumi.output_type +class ResourceLfTagLfTag(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "catalogId": + suggest = "catalog_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceLfTagLfTag. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceLfTagLfTag.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceLfTagLfTag.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + key: str, + value: str, + catalog_id: Optional[str] = None): + """ + :param str key: Key name for an existing LF-tag. + :param str value: Value from the possible values for the LF-tag. + + The following argument is optional: + :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + + @property + @pulumi.getter + def key(self) -> str: + """ + Key name for an existing LF-tag. + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> str: + """ + Value from the possible values for the LF-tag. + + The following argument is optional: + """ + return pulumi.get(self, "value") + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[str]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + +@pulumi.output_type +class ResourceLfTagTable(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "databaseName": + suggest = "database_name" + elif key == "catalogId": + suggest = "catalog_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceLfTagTable. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceLfTagTable.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceLfTagTable.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database_name: str, + catalog_id: Optional[str] = None, + name: Optional[str] = None, + wildcard: Optional[bool] = None): + """ + :param str database_name: Name of the database for the table. Unique to a Data Catalog. + :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + :param str name: Name of the table. + :param bool wildcard: Whether to use a wildcard representing every table under a database. Defaults to `false`. + + The following arguments are optional: + """ + pulumi.set(__self__, "database_name", database_name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if name is not None: + pulumi.set(__self__, "name", name) + if wildcard is not None: + pulumi.set(__self__, "wildcard", wildcard) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + """ + Name of the database for the table. Unique to a Data Catalog. + """ + return pulumi.get(self, "database_name") + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[str]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name of the table. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def wildcard(self) -> Optional[bool]: + """ + Whether to use a wildcard representing every table under a database. Defaults to `false`. + + The following arguments are optional: + """ + return pulumi.get(self, "wildcard") + + +@pulumi.output_type +class ResourceLfTagTableWithColumns(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "databaseName": + suggest = "database_name" + elif key == "catalogId": + suggest = "catalog_id" + elif key == "columnNames": + suggest = "column_names" + elif key == "columnWildcard": + suggest = "column_wildcard" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceLfTagTableWithColumns. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceLfTagTableWithColumns.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceLfTagTableWithColumns.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + database_name: str, + name: str, + catalog_id: Optional[str] = None, + column_names: Optional[Sequence[str]] = None, + column_wildcard: Optional['outputs.ResourceLfTagTableWithColumnsColumnWildcard'] = None): + """ + :param str database_name: Name of the database for the table with columns resource. Unique to the Data Catalog. + :param str name: Name of the table resource. + + The following arguments are optional: + :param str catalog_id: Identifier for the Data Catalog. By default, it is the account ID of the caller. + :param Sequence[str] column_names: Set of column names for the table. + :param 'ResourceLfTagTableWithColumnsColumnWildcardArgs' column_wildcard: Option to add column wildcard. See Column Wildcard for more details. + """ + pulumi.set(__self__, "database_name", database_name) + pulumi.set(__self__, "name", name) + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if column_names is not None: + pulumi.set(__self__, "column_names", column_names) + if column_wildcard is not None: + pulumi.set(__self__, "column_wildcard", column_wildcard) + + @property + @pulumi.getter(name="databaseName") + def database_name(self) -> str: + """ + Name of the database for the table with columns resource. Unique to the Data Catalog. + """ + return pulumi.get(self, "database_name") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the table resource. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[str]: + """ + Identifier for the Data Catalog. By default, it is the account ID of the caller. + """ + return pulumi.get(self, "catalog_id") + + @property + @pulumi.getter(name="columnNames") + def column_names(self) -> Optional[Sequence[str]]: + """ + Set of column names for the table. + """ + return pulumi.get(self, "column_names") + + @property + @pulumi.getter(name="columnWildcard") + def column_wildcard(self) -> Optional['outputs.ResourceLfTagTableWithColumnsColumnWildcard']: + """ + Option to add column wildcard. See Column Wildcard for more details. + """ + return pulumi.get(self, "column_wildcard") + + +@pulumi.output_type +class ResourceLfTagTableWithColumnsColumnWildcard(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "excludedColumnNames": + suggest = "excluded_column_names" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResourceLfTagTableWithColumnsColumnWildcard. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResourceLfTagTableWithColumnsColumnWildcard.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResourceLfTagTableWithColumnsColumnWildcard.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + excluded_column_names: Optional[Sequence[str]] = None): + if excluded_column_names is not None: + pulumi.set(__self__, "excluded_column_names", excluded_column_names) + + @property + @pulumi.getter(name="excludedColumnNames") + def excluded_column_names(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "excluded_column_names") + + +@pulumi.output_type +class ResourceLfTagTimeouts(dict): + def __init__(__self__, *, + create: Optional[str] = None, + delete: 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. + """ + if create is not None: + pulumi.set(__self__, "create", create) + if delete is not None: + pulumi.set(__self__, "delete", delete) + + @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") + + @pulumi.output_type class ResourceLfTagsDatabase(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/lakeformation/resource_lf_tag.py b/sdk/python/pulumi_aws/lakeformation/resource_lf_tag.py new file mode 100644 index 00000000000..74838529b7f --- /dev/null +++ b/sdk/python/pulumi_aws/lakeformation/resource_lf_tag.py @@ -0,0 +1,445 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ResourceLfTagArgs', 'ResourceLfTag'] + +@pulumi.input_type +class ResourceLfTagArgs: + def __init__(__self__, *, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input['ResourceLfTagDatabaseArgs']] = None, + lf_tag: Optional[pulumi.Input['ResourceLfTagLfTagArgs']] = None, + table: Optional[pulumi.Input['ResourceLfTagTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']] = None, + timeouts: Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']] = None): + """ + The set of arguments for constructing a ResourceLfTag resource. + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + :param pulumi.Input['ResourceLfTagDatabaseArgs'] database: Configuration block for a database resource. See Database for more details. + :param pulumi.Input['ResourceLfTagLfTagArgs'] lf_tag: Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + :param pulumi.Input['ResourceLfTagTableArgs'] table: Configuration block for a table resource. See Table for more details. + :param pulumi.Input['ResourceLfTagTableWithColumnsArgs'] table_with_columns: Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if database is not None: + pulumi.set(__self__, "database", database) + if lf_tag is not None: + pulumi.set(__self__, "lf_tag", lf_tag) + if table is not None: + pulumi.set(__self__, "table", table) + if table_with_columns is not None: + pulumi.set(__self__, "table_with_columns", table_with_columns) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + @property + @pulumi.getter + def database(self) -> Optional[pulumi.Input['ResourceLfTagDatabaseArgs']]: + """ + Configuration block for a database resource. See Database for more details. + """ + return pulumi.get(self, "database") + + @database.setter + def database(self, value: Optional[pulumi.Input['ResourceLfTagDatabaseArgs']]): + pulumi.set(self, "database", value) + + @property + @pulumi.getter(name="lfTag") + def lf_tag(self) -> Optional[pulumi.Input['ResourceLfTagLfTagArgs']]: + """ + Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + """ + return pulumi.get(self, "lf_tag") + + @lf_tag.setter + def lf_tag(self, value: Optional[pulumi.Input['ResourceLfTagLfTagArgs']]): + pulumi.set(self, "lf_tag", value) + + @property + @pulumi.getter + def table(self) -> Optional[pulumi.Input['ResourceLfTagTableArgs']]: + """ + Configuration block for a table resource. See Table for more details. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: Optional[pulumi.Input['ResourceLfTagTableArgs']]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="tableWithColumns") + def table_with_columns(self) -> Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']]: + """ + Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + return pulumi.get(self, "table_with_columns") + + @table_with_columns.setter + def table_with_columns(self, value: Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']]): + pulumi.set(self, "table_with_columns", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _ResourceLfTagState: + def __init__(__self__, *, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input['ResourceLfTagDatabaseArgs']] = None, + lf_tag: Optional[pulumi.Input['ResourceLfTagLfTagArgs']] = None, + table: Optional[pulumi.Input['ResourceLfTagTableArgs']] = None, + table_with_columns: Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']] = None, + timeouts: Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering ResourceLfTag resources. + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + :param pulumi.Input['ResourceLfTagDatabaseArgs'] database: Configuration block for a database resource. See Database for more details. + :param pulumi.Input['ResourceLfTagLfTagArgs'] lf_tag: Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + :param pulumi.Input['ResourceLfTagTableArgs'] table: Configuration block for a table resource. See Table for more details. + :param pulumi.Input['ResourceLfTagTableWithColumnsArgs'] table_with_columns: Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + if catalog_id is not None: + pulumi.set(__self__, "catalog_id", catalog_id) + if database is not None: + pulumi.set(__self__, "database", database) + if lf_tag is not None: + pulumi.set(__self__, "lf_tag", lf_tag) + if table is not None: + pulumi.set(__self__, "table", table) + if table_with_columns is not None: + pulumi.set(__self__, "table_with_columns", table_with_columns) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> Optional[pulumi.Input[str]]: + """ + Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + """ + return pulumi.get(self, "catalog_id") + + @catalog_id.setter + def catalog_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "catalog_id", value) + + @property + @pulumi.getter + def database(self) -> Optional[pulumi.Input['ResourceLfTagDatabaseArgs']]: + """ + Configuration block for a database resource. See Database for more details. + """ + return pulumi.get(self, "database") + + @database.setter + def database(self, value: Optional[pulumi.Input['ResourceLfTagDatabaseArgs']]): + pulumi.set(self, "database", value) + + @property + @pulumi.getter(name="lfTag") + def lf_tag(self) -> Optional[pulumi.Input['ResourceLfTagLfTagArgs']]: + """ + Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + """ + return pulumi.get(self, "lf_tag") + + @lf_tag.setter + def lf_tag(self, value: Optional[pulumi.Input['ResourceLfTagLfTagArgs']]): + pulumi.set(self, "lf_tag", value) + + @property + @pulumi.getter + def table(self) -> Optional[pulumi.Input['ResourceLfTagTableArgs']]: + """ + Configuration block for a table resource. See Table for more details. + """ + return pulumi.get(self, "table") + + @table.setter + def table(self, value: Optional[pulumi.Input['ResourceLfTagTableArgs']]): + pulumi.set(self, "table", value) + + @property + @pulumi.getter(name="tableWithColumns") + def table_with_columns(self) -> Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']]: + """ + Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + return pulumi.get(self, "table_with_columns") + + @table_with_columns.setter + def table_with_columns(self, value: Optional[pulumi.Input['ResourceLfTagTableWithColumnsArgs']]): + pulumi.set(self, "table_with_columns", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ResourceLfTagTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class ResourceLfTag(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagDatabaseArgs']]] = None, + lf_tag: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagLfTagArgs']]] = None, + table: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableArgs']]] = None, + table_with_columns: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableWithColumnsArgs']]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTimeoutsArgs']]] = None, + __props__=None): + """ + Resource for managing an AWS Lake Formation Resource LF Tag. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.lakeformation.ResourceLfTag("example", + database=aws.lakeformation.ResourceLfTagDatabaseArgs( + name=example_aws_glue_catalog_database["name"], + ), + lf_tag=aws.lakeformation.ResourceLfTagLfTagArgs( + key=example_aws_lakeformation_lf_tag["key"], + value="stowe", + )) + ``` + + + ## Import + + You cannot import this resource. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] catalog_id: Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + :param pulumi.Input[pulumi.InputType['ResourceLfTagDatabaseArgs']] database: Configuration block for a database resource. See Database for more details. + :param pulumi.Input[pulumi.InputType['ResourceLfTagLfTagArgs']] lf_tag: Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + :param pulumi.Input[pulumi.InputType['ResourceLfTagTableArgs']] table: Configuration block for a table resource. See Table for more details. + :param pulumi.Input[pulumi.InputType['ResourceLfTagTableWithColumnsArgs']] table_with_columns: Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ResourceLfTagArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Lake Formation Resource LF Tag. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.lakeformation.ResourceLfTag("example", + database=aws.lakeformation.ResourceLfTagDatabaseArgs( + name=example_aws_glue_catalog_database["name"], + ), + lf_tag=aws.lakeformation.ResourceLfTagLfTagArgs( + key=example_aws_lakeformation_lf_tag["key"], + value="stowe", + )) + ``` + + + ## Import + + You cannot import this resource. + + :param str resource_name: The name of the resource. + :param ResourceLfTagArgs 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(ResourceLfTagArgs, 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, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagDatabaseArgs']]] = None, + lf_tag: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagLfTagArgs']]] = None, + table: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableArgs']]] = None, + table_with_columns: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableWithColumnsArgs']]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTimeoutsArgs']]] = 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__ = ResourceLfTagArgs.__new__(ResourceLfTagArgs) + + __props__.__dict__["catalog_id"] = catalog_id + __props__.__dict__["database"] = database + __props__.__dict__["lf_tag"] = lf_tag + __props__.__dict__["table"] = table + __props__.__dict__["table_with_columns"] = table_with_columns + __props__.__dict__["timeouts"] = timeouts + super(ResourceLfTag, __self__).__init__( + 'aws:lakeformation/resourceLfTag:ResourceLfTag', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + catalog_id: Optional[pulumi.Input[str]] = None, + database: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagDatabaseArgs']]] = None, + lf_tag: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagLfTagArgs']]] = None, + table: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableArgs']]] = None, + table_with_columns: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTableWithColumnsArgs']]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['ResourceLfTagTimeoutsArgs']]] = None) -> 'ResourceLfTag': + """ + Get an existing ResourceLfTag 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] catalog_id: Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + :param pulumi.Input[pulumi.InputType['ResourceLfTagDatabaseArgs']] database: Configuration block for a database resource. See Database for more details. + :param pulumi.Input[pulumi.InputType['ResourceLfTagLfTagArgs']] lf_tag: Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + :param pulumi.Input[pulumi.InputType['ResourceLfTagTableArgs']] table: Configuration block for a table resource. See Table for more details. + :param pulumi.Input[pulumi.InputType['ResourceLfTagTableWithColumnsArgs']] table_with_columns: Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ResourceLfTagState.__new__(_ResourceLfTagState) + + __props__.__dict__["catalog_id"] = catalog_id + __props__.__dict__["database"] = database + __props__.__dict__["lf_tag"] = lf_tag + __props__.__dict__["table"] = table + __props__.__dict__["table_with_columns"] = table_with_columns + __props__.__dict__["timeouts"] = timeouts + return ResourceLfTag(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="catalogId") + def catalog_id(self) -> pulumi.Output[Optional[str]]: + """ + Identifier for the Data Catalog. By default, the account ID. The Data Catalog is the persistent metadata store. It contains database definitions, table definitions, and other control information to manage your Lake Formation environment. + """ + return pulumi.get(self, "catalog_id") + + @property + @pulumi.getter + def database(self) -> pulumi.Output[Optional['outputs.ResourceLfTagDatabase']]: + """ + Configuration block for a database resource. See Database for more details. + """ + return pulumi.get(self, "database") + + @property + @pulumi.getter(name="lfTag") + def lf_tag(self) -> pulumi.Output[Optional['outputs.ResourceLfTagLfTag']]: + """ + Set of LF-tags to attach to the resource. See LF Tag for more details. + + Exactly one of the following is required: + """ + return pulumi.get(self, "lf_tag") + + @property + @pulumi.getter + def table(self) -> pulumi.Output[Optional['outputs.ResourceLfTagTable']]: + """ + Configuration block for a table resource. See Table for more details. + """ + return pulumi.get(self, "table") + + @property + @pulumi.getter(name="tableWithColumns") + def table_with_columns(self) -> pulumi.Output[Optional['outputs.ResourceLfTagTableWithColumns']]: + """ + Configuration block for a table with columns resource. See Table With Columns for more details. + + The following arguments are optional: + """ + return pulumi.get(self, "table_with_columns") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.ResourceLfTagTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/lb/target_group_attachment.py b/sdk/python/pulumi_aws/lb/target_group_attachment.py index e1b813111b0..49514a2c341 100644 --- a/sdk/python/pulumi_aws/lb/target_group_attachment.py +++ b/sdk/python/pulumi_aws/lb/target_group_attachment.py @@ -236,7 +236,7 @@ def create_example(range_body): target_id=range["value"], port=80)) - pulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) + pulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) ``` @@ -324,7 +324,7 @@ def create_example(range_body): target_id=range["value"], port=80)) - pulumi.Output.all({v.id: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) + pulumi.Output.all({k: v for k, v in example}).apply(lambda resolved_outputs: create_example(resolved_outputs[0])) ``` diff --git a/sdk/python/pulumi_aws/m2/__init__.py b/sdk/python/pulumi_aws/m2/__init__.py new file mode 100644 index 00000000000..342a1965a78 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/__init__.py @@ -0,0 +1,12 @@ +# 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! *** + +from .. import _utilities +import typing +# Export this package's modules as members: +from .application import * +from .deployment import * +from .environment import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws/m2/_inputs.py b/sdk/python/pulumi_aws/m2/_inputs.py new file mode 100644 index 00000000000..c118ab71877 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/_inputs.py @@ -0,0 +1,351 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'ApplicationDefinitionArgs', + 'ApplicationTimeoutsArgs', + 'DeploymentTimeoutsArgs', + 'EnvironmentHighAvailabilityConfigArgs', + 'EnvironmentStorageConfigurationArgs', + 'EnvironmentStorageConfigurationEfsArgs', + 'EnvironmentStorageConfigurationFsxArgs', + 'EnvironmentTimeoutsArgs', +] + +@pulumi.input_type +class ApplicationDefinitionArgs: + def __init__(__self__, *, + content: Optional[pulumi.Input[str]] = None, + s3_location: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] content: JSON application definition. Either this or `s3_location` must be specified. + :param pulumi.Input[str] s3_location: Location of the application definition in S3. Either this or `content` must be specified. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if s3_location is not None: + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter + def content(self) -> Optional[pulumi.Input[str]]: + """ + JSON application definition. Either this or `s3_location` must be specified. + """ + return pulumi.get(self, "content") + + @content.setter + def content(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "content", value) + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> Optional[pulumi.Input[str]]: + """ + Location of the application definition in S3. Either this or `content` must be specified. + """ + return pulumi.get(self, "s3_location") + + @s3_location.setter + def s3_location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_location", value) + + +@pulumi.input_type +class ApplicationTimeoutsArgs: + 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) + + +@pulumi.input_type +class DeploymentTimeoutsArgs: + 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) + + +@pulumi.input_type +class EnvironmentHighAvailabilityConfigArgs: + def __init__(__self__, *, + desired_capacity: pulumi.Input[int]): + """ + :param pulumi.Input[int] desired_capacity: Desired number of instances for the Environment. + """ + pulumi.set(__self__, "desired_capacity", desired_capacity) + + @property + @pulumi.getter(name="desiredCapacity") + def desired_capacity(self) -> pulumi.Input[int]: + """ + Desired number of instances for the Environment. + """ + return pulumi.get(self, "desired_capacity") + + @desired_capacity.setter + def desired_capacity(self, value: pulumi.Input[int]): + pulumi.set(self, "desired_capacity", value) + + +@pulumi.input_type +class EnvironmentStorageConfigurationArgs: + def __init__(__self__, *, + efs: Optional[pulumi.Input['EnvironmentStorageConfigurationEfsArgs']] = None, + fsx: Optional[pulumi.Input['EnvironmentStorageConfigurationFsxArgs']] = None): + if efs is not None: + pulumi.set(__self__, "efs", efs) + if fsx is not None: + pulumi.set(__self__, "fsx", fsx) + + @property + @pulumi.getter + def efs(self) -> Optional[pulumi.Input['EnvironmentStorageConfigurationEfsArgs']]: + return pulumi.get(self, "efs") + + @efs.setter + def efs(self, value: Optional[pulumi.Input['EnvironmentStorageConfigurationEfsArgs']]): + pulumi.set(self, "efs", value) + + @property + @pulumi.getter + def fsx(self) -> Optional[pulumi.Input['EnvironmentStorageConfigurationFsxArgs']]: + return pulumi.get(self, "fsx") + + @fsx.setter + def fsx(self, value: Optional[pulumi.Input['EnvironmentStorageConfigurationFsxArgs']]): + pulumi.set(self, "fsx", value) + + +@pulumi.input_type +class EnvironmentStorageConfigurationEfsArgs: + def __init__(__self__, *, + file_system_id: pulumi.Input[str], + mount_point: pulumi.Input[str]): + """ + :param pulumi.Input[str] file_system_id: Id of the EFS filesystem to mount. + :param pulumi.Input[str] mount_point: Path to mount the filesystem on, must start with `/m2/mount/`. + """ + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "mount_point", mount_point) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> pulumi.Input[str]: + """ + Id of the EFS filesystem to mount. + """ + return pulumi.get(self, "file_system_id") + + @file_system_id.setter + def file_system_id(self, value: pulumi.Input[str]): + pulumi.set(self, "file_system_id", value) + + @property + @pulumi.getter(name="mountPoint") + def mount_point(self) -> pulumi.Input[str]: + """ + Path to mount the filesystem on, must start with `/m2/mount/`. + """ + return pulumi.get(self, "mount_point") + + @mount_point.setter + def mount_point(self, value: pulumi.Input[str]): + pulumi.set(self, "mount_point", value) + + +@pulumi.input_type +class EnvironmentStorageConfigurationFsxArgs: + def __init__(__self__, *, + file_system_id: pulumi.Input[str], + mount_point: pulumi.Input[str]): + """ + :param pulumi.Input[str] file_system_id: Id of the FSX filesystem to mount. + :param pulumi.Input[str] mount_point: Path to mount the filesystem on, must start with `/m2/mount/`. + """ + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "mount_point", mount_point) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> pulumi.Input[str]: + """ + Id of the FSX filesystem to mount. + """ + return pulumi.get(self, "file_system_id") + + @file_system_id.setter + def file_system_id(self, value: pulumi.Input[str]): + pulumi.set(self, "file_system_id", value) + + @property + @pulumi.getter(name="mountPoint") + def mount_point(self) -> pulumi.Input[str]: + """ + Path to mount the filesystem on, must start with `/m2/mount/`. + """ + return pulumi.get(self, "mount_point") + + @mount_point.setter + def mount_point(self, value: pulumi.Input[str]): + pulumi.set(self, "mount_point", value) + + +@pulumi.input_type +class EnvironmentTimeoutsArgs: + 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) + + diff --git a/sdk/python/pulumi_aws/m2/application.py b/sdk/python/pulumi_aws/m2/application.py new file mode 100644 index 00000000000..fc195fa12c1 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/application.py @@ -0,0 +1,701 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ApplicationArgs', 'Application'] + +@pulumi.input_type +class ApplicationArgs: + def __init__(__self__, *, + engine_type: pulumi.Input[str], + definition: Optional[pulumi.Input['ApplicationDefinitionArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['ApplicationTimeoutsArgs']] = None): + """ + The set of arguments for constructing a Application resource. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus | bluage`. + :param pulumi.Input['ApplicationDefinitionArgs'] definition: The application definition for this application. You can specify either inline JSON or an S3 bucket location. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] kms_key_id: KMS Key to use for the Application. + :param pulumi.Input[str] name: Unique identifier of the application. + + The following arguments are optional: + :param pulumi.Input[str] role_arn: ARN of role for application to use to access AWS resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "engine_type", engine_type) + if definition is not None: + pulumi.set(__self__, "definition", definition) + if description is not None: + pulumi.set(__self__, "description", description) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if name is not None: + pulumi.set(__self__, "name", name) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="engineType") + def engine_type(self) -> pulumi.Input[str]: + """ + Engine type must be `microfocus | bluage`. + """ + return pulumi.get(self, "engine_type") + + @engine_type.setter + def engine_type(self, value: pulumi.Input[str]): + pulumi.set(self, "engine_type", value) + + @property + @pulumi.getter + def definition(self) -> Optional[pulumi.Input['ApplicationDefinitionArgs']]: + """ + The application definition for this application. You can specify either inline JSON or an S3 bucket location. + """ + return pulumi.get(self, "definition") + + @definition.setter + def definition(self, value: Optional[pulumi.Input['ApplicationDefinitionArgs']]): + pulumi.set(self, "definition", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the application. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + KMS Key to use for the Application. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier of the application. + + 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="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of role for application to use to access AWS resources. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the WorkSpaces Connection Alias. 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['ApplicationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ApplicationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _ApplicationState: + def __init__(__self__, *, + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + current_version: Optional[pulumi.Input[int]] = None, + definition: Optional[pulumi.Input['ApplicationDefinitionArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: 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['ApplicationTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering Application resources. + :param pulumi.Input[str] application_id: Id of the Application. + :param pulumi.Input[str] arn: ARN of the Application. + :param pulumi.Input[int] current_version: Current version of the application deployed. + :param pulumi.Input['ApplicationDefinitionArgs'] definition: The application definition for this application. You can specify either inline JSON or an S3 bucket location. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus | bluage`. + :param pulumi.Input[str] kms_key_id: KMS Key to use for the Application. + :param pulumi.Input[str] name: Unique identifier of the application. + + The following arguments are optional: + :param pulumi.Input[str] role_arn: ARN of role for application to use to access AWS resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. 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[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + if application_id is not None: + pulumi.set(__self__, "application_id", application_id) + if arn is not None: + pulumi.set(__self__, "arn", arn) + if current_version is not None: + pulumi.set(__self__, "current_version", current_version) + if definition is not None: + pulumi.set(__self__, "definition", definition) + if description is not None: + pulumi.set(__self__, "description", description) + if engine_type is not None: + pulumi.set(__self__, "engine_type", engine_type) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if name is not None: + pulumi.set(__self__, "name", name) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + 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) + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> Optional[pulumi.Input[str]]: + """ + Id of the Application. + """ + return pulumi.get(self, "application_id") + + @application_id.setter + def application_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "application_id", value) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Application. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="currentVersion") + def current_version(self) -> Optional[pulumi.Input[int]]: + """ + Current version of the application deployed. + """ + return pulumi.get(self, "current_version") + + @current_version.setter + def current_version(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "current_version", value) + + @property + @pulumi.getter + def definition(self) -> Optional[pulumi.Input['ApplicationDefinitionArgs']]: + """ + The application definition for this application. You can specify either inline JSON or an S3 bucket location. + """ + return pulumi.get(self, "definition") + + @definition.setter + def definition(self, value: Optional[pulumi.Input['ApplicationDefinitionArgs']]): + pulumi.set(self, "definition", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the application. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="engineType") + def engine_type(self) -> Optional[pulumi.Input[str]]: + """ + Engine type must be `microfocus | bluage`. + """ + return pulumi.get(self, "engine_type") + + @engine_type.setter + def engine_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_type", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + KMS Key to use for the Application. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier of the application. + + 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="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of role for application to use to access AWS resources. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the WorkSpaces Connection Alias. 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") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + + 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['ApplicationTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['ApplicationTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class Application(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + definition: Optional[pulumi.Input[pulumi.InputType['ApplicationDefinitionArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['ApplicationTimeoutsArgs']]] = None, + __props__=None): + """ + Resource for managing an [AWS Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.m2.Application("example", + name="Example", + engine_type="bluage", + definition=aws.m2.ApplicationDefinitionArgs( + content=f\"\"\"{{ + "definition": {{ + "listeners": [ + {{ + "port": 8196, + "type": "http" + }} + ], + "ba-application": {{ + "app-location": "{s3_source}/PlanetsDemo-v1.zip" + }} + }}, + "source-locations": [ + {{ + "source-id": "s3-source", + "source-type": "s3", + "properties": {{ + "s3-bucket": "example-bucket", + "s3-key-prefix": "v1" + }} + }} + ], + "template-version": "2.0" + }} + + \"\"\", + )) + ``` + + + ## Import + + Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: + + ```sh + $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['ApplicationDefinitionArgs']] definition: The application definition for this application. You can specify either inline JSON or an S3 bucket location. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus | bluage`. + :param pulumi.Input[str] kms_key_id: KMS Key to use for the Application. + :param pulumi.Input[str] name: Unique identifier of the application. + + The following arguments are optional: + :param pulumi.Input[str] role_arn: ARN of role for application to use to access AWS resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ApplicationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an [AWS Mainframe Modernization Application](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2.html). + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.m2.Application("example", + name="Example", + engine_type="bluage", + definition=aws.m2.ApplicationDefinitionArgs( + content=f\"\"\"{{ + "definition": {{ + "listeners": [ + {{ + "port": 8196, + "type": "http" + }} + ], + "ba-application": {{ + "app-location": "{s3_source}/PlanetsDemo-v1.zip" + }} + }}, + "source-locations": [ + {{ + "source-id": "s3-source", + "source-type": "s3", + "properties": {{ + "s3-bucket": "example-bucket", + "s3-key-prefix": "v1" + }} + }} + ], + "template-version": "2.0" + }} + + \"\"\", + )) + ``` + + + ## Import + + Using `pulumi import`, import Mainframe Modernization Application using the `01234567890abcdef012345678`. For example: + + ```sh + $ pulumi import aws:m2/application:Application example 01234567890abcdef012345678 + ``` + + :param str resource_name: The name of the resource. + :param ApplicationArgs 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(ApplicationArgs, 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, + definition: Optional[pulumi.Input[pulumi.InputType['ApplicationDefinitionArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['ApplicationTimeoutsArgs']]] = 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__ = ApplicationArgs.__new__(ApplicationArgs) + + __props__.__dict__["definition"] = definition + __props__.__dict__["description"] = description + if engine_type is None and not opts.urn: + raise TypeError("Missing required property 'engine_type'") + __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["name"] = name + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["application_id"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["current_version"] = None + __props__.__dict__["tags_all"] = None + super(Application, __self__).__init__( + 'aws:m2/application:Application', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + application_id: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + current_version: Optional[pulumi.Input[int]] = None, + definition: Optional[pulumi.Input[pulumi.InputType['ApplicationDefinitionArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + role_arn: 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[pulumi.InputType['ApplicationTimeoutsArgs']]] = None) -> 'Application': + """ + Get an existing Application 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] application_id: Id of the Application. + :param pulumi.Input[str] arn: ARN of the Application. + :param pulumi.Input[int] current_version: Current version of the application deployed. + :param pulumi.Input[pulumi.InputType['ApplicationDefinitionArgs']] definition: The application definition for this application. You can specify either inline JSON or an S3 bucket location. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus | bluage`. + :param pulumi.Input[str] kms_key_id: KMS Key to use for the Application. + :param pulumi.Input[str] name: Unique identifier of the application. + + The following arguments are optional: + :param pulumi.Input[str] role_arn: ARN of role for application to use to access AWS resources. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces Connection Alias. 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[Mapping[str, pulumi.Input[str]]] tags_all: A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ApplicationState.__new__(_ApplicationState) + + __props__.__dict__["application_id"] = application_id + __props__.__dict__["arn"] = arn + __props__.__dict__["current_version"] = current_version + __props__.__dict__["definition"] = definition + __props__.__dict__["description"] = description + __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["name"] = name + __props__.__dict__["role_arn"] = role_arn + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + return Application(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> pulumi.Output[str]: + """ + Id of the Application. + """ + return pulumi.get(self, "application_id") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + ARN of the Application. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="currentVersion") + def current_version(self) -> pulumi.Output[int]: + """ + Current version of the application deployed. + """ + return pulumi.get(self, "current_version") + + @property + @pulumi.getter + def definition(self) -> pulumi.Output[Optional['outputs.ApplicationDefinition']]: + """ + The application definition for this application. You can specify either inline JSON or an S3 bucket location. + """ + return pulumi.get(self, "definition") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the application. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="engineType") + def engine_type(self) -> pulumi.Output[str]: + """ + Engine type must be `microfocus | bluage`. + """ + return pulumi.get(self, "engine_type") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> pulumi.Output[Optional[str]]: + """ + KMS Key to use for the Application. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Unique identifier of the application. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[Optional[str]]: + """ + ARN of role for application to use to access AWS resources. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags assigned to the WorkSpaces Connection Alias. 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") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + """ + A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block. + """ + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.ApplicationTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/m2/deployment.py b/sdk/python/pulumi_aws/m2/deployment.py new file mode 100644 index 00000000000..38d461d5485 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/deployment.py @@ -0,0 +1,430 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['DeploymentArgs', 'Deployment'] + +@pulumi.input_type +class DeploymentArgs: + def __init__(__self__, *, + application_id: pulumi.Input[str], + application_version: pulumi.Input[int], + environment_id: pulumi.Input[str], + start: pulumi.Input[bool], + force_stop: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['DeploymentTimeoutsArgs']] = None): + """ + The set of arguments for constructing a Deployment resource. + :param pulumi.Input[str] application_id: Application to deploy. + :param pulumi.Input[int] application_version: Version to application to deploy + :param pulumi.Input[str] environment_id: Environment to deploy application to. + :param pulumi.Input[bool] start: Start the application once deployed. + """ + pulumi.set(__self__, "application_id", application_id) + pulumi.set(__self__, "application_version", application_version) + pulumi.set(__self__, "environment_id", environment_id) + pulumi.set(__self__, "start", start) + if force_stop is not None: + pulumi.set(__self__, "force_stop", force_stop) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> pulumi.Input[str]: + """ + Application to deploy. + """ + return pulumi.get(self, "application_id") + + @application_id.setter + def application_id(self, value: pulumi.Input[str]): + pulumi.set(self, "application_id", value) + + @property + @pulumi.getter(name="applicationVersion") + def application_version(self) -> pulumi.Input[int]: + """ + Version to application to deploy + """ + return pulumi.get(self, "application_version") + + @application_version.setter + def application_version(self, value: pulumi.Input[int]): + pulumi.set(self, "application_version", value) + + @property + @pulumi.getter(name="environmentId") + def environment_id(self) -> pulumi.Input[str]: + """ + Environment to deploy application to. + """ + return pulumi.get(self, "environment_id") + + @environment_id.setter + def environment_id(self, value: pulumi.Input[str]): + pulumi.set(self, "environment_id", value) + + @property + @pulumi.getter + def start(self) -> pulumi.Input[bool]: + """ + Start the application once deployed. + """ + return pulumi.get(self, "start") + + @start.setter + def start(self, value: pulumi.Input[bool]): + pulumi.set(self, "start", value) + + @property + @pulumi.getter(name="forceStop") + def force_stop(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force_stop") + + @force_stop.setter + def force_stop(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_stop", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DeploymentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DeploymentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _DeploymentState: + def __init__(__self__, *, + application_id: Optional[pulumi.Input[str]] = None, + application_version: Optional[pulumi.Input[int]] = None, + deployment_id: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + start: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input['DeploymentTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering Deployment resources. + :param pulumi.Input[str] application_id: Application to deploy. + :param pulumi.Input[int] application_version: Version to application to deploy + :param pulumi.Input[str] environment_id: Environment to deploy application to. + :param pulumi.Input[bool] start: Start the application once deployed. + """ + if application_id is not None: + pulumi.set(__self__, "application_id", application_id) + if application_version is not None: + pulumi.set(__self__, "application_version", application_version) + if deployment_id is not None: + pulumi.set(__self__, "deployment_id", deployment_id) + if environment_id is not None: + pulumi.set(__self__, "environment_id", environment_id) + if force_stop is not None: + pulumi.set(__self__, "force_stop", force_stop) + if start is not None: + pulumi.set(__self__, "start", start) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> Optional[pulumi.Input[str]]: + """ + Application to deploy. + """ + return pulumi.get(self, "application_id") + + @application_id.setter + def application_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "application_id", value) + + @property + @pulumi.getter(name="applicationVersion") + def application_version(self) -> Optional[pulumi.Input[int]]: + """ + Version to application to deploy + """ + return pulumi.get(self, "application_version") + + @application_version.setter + def application_version(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "application_version", value) + + @property + @pulumi.getter(name="deploymentId") + def deployment_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "deployment_id") + + @deployment_id.setter + def deployment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "deployment_id", value) + + @property + @pulumi.getter(name="environmentId") + def environment_id(self) -> Optional[pulumi.Input[str]]: + """ + Environment to deploy application to. + """ + return pulumi.get(self, "environment_id") + + @environment_id.setter + def environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "environment_id", value) + + @property + @pulumi.getter(name="forceStop") + def force_stop(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "force_stop") + + @force_stop.setter + def force_stop(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_stop", value) + + @property + @pulumi.getter + def start(self) -> Optional[pulumi.Input[bool]]: + """ + Start the application once deployed. + """ + return pulumi.get(self, "start") + + @start.setter + def start(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "start", value) + + @property + @pulumi.getter + def timeouts(self) -> Optional[pulumi.Input['DeploymentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['DeploymentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class Deployment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + application_id: Optional[pulumi.Input[str]] = None, + application_version: Optional[pulumi.Input[int]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + start: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['DeploymentTimeoutsArgs']]] = None, + __props__=None): + """ + Resource for managing an [AWS Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.m2.Deployment("test", + environment_id="01234567890abcdef012345678", + application_id="34567890abcdef012345678012", + application_version=1, + start=True) + ``` + + + ## Import + + Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: + + ```sh + $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] application_id: Application to deploy. + :param pulumi.Input[int] application_version: Version to application to deploy + :param pulumi.Input[str] environment_id: Environment to deploy application to. + :param pulumi.Input[bool] start: Start the application once deployed. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DeploymentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an [AWS Mainframe Modernization Deployment.](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-deploy.html) + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.m2.Deployment("test", + environment_id="01234567890abcdef012345678", + application_id="34567890abcdef012345678012", + application_version=1, + start=True) + ``` + + + ## Import + + Using `pulumi import`, import Mainframe Modernization Deployment using the `APPLICATION-ID,DEPLOYMENT-ID`. For example: + + ```sh + $ pulumi import aws:m2/deployment:Deployment example APPLICATION-ID,DEPLOYMENT-ID + ``` + + :param str resource_name: The name of the resource. + :param DeploymentArgs 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(DeploymentArgs, 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, + application_id: Optional[pulumi.Input[str]] = None, + application_version: Optional[pulumi.Input[int]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + start: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['DeploymentTimeoutsArgs']]] = 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__ = DeploymentArgs.__new__(DeploymentArgs) + + if application_id is None and not opts.urn: + raise TypeError("Missing required property 'application_id'") + __props__.__dict__["application_id"] = application_id + if application_version is None and not opts.urn: + raise TypeError("Missing required property 'application_version'") + __props__.__dict__["application_version"] = application_version + if environment_id is None and not opts.urn: + raise TypeError("Missing required property 'environment_id'") + __props__.__dict__["environment_id"] = environment_id + __props__.__dict__["force_stop"] = force_stop + if start is None and not opts.urn: + raise TypeError("Missing required property 'start'") + __props__.__dict__["start"] = start + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["deployment_id"] = None + super(Deployment, __self__).__init__( + 'aws:m2/deployment:Deployment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + application_id: Optional[pulumi.Input[str]] = None, + application_version: Optional[pulumi.Input[int]] = None, + deployment_id: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_stop: Optional[pulumi.Input[bool]] = None, + start: Optional[pulumi.Input[bool]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['DeploymentTimeoutsArgs']]] = None) -> 'Deployment': + """ + Get an existing Deployment 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] application_id: Application to deploy. + :param pulumi.Input[int] application_version: Version to application to deploy + :param pulumi.Input[str] environment_id: Environment to deploy application to. + :param pulumi.Input[bool] start: Start the application once deployed. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DeploymentState.__new__(_DeploymentState) + + __props__.__dict__["application_id"] = application_id + __props__.__dict__["application_version"] = application_version + __props__.__dict__["deployment_id"] = deployment_id + __props__.__dict__["environment_id"] = environment_id + __props__.__dict__["force_stop"] = force_stop + __props__.__dict__["start"] = start + __props__.__dict__["timeouts"] = timeouts + return Deployment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> pulumi.Output[str]: + """ + Application to deploy. + """ + return pulumi.get(self, "application_id") + + @property + @pulumi.getter(name="applicationVersion") + def application_version(self) -> pulumi.Output[int]: + """ + Version to application to deploy + """ + return pulumi.get(self, "application_version") + + @property + @pulumi.getter(name="deploymentId") + def deployment_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "deployment_id") + + @property + @pulumi.getter(name="environmentId") + def environment_id(self) -> pulumi.Output[str]: + """ + Environment to deploy application to. + """ + return pulumi.get(self, "environment_id") + + @property + @pulumi.getter(name="forceStop") + def force_stop(self) -> pulumi.Output[Optional[bool]]: + return pulumi.get(self, "force_stop") + + @property + @pulumi.getter + def start(self) -> pulumi.Output[bool]: + """ + Start the application once deployed. + """ + return pulumi.get(self, "start") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.DeploymentTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/m2/environment.py b/sdk/python/pulumi_aws/m2/environment.py new file mode 100644 index 00000000000..4e25cbb9323 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/environment.py @@ -0,0 +1,936 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['EnvironmentArgs', 'Environment'] + +@pulumi.input_type +class EnvironmentArgs: + def __init__(__self__, *, + engine_type: pulumi.Input[str], + instance_type: pulumi.Input[str], + apply_changes_during_maintenance_window: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + high_availability_config: Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_configuration: Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input['EnvironmentTimeoutsArgs']] = None): + """ + The set of arguments for constructing a Environment resource. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus` or `bluage`. + :param pulumi.Input[str] instance_type: M2 Instance Type. + + The following arguments are optional: + :param pulumi.Input[str] engine_version: The specific version of the engine for the Environment. + :param pulumi.Input[bool] force_update: Force update the environment even if applications are running. + :param pulumi.Input[str] kms_key_id: ARN of the KMS key to use for the Environment. + :param pulumi.Input[str] name: Name of the runtime environment. Must be unique within the account. + :param pulumi.Input[str] preferred_maintenance_window: Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + :param pulumi.Input[bool] publicly_accessible: Allow applications deployed to this environment to be publicly accessible. + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group ids. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet ids to deploy environment to. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the place index. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + pulumi.set(__self__, "engine_type", engine_type) + pulumi.set(__self__, "instance_type", instance_type) + if apply_changes_during_maintenance_window is not None: + pulumi.set(__self__, "apply_changes_during_maintenance_window", apply_changes_during_maintenance_window) + if description is not None: + pulumi.set(__self__, "description", description) + if engine_version is not None: + pulumi.set(__self__, "engine_version", engine_version) + if force_update is not None: + pulumi.set(__self__, "force_update", force_update) + if high_availability_config is not None: + pulumi.set(__self__, "high_availability_config", high_availability_config) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if name is not None: + pulumi.set(__self__, "name", name) + if preferred_maintenance_window is not None: + pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + if publicly_accessible is not None: + pulumi.set(__self__, "publicly_accessible", publicly_accessible) + if security_group_ids is not None: + pulumi.set(__self__, "security_group_ids", security_group_ids) + if storage_configuration is not None: + pulumi.set(__self__, "storage_configuration", storage_configuration) + if subnet_ids is not None: + pulumi.set(__self__, "subnet_ids", subnet_ids) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if timeouts is not None: + pulumi.set(__self__, "timeouts", timeouts) + + @property + @pulumi.getter(name="engineType") + def engine_type(self) -> pulumi.Input[str]: + """ + Engine type must be `microfocus` or `bluage`. + """ + return pulumi.get(self, "engine_type") + + @engine_type.setter + def engine_type(self, value: pulumi.Input[str]): + pulumi.set(self, "engine_type", value) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> pulumi.Input[str]: + """ + M2 Instance Type. + + The following arguments are optional: + """ + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter(name="applyChangesDuringMaintenanceWindow") + def apply_changes_during_maintenance_window(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "apply_changes_during_maintenance_window") + + @apply_changes_during_maintenance_window.setter + def apply_changes_during_maintenance_window(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "apply_changes_during_maintenance_window", 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(name="engineVersion") + def engine_version(self) -> Optional[pulumi.Input[str]]: + """ + The specific version of the engine for the Environment. + """ + return pulumi.get(self, "engine_version") + + @engine_version.setter + def engine_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_version", value) + + @property + @pulumi.getter(name="forceUpdate") + def force_update(self) -> Optional[pulumi.Input[bool]]: + """ + Force update the environment even if applications are running. + """ + return pulumi.get(self, "force_update") + + @force_update.setter + def force_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_update", value) + + @property + @pulumi.getter(name="highAvailabilityConfig") + def high_availability_config(self) -> Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']]: + return pulumi.get(self, "high_availability_config") + + @high_availability_config.setter + def high_availability_config(self, value: Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']]): + pulumi.set(self, "high_availability_config", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the KMS key to use for the Environment. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the runtime environment. Must be unique within the 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="preferredMaintenanceWindow") + def preferred_maintenance_window(self) -> Optional[pulumi.Input[str]]: + """ + Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + """ + return pulumi.get(self, "preferred_maintenance_window") + + @preferred_maintenance_window.setter + def preferred_maintenance_window(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "preferred_maintenance_window", value) + + @property + @pulumi.getter(name="publiclyAccessible") + def publicly_accessible(self) -> Optional[pulumi.Input[bool]]: + """ + Allow applications deployed to this environment to be publicly accessible. + """ + return pulumi.get(self, "publicly_accessible") + + @publicly_accessible.setter + def publicly_accessible(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "publicly_accessible", value) + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of security group ids. + """ + return pulumi.get(self, "security_group_ids") + + @security_group_ids.setter + def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "security_group_ids", value) + + @property + @pulumi.getter(name="storageConfiguration") + def storage_configuration(self) -> Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']]: + return pulumi.get(self, "storage_configuration") + + @storage_configuration.setter + def storage_configuration(self, value: Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']]): + pulumi.set(self, "storage_configuration", value) + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of subnet ids to deploy environment to. + """ + return pulumi.get(self, "subnet_ids") + + @subnet_ids.setter + def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "subnet_ids", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value tags for the place index. 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['EnvironmentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['EnvironmentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +@pulumi.input_type +class _EnvironmentState: + def __init__(__self__, *, + apply_changes_during_maintenance_window: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + high_availability_config: Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_configuration: Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']] = None, + subnet_ids: Optional[pulumi.Input[Sequence[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['EnvironmentTimeoutsArgs']] = None): + """ + Input properties used for looking up and filtering Environment resources. + :param pulumi.Input[str] arn: ARN of the Environment. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus` or `bluage`. + :param pulumi.Input[str] engine_version: The specific version of the engine for the Environment. + :param pulumi.Input[str] environment_id: The id of the Environment. + :param pulumi.Input[bool] force_update: Force update the environment even if applications are running. + :param pulumi.Input[str] instance_type: M2 Instance Type. + + The following arguments are optional: + :param pulumi.Input[str] kms_key_id: ARN of the KMS key to use for the Environment. + :param pulumi.Input[str] load_balancer_arn: ARN of the load balancer created by the Environment. + :param pulumi.Input[str] name: Name of the runtime environment. Must be unique within the account. + :param pulumi.Input[str] preferred_maintenance_window: Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + :param pulumi.Input[bool] publicly_accessible: Allow applications deployed to this environment to be publicly accessible. + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group ids. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet ids to deploy environment to. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the place index. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + if apply_changes_during_maintenance_window is not None: + pulumi.set(__self__, "apply_changes_during_maintenance_window", apply_changes_during_maintenance_window) + if arn is not None: + pulumi.set(__self__, "arn", arn) + if description is not None: + pulumi.set(__self__, "description", description) + if engine_type is not None: + pulumi.set(__self__, "engine_type", engine_type) + if engine_version is not None: + pulumi.set(__self__, "engine_version", engine_version) + if environment_id is not None: + pulumi.set(__self__, "environment_id", environment_id) + if force_update is not None: + pulumi.set(__self__, "force_update", force_update) + if high_availability_config is not None: + pulumi.set(__self__, "high_availability_config", high_availability_config) + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + if load_balancer_arn is not None: + pulumi.set(__self__, "load_balancer_arn", load_balancer_arn) + if name is not None: + pulumi.set(__self__, "name", name) + if preferred_maintenance_window is not None: + pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + if publicly_accessible is not None: + pulumi.set(__self__, "publicly_accessible", publicly_accessible) + if security_group_ids is not None: + pulumi.set(__self__, "security_group_ids", security_group_ids) + if storage_configuration is not None: + pulumi.set(__self__, "storage_configuration", storage_configuration) + if subnet_ids is not None: + pulumi.set(__self__, "subnet_ids", subnet_ids) + 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) + + @property + @pulumi.getter(name="applyChangesDuringMaintenanceWindow") + def apply_changes_during_maintenance_window(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "apply_changes_during_maintenance_window") + + @apply_changes_during_maintenance_window.setter + def apply_changes_during_maintenance_window(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "apply_changes_during_maintenance_window", value) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the Environment. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", 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(name="engineType") + def engine_type(self) -> Optional[pulumi.Input[str]]: + """ + Engine type must be `microfocus` or `bluage`. + """ + return pulumi.get(self, "engine_type") + + @engine_type.setter + def engine_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_type", value) + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> Optional[pulumi.Input[str]]: + """ + The specific version of the engine for the Environment. + """ + return pulumi.get(self, "engine_version") + + @engine_version.setter + def engine_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "engine_version", value) + + @property + @pulumi.getter(name="environmentId") + def environment_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the Environment. + """ + return pulumi.get(self, "environment_id") + + @environment_id.setter + def environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "environment_id", value) + + @property + @pulumi.getter(name="forceUpdate") + def force_update(self) -> Optional[pulumi.Input[bool]]: + """ + Force update the environment even if applications are running. + """ + return pulumi.get(self, "force_update") + + @force_update.setter + def force_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "force_update", value) + + @property + @pulumi.getter(name="highAvailabilityConfig") + def high_availability_config(self) -> Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']]: + return pulumi.get(self, "high_availability_config") + + @high_availability_config.setter + def high_availability_config(self, value: Optional[pulumi.Input['EnvironmentHighAvailabilityConfigArgs']]): + pulumi.set(self, "high_availability_config", value) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[pulumi.Input[str]]: + """ + M2 Instance Type. + + The following arguments are optional: + """ + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the KMS key to use for the Environment. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + @property + @pulumi.getter(name="loadBalancerArn") + def load_balancer_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the load balancer created by the Environment. + """ + return pulumi.get(self, "load_balancer_arn") + + @load_balancer_arn.setter + def load_balancer_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "load_balancer_arn", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the runtime environment. Must be unique within the 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="preferredMaintenanceWindow") + def preferred_maintenance_window(self) -> Optional[pulumi.Input[str]]: + """ + Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + """ + return pulumi.get(self, "preferred_maintenance_window") + + @preferred_maintenance_window.setter + def preferred_maintenance_window(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "preferred_maintenance_window", value) + + @property + @pulumi.getter(name="publiclyAccessible") + def publicly_accessible(self) -> Optional[pulumi.Input[bool]]: + """ + Allow applications deployed to this environment to be publicly accessible. + """ + return pulumi.get(self, "publicly_accessible") + + @publicly_accessible.setter + def publicly_accessible(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "publicly_accessible", value) + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of security group ids. + """ + return pulumi.get(self, "security_group_ids") + + @security_group_ids.setter + def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "security_group_ids", value) + + @property + @pulumi.getter(name="storageConfiguration") + def storage_configuration(self) -> Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']]: + return pulumi.get(self, "storage_configuration") + + @storage_configuration.setter + def storage_configuration(self, value: Optional[pulumi.Input['EnvironmentStorageConfigurationArgs']]): + pulumi.set(self, "storage_configuration", value) + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of subnet ids to deploy environment to. + """ + return pulumi.get(self, "subnet_ids") + + @subnet_ids.setter + def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "subnet_ids", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Key-value tags for the place index. 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") + def tags_all(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + + 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['EnvironmentTimeoutsArgs']]: + return pulumi.get(self, "timeouts") + + @timeouts.setter + def timeouts(self, value: Optional[pulumi.Input['EnvironmentTimeoutsArgs']]): + pulumi.set(self, "timeouts", value) + + +class Environment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + apply_changes_during_maintenance_window: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + high_availability_config: Optional[pulumi.Input[pulumi.InputType['EnvironmentHighAvailabilityConfigArgs']]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_configuration: Optional[pulumi.Input[pulumi.InputType['EnvironmentStorageConfigurationArgs']]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['EnvironmentTimeoutsArgs']]] = None, + __props__=None): + """ + Resource for managing an [AWS Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). + + ## Example Usage + + ## Import + + Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: + + ```sh + $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus` or `bluage`. + :param pulumi.Input[str] engine_version: The specific version of the engine for the Environment. + :param pulumi.Input[bool] force_update: Force update the environment even if applications are running. + :param pulumi.Input[str] instance_type: M2 Instance Type. + + The following arguments are optional: + :param pulumi.Input[str] kms_key_id: ARN of the KMS key to use for the Environment. + :param pulumi.Input[str] name: Name of the runtime environment. Must be unique within the account. + :param pulumi.Input[str] preferred_maintenance_window: Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + :param pulumi.Input[bool] publicly_accessible: Allow applications deployed to this environment to be publicly accessible. + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group ids. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet ids to deploy environment to. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the place index. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EnvironmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an [AWS Mainframe Modernization Environment](https://docs.aws.amazon.com/m2/latest/userguide/environments-m2.html). + + ## Example Usage + + ## Import + + Using `pulumi import`, import Mainframe Modernization Environment using the `01234567890abcdef012345678`. For example: + + ```sh + $ pulumi import aws:m2/environment:Environment example 01234567890abcdef012345678 + ``` + + :param str resource_name: The name of the resource. + :param EnvironmentArgs 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(EnvironmentArgs, 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, + apply_changes_during_maintenance_window: Optional[pulumi.Input[bool]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + high_availability_config: Optional[pulumi.Input[pulumi.InputType['EnvironmentHighAvailabilityConfigArgs']]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_configuration: Optional[pulumi.Input[pulumi.InputType['EnvironmentStorageConfigurationArgs']]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + timeouts: Optional[pulumi.Input[pulumi.InputType['EnvironmentTimeoutsArgs']]] = 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__ = EnvironmentArgs.__new__(EnvironmentArgs) + + __props__.__dict__["apply_changes_during_maintenance_window"] = apply_changes_during_maintenance_window + __props__.__dict__["description"] = description + if engine_type is None and not opts.urn: + raise TypeError("Missing required property 'engine_type'") + __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["engine_version"] = engine_version + __props__.__dict__["force_update"] = force_update + __props__.__dict__["high_availability_config"] = high_availability_config + if instance_type is None and not opts.urn: + raise TypeError("Missing required property 'instance_type'") + __props__.__dict__["instance_type"] = instance_type + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["name"] = name + __props__.__dict__["preferred_maintenance_window"] = preferred_maintenance_window + __props__.__dict__["publicly_accessible"] = publicly_accessible + __props__.__dict__["security_group_ids"] = security_group_ids + __props__.__dict__["storage_configuration"] = storage_configuration + __props__.__dict__["subnet_ids"] = subnet_ids + __props__.__dict__["tags"] = tags + __props__.__dict__["timeouts"] = timeouts + __props__.__dict__["arn"] = None + __props__.__dict__["environment_id"] = None + __props__.__dict__["load_balancer_arn"] = None + __props__.__dict__["tags_all"] = None + super(Environment, __self__).__init__( + 'aws:m2/environment:Environment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + apply_changes_during_maintenance_window: Optional[pulumi.Input[bool]] = None, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + engine_type: Optional[pulumi.Input[str]] = None, + engine_version: Optional[pulumi.Input[str]] = None, + environment_id: Optional[pulumi.Input[str]] = None, + force_update: Optional[pulumi.Input[bool]] = None, + high_availability_config: Optional[pulumi.Input[pulumi.InputType['EnvironmentHighAvailabilityConfigArgs']]] = None, + instance_type: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + load_balancer_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + publicly_accessible: Optional[pulumi.Input[bool]] = None, + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + storage_configuration: Optional[pulumi.Input[pulumi.InputType['EnvironmentStorageConfigurationArgs']]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[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[pulumi.InputType['EnvironmentTimeoutsArgs']]] = None) -> 'Environment': + """ + Get an existing Environment 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: ARN of the Environment. + :param pulumi.Input[str] engine_type: Engine type must be `microfocus` or `bluage`. + :param pulumi.Input[str] engine_version: The specific version of the engine for the Environment. + :param pulumi.Input[str] environment_id: The id of the Environment. + :param pulumi.Input[bool] force_update: Force update the environment even if applications are running. + :param pulumi.Input[str] instance_type: M2 Instance Type. + + The following arguments are optional: + :param pulumi.Input[str] kms_key_id: ARN of the KMS key to use for the Environment. + :param pulumi.Input[str] load_balancer_arn: ARN of the load balancer created by the Environment. + :param pulumi.Input[str] name: Name of the runtime environment. Must be unique within the account. + :param pulumi.Input[str] preferred_maintenance_window: Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + :param pulumi.Input[bool] publicly_accessible: Allow applications deployed to this environment to be publicly accessible. + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group ids. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet ids to deploy environment to. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value tags for the place index. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EnvironmentState.__new__(_EnvironmentState) + + __props__.__dict__["apply_changes_during_maintenance_window"] = apply_changes_during_maintenance_window + __props__.__dict__["arn"] = arn + __props__.__dict__["description"] = description + __props__.__dict__["engine_type"] = engine_type + __props__.__dict__["engine_version"] = engine_version + __props__.__dict__["environment_id"] = environment_id + __props__.__dict__["force_update"] = force_update + __props__.__dict__["high_availability_config"] = high_availability_config + __props__.__dict__["instance_type"] = instance_type + __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["load_balancer_arn"] = load_balancer_arn + __props__.__dict__["name"] = name + __props__.__dict__["preferred_maintenance_window"] = preferred_maintenance_window + __props__.__dict__["publicly_accessible"] = publicly_accessible + __props__.__dict__["security_group_ids"] = security_group_ids + __props__.__dict__["storage_configuration"] = storage_configuration + __props__.__dict__["subnet_ids"] = subnet_ids + __props__.__dict__["tags"] = tags + __props__.__dict__["tags_all"] = tags_all + __props__.__dict__["timeouts"] = timeouts + return Environment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="applyChangesDuringMaintenanceWindow") + def apply_changes_during_maintenance_window(self) -> pulumi.Output[Optional[bool]]: + return pulumi.get(self, "apply_changes_during_maintenance_window") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + ARN of the Environment. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="engineType") + def engine_type(self) -> pulumi.Output[str]: + """ + Engine type must be `microfocus` or `bluage`. + """ + return pulumi.get(self, "engine_type") + + @property + @pulumi.getter(name="engineVersion") + def engine_version(self) -> pulumi.Output[str]: + """ + The specific version of the engine for the Environment. + """ + return pulumi.get(self, "engine_version") + + @property + @pulumi.getter(name="environmentId") + def environment_id(self) -> pulumi.Output[str]: + """ + The id of the Environment. + """ + return pulumi.get(self, "environment_id") + + @property + @pulumi.getter(name="forceUpdate") + def force_update(self) -> pulumi.Output[Optional[bool]]: + """ + Force update the environment even if applications are running. + """ + return pulumi.get(self, "force_update") + + @property + @pulumi.getter(name="highAvailabilityConfig") + def high_availability_config(self) -> pulumi.Output[Optional['outputs.EnvironmentHighAvailabilityConfig']]: + return pulumi.get(self, "high_availability_config") + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> pulumi.Output[str]: + """ + M2 Instance Type. + + The following arguments are optional: + """ + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> pulumi.Output[Optional[str]]: + """ + ARN of the KMS key to use for the Environment. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter(name="loadBalancerArn") + def load_balancer_arn(self) -> pulumi.Output[str]: + """ + ARN of the load balancer created by the Environment. + """ + return pulumi.get(self, "load_balancer_arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the runtime environment. Must be unique within the account. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="preferredMaintenanceWindow") + def preferred_maintenance_window(self) -> pulumi.Output[str]: + """ + Configures the maintenance window that you want for the runtime environment. The maintenance window must have the format `ddd:hh24:mi-ddd:hh24:mi` and must be less than 24 hours. If not provided a random value will be used. + """ + return pulumi.get(self, "preferred_maintenance_window") + + @property + @pulumi.getter(name="publiclyAccessible") + def publicly_accessible(self) -> pulumi.Output[bool]: + """ + Allow applications deployed to this environment to be publicly accessible. + """ + return pulumi.get(self, "publicly_accessible") + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> pulumi.Output[Sequence[str]]: + """ + List of security group ids. + """ + return pulumi.get(self, "security_group_ids") + + @property + @pulumi.getter(name="storageConfiguration") + def storage_configuration(self) -> pulumi.Output[Optional['outputs.EnvironmentStorageConfiguration']]: + return pulumi.get(self, "storage_configuration") + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Output[Sequence[str]]: + """ + List of subnet ids to deploy environment to. + """ + return pulumi.get(self, "subnet_ids") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value tags for the place index. 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") + def tags_all(self) -> pulumi.Output[Mapping[str, str]]: + warnings.warn("""Please use `tags` instead.""", DeprecationWarning) + pulumi.log.warn("""tags_all is deprecated: Please use `tags` instead.""") + + return pulumi.get(self, "tags_all") + + @property + @pulumi.getter + def timeouts(self) -> pulumi.Output[Optional['outputs.EnvironmentTimeouts']]: + return pulumi.get(self, "timeouts") + diff --git a/sdk/python/pulumi_aws/m2/outputs.py b/sdk/python/pulumi_aws/m2/outputs.py new file mode 100644 index 00000000000..7a30ac7add2 --- /dev/null +++ b/sdk/python/pulumi_aws/m2/outputs.py @@ -0,0 +1,352 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs + +__all__ = [ + 'ApplicationDefinition', + 'ApplicationTimeouts', + 'DeploymentTimeouts', + 'EnvironmentHighAvailabilityConfig', + 'EnvironmentStorageConfiguration', + 'EnvironmentStorageConfigurationEfs', + 'EnvironmentStorageConfigurationFsx', + 'EnvironmentTimeouts', +] + +@pulumi.output_type +class ApplicationDefinition(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3Location": + suggest = "s3_location" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationDefinition. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationDefinition.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationDefinition.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + content: Optional[str] = None, + s3_location: Optional[str] = None): + """ + :param str content: JSON application definition. Either this or `s3_location` must be specified. + :param str s3_location: Location of the application definition in S3. Either this or `content` must be specified. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if s3_location is not None: + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter + def content(self) -> Optional[str]: + """ + JSON application definition. Either this or `s3_location` must be specified. + """ + return pulumi.get(self, "content") + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> Optional[str]: + """ + Location of the application definition in S3. Either this or `content` must be specified. + """ + return pulumi.get(self, "s3_location") + + +@pulumi.output_type +class ApplicationTimeouts(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 DeploymentTimeouts(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 EnvironmentHighAvailabilityConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "desiredCapacity": + suggest = "desired_capacity" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in EnvironmentHighAvailabilityConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + EnvironmentHighAvailabilityConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + EnvironmentHighAvailabilityConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + desired_capacity: int): + """ + :param int desired_capacity: Desired number of instances for the Environment. + """ + pulumi.set(__self__, "desired_capacity", desired_capacity) + + @property + @pulumi.getter(name="desiredCapacity") + def desired_capacity(self) -> int: + """ + Desired number of instances for the Environment. + """ + return pulumi.get(self, "desired_capacity") + + +@pulumi.output_type +class EnvironmentStorageConfiguration(dict): + def __init__(__self__, *, + efs: Optional['outputs.EnvironmentStorageConfigurationEfs'] = None, + fsx: Optional['outputs.EnvironmentStorageConfigurationFsx'] = None): + if efs is not None: + pulumi.set(__self__, "efs", efs) + if fsx is not None: + pulumi.set(__self__, "fsx", fsx) + + @property + @pulumi.getter + def efs(self) -> Optional['outputs.EnvironmentStorageConfigurationEfs']: + return pulumi.get(self, "efs") + + @property + @pulumi.getter + def fsx(self) -> Optional['outputs.EnvironmentStorageConfigurationFsx']: + return pulumi.get(self, "fsx") + + +@pulumi.output_type +class EnvironmentStorageConfigurationEfs(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "fileSystemId": + suggest = "file_system_id" + elif key == "mountPoint": + suggest = "mount_point" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in EnvironmentStorageConfigurationEfs. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + EnvironmentStorageConfigurationEfs.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + EnvironmentStorageConfigurationEfs.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + file_system_id: str, + mount_point: str): + """ + :param str file_system_id: Id of the EFS filesystem to mount. + :param str mount_point: Path to mount the filesystem on, must start with `/m2/mount/`. + """ + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "mount_point", mount_point) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> str: + """ + Id of the EFS filesystem to mount. + """ + return pulumi.get(self, "file_system_id") + + @property + @pulumi.getter(name="mountPoint") + def mount_point(self) -> str: + """ + Path to mount the filesystem on, must start with `/m2/mount/`. + """ + return pulumi.get(self, "mount_point") + + +@pulumi.output_type +class EnvironmentStorageConfigurationFsx(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "fileSystemId": + suggest = "file_system_id" + elif key == "mountPoint": + suggest = "mount_point" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in EnvironmentStorageConfigurationFsx. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + EnvironmentStorageConfigurationFsx.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + EnvironmentStorageConfigurationFsx.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + file_system_id: str, + mount_point: str): + """ + :param str file_system_id: Id of the FSX filesystem to mount. + :param str mount_point: Path to mount the filesystem on, must start with `/m2/mount/`. + """ + pulumi.set(__self__, "file_system_id", file_system_id) + pulumi.set(__self__, "mount_point", mount_point) + + @property + @pulumi.getter(name="fileSystemId") + def file_system_id(self) -> str: + """ + Id of the FSX filesystem to mount. + """ + return pulumi.get(self, "file_system_id") + + @property + @pulumi.getter(name="mountPoint") + def mount_point(self) -> str: + """ + Path to mount the filesystem on, must start with `/m2/mount/`. + """ + return pulumi.get(self, "mount_point") + + +@pulumi.output_type +class EnvironmentTimeouts(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") + + diff --git a/sdk/python/pulumi_aws/mediastore/container_policy.py b/sdk/python/pulumi_aws/mediastore/container_policy.py index 6434d9afc14..aa739795a56 100644 --- a/sdk/python/pulumi_aws/mediastore/container_policy.py +++ b/sdk/python/pulumi_aws/mediastore/container_policy.py @@ -98,8 +98,6 @@ def __init__(__self__, policy: Optional[pulumi.Input[str]] = None, __props__=None): """ - Provides a MediaStore Container Policy. - ## Example Usage @@ -151,8 +149,6 @@ def __init__(__self__, args: ContainerPolicyArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Provides a MediaStore Container Policy. - ## Example Usage diff --git a/sdk/python/pulumi_aws/rds/get_snapshot.py b/sdk/python/pulumi_aws/rds/get_snapshot.py index 902f72d75b1..cbdde619c66 100644 --- a/sdk/python/pulumi_aws/rds/get_snapshot.py +++ b/sdk/python/pulumi_aws/rds/get_snapshot.py @@ -21,7 +21,7 @@ class GetSnapshotResult: """ A collection of values returned by getSnapshot. """ - def __init__(__self__, allocated_storage=None, availability_zone=None, db_instance_identifier=None, db_snapshot_arn=None, db_snapshot_identifier=None, encrypted=None, engine=None, engine_version=None, id=None, include_public=None, include_shared=None, iops=None, kms_key_id=None, license_model=None, most_recent=None, option_group_name=None, port=None, snapshot_create_time=None, snapshot_type=None, source_db_snapshot_identifier=None, source_region=None, status=None, storage_type=None, tags=None, vpc_id=None): + def __init__(__self__, allocated_storage=None, availability_zone=None, db_instance_identifier=None, db_snapshot_arn=None, db_snapshot_identifier=None, encrypted=None, engine=None, engine_version=None, id=None, include_public=None, include_shared=None, iops=None, kms_key_id=None, license_model=None, most_recent=None, option_group_name=None, original_snapshot_create_time=None, port=None, snapshot_create_time=None, snapshot_type=None, source_db_snapshot_identifier=None, source_region=None, status=None, storage_type=None, tags=None, vpc_id=None): if allocated_storage and not isinstance(allocated_storage, int): raise TypeError("Expected argument 'allocated_storage' to be a int") pulumi.set(__self__, "allocated_storage", allocated_storage) @@ -70,6 +70,9 @@ def __init__(__self__, allocated_storage=None, availability_zone=None, db_instan if option_group_name and not isinstance(option_group_name, str): raise TypeError("Expected argument 'option_group_name' to be a str") pulumi.set(__self__, "option_group_name", option_group_name) + if original_snapshot_create_time and not isinstance(original_snapshot_create_time, str): + raise TypeError("Expected argument 'original_snapshot_create_time' to be a str") + pulumi.set(__self__, "original_snapshot_create_time", original_snapshot_create_time) if port and not isinstance(port, int): raise TypeError("Expected argument 'port' to be a int") pulumi.set(__self__, "port", port) @@ -211,6 +214,14 @@ def option_group_name(self) -> str: """ return pulumi.get(self, "option_group_name") + @property + @pulumi.getter(name="originalSnapshotCreateTime") + def original_snapshot_create_time(self) -> str: + """ + Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Doesn't change when the snapshot is copied. + """ + return pulumi.get(self, "original_snapshot_create_time") + @property @pulumi.getter def port(self) -> int: @@ -220,7 +231,7 @@ def port(self) -> int: @pulumi.getter(name="snapshotCreateTime") def snapshot_create_time(self) -> str: """ - Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). + Provides the time when the snapshot was taken, in Universal Coordinated Time (UTC). Changes for the copy when the snapshot is copied. """ return pulumi.get(self, "snapshot_create_time") @@ -297,6 +308,7 @@ def __await__(self): license_model=self.license_model, most_recent=self.most_recent, option_group_name=self.option_group_name, + original_snapshot_create_time=self.original_snapshot_create_time, port=self.port, snapshot_create_time=self.snapshot_create_time, snapshot_type=self.snapshot_type, @@ -393,6 +405,7 @@ def get_snapshot(db_instance_identifier: Optional[str] = None, license_model=pulumi.get(__ret__, 'license_model'), most_recent=pulumi.get(__ret__, 'most_recent'), option_group_name=pulumi.get(__ret__, 'option_group_name'), + original_snapshot_create_time=pulumi.get(__ret__, 'original_snapshot_create_time'), port=pulumi.get(__ret__, 'port'), snapshot_create_time=pulumi.get(__ret__, 'snapshot_create_time'), snapshot_type=pulumi.get(__ret__, 'snapshot_type'), diff --git a/sdk/python/pulumi_aws/redshiftserverless/__init__.py b/sdk/python/pulumi_aws/redshiftserverless/__init__.py index 45a84d76898..408321dfb5e 100644 --- a/sdk/python/pulumi_aws/redshiftserverless/__init__.py +++ b/sdk/python/pulumi_aws/redshiftserverless/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .custom_domain_association import * from .endpoint_access import * from .get_credentials import * from .get_namespace import * diff --git a/sdk/python/pulumi_aws/redshiftserverless/custom_domain_association.py b/sdk/python/pulumi_aws/redshiftserverless/custom_domain_association.py new file mode 100644 index 00000000000..b1b8bbd74d7 --- /dev/null +++ b/sdk/python/pulumi_aws/redshiftserverless/custom_domain_association.py @@ -0,0 +1,324 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['CustomDomainAssociationArgs', 'CustomDomainAssociation'] + +@pulumi.input_type +class CustomDomainAssociationArgs: + def __init__(__self__, *, + custom_domain_certificate_arn: pulumi.Input[str], + custom_domain_name: pulumi.Input[str], + workgroup_name: pulumi.Input[str]): + """ + The set of arguments for constructing a CustomDomainAssociation resource. + :param pulumi.Input[str] custom_domain_certificate_arn: ARN of the certificate for the custom domain association. + :param pulumi.Input[str] custom_domain_name: Custom domain to associate with the workgroup. + :param pulumi.Input[str] workgroup_name: Name of the workgroup. + """ + pulumi.set(__self__, "custom_domain_certificate_arn", custom_domain_certificate_arn) + pulumi.set(__self__, "custom_domain_name", custom_domain_name) + pulumi.set(__self__, "workgroup_name", workgroup_name) + + @property + @pulumi.getter(name="customDomainCertificateArn") + def custom_domain_certificate_arn(self) -> pulumi.Input[str]: + """ + ARN of the certificate for the custom domain association. + """ + return pulumi.get(self, "custom_domain_certificate_arn") + + @custom_domain_certificate_arn.setter + def custom_domain_certificate_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "custom_domain_certificate_arn", value) + + @property + @pulumi.getter(name="customDomainName") + def custom_domain_name(self) -> pulumi.Input[str]: + """ + Custom domain to associate with the workgroup. + """ + return pulumi.get(self, "custom_domain_name") + + @custom_domain_name.setter + def custom_domain_name(self, value: pulumi.Input[str]): + pulumi.set(self, "custom_domain_name", value) + + @property + @pulumi.getter(name="workgroupName") + def workgroup_name(self) -> pulumi.Input[str]: + """ + Name of the workgroup. + """ + return pulumi.get(self, "workgroup_name") + + @workgroup_name.setter + def workgroup_name(self, value: pulumi.Input[str]): + pulumi.set(self, "workgroup_name", value) + + +@pulumi.input_type +class _CustomDomainAssociationState: + def __init__(__self__, *, + custom_domain_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_certificate_expiry_time: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering CustomDomainAssociation resources. + :param pulumi.Input[str] custom_domain_certificate_arn: ARN of the certificate for the custom domain association. + :param pulumi.Input[str] custom_domain_certificate_expiry_time: Expiration time for the certificate. + :param pulumi.Input[str] custom_domain_name: Custom domain to associate with the workgroup. + :param pulumi.Input[str] workgroup_name: Name of the workgroup. + """ + if custom_domain_certificate_arn is not None: + pulumi.set(__self__, "custom_domain_certificate_arn", custom_domain_certificate_arn) + if custom_domain_certificate_expiry_time is not None: + pulumi.set(__self__, "custom_domain_certificate_expiry_time", custom_domain_certificate_expiry_time) + if custom_domain_name is not None: + pulumi.set(__self__, "custom_domain_name", custom_domain_name) + if workgroup_name is not None: + pulumi.set(__self__, "workgroup_name", workgroup_name) + + @property + @pulumi.getter(name="customDomainCertificateArn") + def custom_domain_certificate_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of the certificate for the custom domain association. + """ + return pulumi.get(self, "custom_domain_certificate_arn") + + @custom_domain_certificate_arn.setter + def custom_domain_certificate_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_domain_certificate_arn", value) + + @property + @pulumi.getter(name="customDomainCertificateExpiryTime") + def custom_domain_certificate_expiry_time(self) -> Optional[pulumi.Input[str]]: + """ + Expiration time for the certificate. + """ + return pulumi.get(self, "custom_domain_certificate_expiry_time") + + @custom_domain_certificate_expiry_time.setter + def custom_domain_certificate_expiry_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_domain_certificate_expiry_time", value) + + @property + @pulumi.getter(name="customDomainName") + def custom_domain_name(self) -> Optional[pulumi.Input[str]]: + """ + Custom domain to associate with the workgroup. + """ + return pulumi.get(self, "custom_domain_name") + + @custom_domain_name.setter + def custom_domain_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_domain_name", value) + + @property + @pulumi.getter(name="workgroupName") + def workgroup_name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the workgroup. + """ + return pulumi.get(self, "workgroup_name") + + @workgroup_name.setter + def workgroup_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "workgroup_name", value) + + +class CustomDomainAssociation(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + custom_domain_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS Redshift Serverless Custom Domain Association. + + ## Example Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.acm.Certificate("example", domain_name="example.com") + example_namespace = aws.redshiftserverless.Namespace("example", namespace_name="example-namespace") + example_workgroup = aws.redshiftserverless.Workgroup("example", + workgroup_name="example-workgroup", + namespace_name=example_namespace.namespace_name) + example_custom_domain_association = aws.redshiftserverless.CustomDomainAssociation("example", + workgroup_name=example_workgroup.workgroup_name, + custom_domain_name="example.com", + custom_domain_certificate_arn=example.arn) + ``` + + + ## Import + + Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: + + ```sh + $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] custom_domain_certificate_arn: ARN of the certificate for the custom domain association. + :param pulumi.Input[str] custom_domain_name: Custom domain to associate with the workgroup. + :param pulumi.Input[str] workgroup_name: Name of the workgroup. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CustomDomainAssociationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Redshift Serverless Custom Domain Association. + + ## Example Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.acm.Certificate("example", domain_name="example.com") + example_namespace = aws.redshiftserverless.Namespace("example", namespace_name="example-namespace") + example_workgroup = aws.redshiftserverless.Workgroup("example", + workgroup_name="example-workgroup", + namespace_name=example_namespace.namespace_name) + example_custom_domain_association = aws.redshiftserverless.CustomDomainAssociation("example", + workgroup_name=example_workgroup.workgroup_name, + custom_domain_name="example.com", + custom_domain_certificate_arn=example.arn) + ``` + + + ## Import + + Using `pulumi import`, import Redshift Serverless Custom Domain Association using the `workgroup_name` and `custom_domain_name`, separated by the coma. For example: + + ```sh + $ pulumi import aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation example example-workgroup,example.com + ``` + + :param str resource_name: The name of the resource. + :param CustomDomainAssociationArgs 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(CustomDomainAssociationArgs, 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, + custom_domain_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + workgroup_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__ = CustomDomainAssociationArgs.__new__(CustomDomainAssociationArgs) + + if custom_domain_certificate_arn is None and not opts.urn: + raise TypeError("Missing required property 'custom_domain_certificate_arn'") + __props__.__dict__["custom_domain_certificate_arn"] = custom_domain_certificate_arn + if custom_domain_name is None and not opts.urn: + raise TypeError("Missing required property 'custom_domain_name'") + __props__.__dict__["custom_domain_name"] = custom_domain_name + if workgroup_name is None and not opts.urn: + raise TypeError("Missing required property 'workgroup_name'") + __props__.__dict__["workgroup_name"] = workgroup_name + __props__.__dict__["custom_domain_certificate_expiry_time"] = None + super(CustomDomainAssociation, __self__).__init__( + 'aws:redshiftserverless/customDomainAssociation:CustomDomainAssociation', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + custom_domain_certificate_arn: Optional[pulumi.Input[str]] = None, + custom_domain_certificate_expiry_time: Optional[pulumi.Input[str]] = None, + custom_domain_name: Optional[pulumi.Input[str]] = None, + workgroup_name: Optional[pulumi.Input[str]] = None) -> 'CustomDomainAssociation': + """ + Get an existing CustomDomainAssociation 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] custom_domain_certificate_arn: ARN of the certificate for the custom domain association. + :param pulumi.Input[str] custom_domain_certificate_expiry_time: Expiration time for the certificate. + :param pulumi.Input[str] custom_domain_name: Custom domain to associate with the workgroup. + :param pulumi.Input[str] workgroup_name: Name of the workgroup. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CustomDomainAssociationState.__new__(_CustomDomainAssociationState) + + __props__.__dict__["custom_domain_certificate_arn"] = custom_domain_certificate_arn + __props__.__dict__["custom_domain_certificate_expiry_time"] = custom_domain_certificate_expiry_time + __props__.__dict__["custom_domain_name"] = custom_domain_name + __props__.__dict__["workgroup_name"] = workgroup_name + return CustomDomainAssociation(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="customDomainCertificateArn") + def custom_domain_certificate_arn(self) -> pulumi.Output[str]: + """ + ARN of the certificate for the custom domain association. + """ + return pulumi.get(self, "custom_domain_certificate_arn") + + @property + @pulumi.getter(name="customDomainCertificateExpiryTime") + def custom_domain_certificate_expiry_time(self) -> pulumi.Output[str]: + """ + Expiration time for the certificate. + """ + return pulumi.get(self, "custom_domain_certificate_expiry_time") + + @property + @pulumi.getter(name="customDomainName") + def custom_domain_name(self) -> pulumi.Output[str]: + """ + Custom domain to associate with the workgroup. + """ + return pulumi.get(self, "custom_domain_name") + + @property + @pulumi.getter(name="workgroupName") + def workgroup_name(self) -> pulumi.Output[str]: + """ + Name of the workgroup. + """ + return pulumi.get(self, "workgroup_name") + diff --git a/sdk/python/pulumi_aws/resourceexplorer/__init__.py b/sdk/python/pulumi_aws/resourceexplorer/__init__.py index 971071ee61b..28aabc11808 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/__init__.py +++ b/sdk/python/pulumi_aws/resourceexplorer/__init__.py @@ -6,6 +6,7 @@ import typing # Export this package's modules as members: from .index import * +from .search import * from .view import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws/resourceexplorer/_inputs.py b/sdk/python/pulumi_aws/resourceexplorer/_inputs.py index 9fdb6f50f02..774c763af98 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/_inputs.py +++ b/sdk/python/pulumi_aws/resourceexplorer/_inputs.py @@ -11,6 +11,9 @@ __all__ = [ 'IndexTimeoutsArgs', + 'SearchResourceArgs', + 'SearchResourceCountArgs', + 'SearchResourceResourcePropertyArgs', 'ViewFiltersArgs', 'ViewIncludedPropertyArgs', ] @@ -70,6 +73,204 @@ def update(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "update", value) +@pulumi.input_type +class SearchResourceArgs: + def __init__(__self__, *, + arn: str, + last_reported_at: str, + owning_account_id: str, + region: str, + resource_type: str, + service: str, + resource_properties: Optional[Sequence['SearchResourceResourcePropertyArgs']] = None): + """ + :param str arn: Amazon resource name of resource. + :param str last_reported_at: The date and time that the information about this resource property was last updated. + :param str owning_account_id: Amazon Web Services account that owns the resource. + :param str region: Amazon Web Services Region in which the resource was created and exists. + :param str resource_type: Type of the resource. + :param str service: Amazon Web Service that owns the resource and is responsible for creating and updating it. + :param Sequence['SearchResourceResourcePropertyArgs'] resource_properties: Structure with additional type-specific details about the resource. See `resource_property` below. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "last_reported_at", last_reported_at) + pulumi.set(__self__, "owning_account_id", owning_account_id) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "resource_type", resource_type) + pulumi.set(__self__, "service", service) + if resource_properties is not None: + pulumi.set(__self__, "resource_properties", resource_properties) + + @property + @pulumi.getter + def arn(self) -> str: + """ + Amazon resource name of resource. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: str): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter(name="lastReportedAt") + def last_reported_at(self) -> str: + """ + The date and time that the information about this resource property was last updated. + """ + return pulumi.get(self, "last_reported_at") + + @last_reported_at.setter + def last_reported_at(self, value: str): + pulumi.set(self, "last_reported_at", value) + + @property + @pulumi.getter(name="owningAccountId") + def owning_account_id(self) -> str: + """ + Amazon Web Services account that owns the resource. + """ + return pulumi.get(self, "owning_account_id") + + @owning_account_id.setter + def owning_account_id(self, value: str): + pulumi.set(self, "owning_account_id", value) + + @property + @pulumi.getter + def region(self) -> str: + """ + Amazon Web Services Region in which the resource was created and exists. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: str): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> str: + """ + Type of the resource. + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: str): + pulumi.set(self, "resource_type", value) + + @property + @pulumi.getter + def service(self) -> str: + """ + Amazon Web Service that owns the resource and is responsible for creating and updating it. + """ + return pulumi.get(self, "service") + + @service.setter + def service(self, value: str): + pulumi.set(self, "service", value) + + @property + @pulumi.getter(name="resourceProperties") + def resource_properties(self) -> Optional[Sequence['SearchResourceResourcePropertyArgs']]: + """ + Structure with additional type-specific details about the resource. See `resource_property` below. + """ + return pulumi.get(self, "resource_properties") + + @resource_properties.setter + def resource_properties(self, value: Optional[Sequence['SearchResourceResourcePropertyArgs']]): + pulumi.set(self, "resource_properties", value) + + +@pulumi.input_type +class SearchResourceCountArgs: + def __init__(__self__, *, + completed: bool, + total_resources: int): + """ + :param int total_resources: Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + """ + pulumi.set(__self__, "completed", completed) + pulumi.set(__self__, "total_resources", total_resources) + + @property + @pulumi.getter + def completed(self) -> bool: + return pulumi.get(self, "completed") + + @completed.setter + def completed(self, value: bool): + pulumi.set(self, "completed", value) + + @property + @pulumi.getter(name="totalResources") + def total_resources(self) -> int: + """ + Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + """ + return pulumi.get(self, "total_resources") + + @total_resources.setter + def total_resources(self, value: int): + pulumi.set(self, "total_resources", value) + + +@pulumi.input_type +class SearchResourceResourcePropertyArgs: + def __init__(__self__, *, + data: str, + last_reported_at: str, + name: str): + """ + :param str data: Details about this property. The content of this field is a JSON object that varies based on the resource type. + :param str last_reported_at: The date and time that the information about this resource property was last updated. + :param str name: Name of this property of the resource. + """ + pulumi.set(__self__, "data", data) + pulumi.set(__self__, "last_reported_at", last_reported_at) + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def data(self) -> str: + """ + Details about this property. The content of this field is a JSON object that varies based on the resource type. + """ + return pulumi.get(self, "data") + + @data.setter + def data(self, value: str): + pulumi.set(self, "data", value) + + @property + @pulumi.getter(name="lastReportedAt") + def last_reported_at(self) -> str: + """ + The date and time that the information about this resource property was last updated. + """ + return pulumi.get(self, "last_reported_at") + + @last_reported_at.setter + def last_reported_at(self, value: str): + pulumi.set(self, "last_reported_at", value) + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of this property of the resource. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: str): + pulumi.set(self, "name", value) + + @pulumi.input_type class ViewFiltersArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/resourceexplorer/outputs.py b/sdk/python/pulumi_aws/resourceexplorer/outputs.py index 51f1c6dc39e..f4b4594879b 100644 --- a/sdk/python/pulumi_aws/resourceexplorer/outputs.py +++ b/sdk/python/pulumi_aws/resourceexplorer/outputs.py @@ -8,9 +8,13 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs __all__ = [ 'IndexTimeouts', + 'SearchResourceResult', + 'SearchResourceCountResult', + 'SearchResourceResourcePropertyResult', 'ViewFilters', 'ViewIncludedProperty', ] @@ -58,6 +62,156 @@ def update(self) -> Optional[str]: return pulumi.get(self, "update") +@pulumi.output_type +class SearchResourceResult(dict): + def __init__(__self__, *, + arn: str, + last_reported_at: str, + owning_account_id: str, + region: str, + resource_type: str, + service: str, + resource_properties: Optional[Sequence['outputs.SearchResourceResourcePropertyResult']] = None): + """ + :param str arn: Amazon resource name of resource. + :param str last_reported_at: The date and time that the information about this resource property was last updated. + :param str owning_account_id: Amazon Web Services account that owns the resource. + :param str region: Amazon Web Services Region in which the resource was created and exists. + :param str resource_type: Type of the resource. + :param str service: Amazon Web Service that owns the resource and is responsible for creating and updating it. + :param Sequence['SearchResourceResourcePropertyArgs'] resource_properties: Structure with additional type-specific details about the resource. See `resource_property` below. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "last_reported_at", last_reported_at) + pulumi.set(__self__, "owning_account_id", owning_account_id) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "resource_type", resource_type) + pulumi.set(__self__, "service", service) + if resource_properties is not None: + pulumi.set(__self__, "resource_properties", resource_properties) + + @property + @pulumi.getter + def arn(self) -> str: + """ + Amazon resource name of resource. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="lastReportedAt") + def last_reported_at(self) -> str: + """ + The date and time that the information about this resource property was last updated. + """ + return pulumi.get(self, "last_reported_at") + + @property + @pulumi.getter(name="owningAccountId") + def owning_account_id(self) -> str: + """ + Amazon Web Services account that owns the resource. + """ + return pulumi.get(self, "owning_account_id") + + @property + @pulumi.getter + def region(self) -> str: + """ + Amazon Web Services Region in which the resource was created and exists. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> str: + """ + Type of the resource. + """ + return pulumi.get(self, "resource_type") + + @property + @pulumi.getter + def service(self) -> str: + """ + Amazon Web Service that owns the resource and is responsible for creating and updating it. + """ + return pulumi.get(self, "service") + + @property + @pulumi.getter(name="resourceProperties") + def resource_properties(self) -> Optional[Sequence['outputs.SearchResourceResourcePropertyResult']]: + """ + Structure with additional type-specific details about the resource. See `resource_property` below. + """ + return pulumi.get(self, "resource_properties") + + +@pulumi.output_type +class SearchResourceCountResult(dict): + def __init__(__self__, *, + completed: bool, + total_resources: int): + """ + :param int total_resources: Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + """ + pulumi.set(__self__, "completed", completed) + pulumi.set(__self__, "total_resources", total_resources) + + @property + @pulumi.getter + def completed(self) -> bool: + return pulumi.get(self, "completed") + + @property + @pulumi.getter(name="totalResources") + def total_resources(self) -> int: + """ + Number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results. + """ + return pulumi.get(self, "total_resources") + + +@pulumi.output_type +class SearchResourceResourcePropertyResult(dict): + def __init__(__self__, *, + data: str, + last_reported_at: str, + name: str): + """ + :param str data: Details about this property. The content of this field is a JSON object that varies based on the resource type. + :param str last_reported_at: The date and time that the information about this resource property was last updated. + :param str name: Name of this property of the resource. + """ + pulumi.set(__self__, "data", data) + pulumi.set(__self__, "last_reported_at", last_reported_at) + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def data(self) -> str: + """ + Details about this property. The content of this field is a JSON object that varies based on the resource type. + """ + return pulumi.get(self, "data") + + @property + @pulumi.getter(name="lastReportedAt") + def last_reported_at(self) -> str: + """ + The date and time that the information about this resource property was last updated. + """ + return pulumi.get(self, "last_reported_at") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of this property of the resource. + """ + return pulumi.get(self, "name") + + @pulumi.output_type class ViewFilters(dict): @staticmethod diff --git a/sdk/python/pulumi_aws/resourceexplorer/search.py b/sdk/python/pulumi_aws/resourceexplorer/search.py new file mode 100644 index 00000000000..427322c292a --- /dev/null +++ b/sdk/python/pulumi_aws/resourceexplorer/search.py @@ -0,0 +1,168 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = [ + 'SearchResult', + 'AwaitableSearchResult', + 'search', + 'search_output', +] + +@pulumi.output_type +class SearchResult: + """ + A collection of values returned by Search. + """ + def __init__(__self__, id=None, query_string=None, resource_counts=None, resources=None, view_arn=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if query_string and not isinstance(query_string, str): + raise TypeError("Expected argument 'query_string' to be a str") + pulumi.set(__self__, "query_string", query_string) + if resource_counts and not isinstance(resource_counts, list): + raise TypeError("Expected argument 'resource_counts' to be a list") + pulumi.set(__self__, "resource_counts", resource_counts) + if resources and not isinstance(resources, list): + raise TypeError("Expected argument 'resources' to be a list") + pulumi.set(__self__, "resources", resources) + if view_arn and not isinstance(view_arn, str): + raise TypeError("Expected argument 'view_arn' to be a str") + pulumi.set(__self__, "view_arn", view_arn) + + @property + @pulumi.getter + def id(self) -> str: + """ + Query String. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="queryString") + def query_string(self) -> str: + return pulumi.get(self, "query_string") + + @property + @pulumi.getter(name="resourceCounts") + def resource_counts(self) -> Optional[Sequence['outputs.SearchResourceCountResult']]: + """ + Number of resources that match the query. See `resource_count` below. + """ + return pulumi.get(self, "resource_counts") + + @property + @pulumi.getter + def resources(self) -> Optional[Sequence['outputs.SearchResourceResult']]: + """ + List of structures that describe the resources that match the query. See `resources` below. + """ + return pulumi.get(self, "resources") + + @property + @pulumi.getter(name="viewArn") + def view_arn(self) -> Optional[str]: + return pulumi.get(self, "view_arn") + + +class AwaitableSearchResult(SearchResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return SearchResult( + id=self.id, + query_string=self.query_string, + resource_counts=self.resource_counts, + resources=self.resources, + view_arn=self.view_arn) + + +def search(query_string: Optional[str] = None, + resource_counts: Optional[Sequence[pulumi.InputType['SearchResourceCountArgs']]] = None, + resources: Optional[Sequence[pulumi.InputType['SearchResourceArgs']]] = None, + view_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableSearchResult: + """ + Data source for managing an AWS Resource Explorer Search. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.resourceexplorer.search(query_string="region:us-west-2", + view_arn=test["arn"]) + ``` + + + + :param str query_string: String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + + The following arguments are optional: + :param Sequence[pulumi.InputType['SearchResourceCountArgs']] resource_counts: Number of resources that match the query. See `resource_count` below. + :param Sequence[pulumi.InputType['SearchResourceArgs']] resources: List of structures that describe the resources that match the query. See `resources` below. + :param str view_arn: Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + """ + __args__ = dict() + __args__['queryString'] = query_string + __args__['resourceCounts'] = resource_counts + __args__['resources'] = resources + __args__['viewArn'] = view_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:resourceexplorer/search:Search', __args__, opts=opts, typ=SearchResult).value + + return AwaitableSearchResult( + id=pulumi.get(__ret__, 'id'), + query_string=pulumi.get(__ret__, 'query_string'), + resource_counts=pulumi.get(__ret__, 'resource_counts'), + resources=pulumi.get(__ret__, 'resources'), + view_arn=pulumi.get(__ret__, 'view_arn')) + + +@_utilities.lift_output_func(search) +def search_output(query_string: Optional[pulumi.Input[str]] = None, + resource_counts: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['SearchResourceCountArgs']]]]] = None, + resources: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['SearchResourceArgs']]]]] = None, + view_arn: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[SearchResult]: + """ + Data source for managing an AWS Resource Explorer Search. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.resourceexplorer.search(query_string="region:us-west-2", + view_arn=test["arn"]) + ``` + + + + :param str query_string: String that includes keywords and filters that specify the resources that you want to include in the results. For the complete syntax supported by the QueryString parameter, see Search query syntax reference for [Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html). The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results. The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results. + + The following arguments are optional: + :param Sequence[pulumi.InputType['SearchResourceCountArgs']] resource_counts: Number of resources that match the query. See `resource_count` below. + :param Sequence[pulumi.InputType['SearchResourceArgs']] resources: List of structures that describe the resources that match the query. See `resources` below. + :param str view_arn: Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the AWS Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a `401 Unauthorized` exception. + """ + ... diff --git a/sdk/python/pulumi_aws/secretsmanager/secret_version.py b/sdk/python/pulumi_aws/secretsmanager/secret_version.py index e5bf1f8d429..80a90461399 100644 --- a/sdk/python/pulumi_aws/secretsmanager/secret_version.py +++ b/sdk/python/pulumi_aws/secretsmanager/secret_version.py @@ -21,8 +21,8 @@ def __init__(__self__, *, """ The set of arguments for constructing a SecretVersion resource. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. - :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. - :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. + :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. :param pulumi.Input[Sequence[pulumi.Input[str]]] version_stages: Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. > **NOTE:** If `version_stages` is configured, you must include the `AWSCURRENT` staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference. @@ -51,7 +51,7 @@ def secret_id(self, value: pulumi.Input[str]): @pulumi.getter(name="secretBinary") def secret_binary(self) -> Optional[pulumi.Input[str]]: """ - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. """ return pulumi.get(self, "secret_binary") @@ -63,7 +63,7 @@ def secret_binary(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="secretString") def secret_string(self) -> Optional[pulumi.Input[str]]: """ - Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. """ return pulumi.get(self, "secret_string") @@ -98,9 +98,9 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering SecretVersion resources. :param pulumi.Input[str] arn: The ARN of the secret. - :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. - :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. :param pulumi.Input[str] version_id: The unique identifier of the version of the secret. :param pulumi.Input[Sequence[pulumi.Input[str]]] version_stages: Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. @@ -135,7 +135,7 @@ def arn(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="secretBinary") def secret_binary(self) -> Optional[pulumi.Input[str]]: """ - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. """ return pulumi.get(self, "secret_binary") @@ -159,7 +159,7 @@ def secret_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="secretString") def secret_string(self) -> Optional[pulumi.Input[str]]: """ - Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. """ return pulumi.get(self, "secret_string") @@ -259,9 +259,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. - :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. :param pulumi.Input[Sequence[pulumi.Input[str]]] version_stages: Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. > **NOTE:** If `version_stages` is configured, you must include the `AWSCURRENT` staging label if this secret version is the only version or if the label is currently present on this secret version, otherwise this provider will show a perpetual difference. @@ -387,9 +387,9 @@ 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] arn: The ARN of the secret. - :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + :param pulumi.Input[str] secret_binary: Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. :param pulumi.Input[str] secret_id: Specifies the secret to which you want to add a new version. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret. The secret must already exist. - :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + :param pulumi.Input[str] secret_string: Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. :param pulumi.Input[str] version_id: The unique identifier of the version of the secret. :param pulumi.Input[Sequence[pulumi.Input[str]]] version_stages: Specifies a list of staging labels that are attached to this version of the secret. A staging label must be unique to a single version of the secret. If you specify a staging label that's already associated with a different version of the same secret then that staging label is automatically removed from the other version and attached to this version. If you do not specify a value, then AWS Secrets Manager automatically moves the staging label `AWSCURRENT` to this new version on creation. @@ -419,7 +419,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter(name="secretBinary") def secret_binary(self) -> pulumi.Output[Optional[str]]: """ - Specifies binary data that you want to encrypt and store in this version of the secret. This is required if secret_string is not set. Needs to be encoded to base64. + Specifies binary data that you want to encrypt and store in this version of the secret. This is required if `secret_string` is not set. Needs to be encoded to base64. """ return pulumi.get(self, "secret_binary") @@ -435,7 +435,7 @@ def secret_id(self) -> pulumi.Output[str]: @pulumi.getter(name="secretString") def secret_string(self) -> pulumi.Output[Optional[str]]: """ - Specifies text data that you want to encrypt and store in this version of the secret. This is required if secret_binary is not set. + Specifies text data that you want to encrypt and store in this version of the secret. This is required if `secret_binary` is not set. """ return pulumi.get(self, "secret_string") diff --git a/sdk/python/pulumi_aws/servicecatalog/__init__.py b/sdk/python/pulumi_aws/servicecatalog/__init__.py index bc834ae3910..d7829e394f6 100644 --- a/sdk/python/pulumi_aws/servicecatalog/__init__.py +++ b/sdk/python/pulumi_aws/servicecatalog/__init__.py @@ -5,8 +5,10 @@ from .. import _utilities import typing # Export this package's modules as members: +from .appregistry_application import * from .budget_resource_association import * from .constraint import * +from .get_appregistry_application import * from .get_constraint import * from .get_launch_paths import * from .get_portfolio import * diff --git a/sdk/python/pulumi_aws/servicecatalog/appregistry_application.py b/sdk/python/pulumi_aws/servicecatalog/appregistry_application.py new file mode 100644 index 00000000000..2b8216c0270 --- /dev/null +++ b/sdk/python/pulumi_aws/servicecatalog/appregistry_application.py @@ -0,0 +1,312 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['AppregistryApplicationArgs', 'AppregistryApplication'] + +@pulumi.input_type +class AppregistryApplicationArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a AppregistryApplication resource. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] name: Name of the application. The name must be unique within an AWS region. + + The following arguments are optional: + """ + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the application. + """ + 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 application. The name must be unique within an AWS region. + + 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) + + +@pulumi.input_type +class _AppregistryApplicationState: + def __init__(__self__, *, + arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AppregistryApplication resources. + :param pulumi.Input[str] arn: ARN (Amazon Resource Name) of the application. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] name: Name of the application. The name must be unique within an AWS region. + + The following arguments are optional: + """ + if arn is not None: + pulumi.set(__self__, "arn", arn) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN (Amazon Resource Name) of the application. + """ + return pulumi.get(self, "arn") + + @arn.setter + def arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the application. + """ + 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 application. The name must be unique within an AWS region. + + 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) + + +class AppregistryApplication(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource for managing an AWS Service Catalog AppRegistry Application. + + > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.AppregistryApplication("example", name="example-app") + ``` + + + ### Connecting Resources + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.AppregistryApplication("example", name="example-app") + bucket = aws.s3.BucketV2("bucket", + bucket="example-bucket", + tags={ + "awsApplication": example.arn, + }) + ``` + + + ## Import + + Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: + + ```sh + $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] name: Name of the application. The name must be unique within an AWS region. + + The following arguments are optional: + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[AppregistryApplicationArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource for managing an AWS Service Catalog AppRegistry Application. + + > An AWS Service Catalog AppRegistry Application is displayed in the AWS Console under "MyApplications". + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.AppregistryApplication("example", name="example-app") + ``` + + + ### Connecting Resources + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.AppregistryApplication("example", name="example-app") + bucket = aws.s3.BucketV2("bucket", + bucket="example-bucket", + tags={ + "awsApplication": example.arn, + }) + ``` + + + ## Import + + Using `pulumi import`, import AWS Service Catalog AppRegistry Application using the `id`. For example: + + ```sh + $ pulumi import aws:servicecatalog/appregistryApplication:AppregistryApplication example application-id-12345678 + ``` + + :param str resource_name: The name of the resource. + :param AppregistryApplicationArgs 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(AppregistryApplicationArgs, 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, + 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__ = AppregistryApplicationArgs.__new__(AppregistryApplicationArgs) + + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["arn"] = None + super(AppregistryApplication, __self__).__init__( + 'aws:servicecatalog/appregistryApplication:AppregistryApplication', + 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, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None) -> 'AppregistryApplication': + """ + Get an existing AppregistryApplication 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: ARN (Amazon Resource Name) of the application. + :param pulumi.Input[str] description: Description of the application. + :param pulumi.Input[str] name: Name of the application. The name must be unique within an AWS region. + + The following arguments are optional: + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AppregistryApplicationState.__new__(_AppregistryApplicationState) + + __props__.__dict__["arn"] = arn + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + return AppregistryApplication(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + ARN (Amazon Resource Name) of the application. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the application. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the application. The name must be unique within an AWS region. + + The following arguments are optional: + """ + return pulumi.get(self, "name") + diff --git a/sdk/python/pulumi_aws/servicecatalog/get_appregistry_application.py b/sdk/python/pulumi_aws/servicecatalog/get_appregistry_application.py new file mode 100644 index 00000000000..37bccaf3bf2 --- /dev/null +++ b/sdk/python/pulumi_aws/servicecatalog/get_appregistry_application.py @@ -0,0 +1,135 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetAppregistryApplicationResult', + 'AwaitableGetAppregistryApplicationResult', + 'get_appregistry_application', + 'get_appregistry_application_output', +] + +@pulumi.output_type +class GetAppregistryApplicationResult: + """ + A collection of values returned by getAppregistryApplication. + """ + def __init__(__self__, arn=None, description=None, id=None, name=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def arn(self) -> str: + """ + ARN (Amazon Resource Name) of the application. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def description(self) -> str: + """ + Description of the application. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the application. + """ + return pulumi.get(self, "name") + + +class AwaitableGetAppregistryApplicationResult(GetAppregistryApplicationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAppregistryApplicationResult( + arn=self.arn, + description=self.description, + id=self.id, + name=self.name) + + +def get_appregistry_application(id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAppregistryApplicationResult: + """ + Data source for managing an AWS Service Catalog AppRegistry Application. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.get_appregistry_application(id="application-1234") + ``` + + + + :param str id: Application identifier. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws:servicecatalog/getAppregistryApplication:getAppregistryApplication', __args__, opts=opts, typ=GetAppregistryApplicationResult).value + + return AwaitableGetAppregistryApplicationResult( + arn=pulumi.get(__ret__, 'arn'), + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name')) + + +@_utilities.lift_output_func(get_appregistry_application) +def get_appregistry_application_output(id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAppregistryApplicationResult]: + """ + Data source for managing an AWS Service Catalog AppRegistry Application. + + ## Example Usage + + ### Basic Usage + + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.servicecatalog.get_appregistry_application(id="application-1234") + ``` + + + + :param str id: Application identifier. + """ + ... diff --git a/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py b/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py index b690eed9a70..a98109c83e8 100644 --- a/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py +++ b/sdk/python/pulumi_aws/ssoadmin/permission_set_inline_policy.py @@ -130,10 +130,7 @@ def __init__(__self__, permission_set_arn: Optional[pulumi.Input[str]] = None, __props__=None): """ - Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource - - > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `ssoadmin.PermissionSet` resource. - Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. + ## Example Usage ## Import @@ -156,10 +153,7 @@ def __init__(__self__, args: PermissionSetInlinePolicyArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Provides an IAM inline policy for a Single Sign-On (SSO) Permission Set resource - - > **NOTE:** AWS Single Sign-On (SSO) only supports one IAM inline policy per `ssoadmin.PermissionSet` resource. - Creating or updating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts. + ## Example Usage ## Import diff --git a/sdk/python/pulumi_aws/transfer/access.py b/sdk/python/pulumi_aws/transfer/access.py index 0ae023c5c49..ac81149cd47 100644 --- a/sdk/python/pulumi_aws/transfer/access.py +++ b/sdk/python/pulumi_aws/transfer/access.py @@ -300,6 +300,8 @@ def __init__(__self__, """ Provides a AWS Transfer Access resource. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage ### Basic S3 @@ -364,6 +366,8 @@ def __init__(__self__, """ Provides a AWS Transfer Access resource. + > **NOTE:** We suggest using explicit JSON encoding or `aws.iam.getPolicyDocument` when assigning a value to `policy`. They seamlessly translate configuration to JSON, enabling you to maintain consistency within your configuration without the need for context switches. Also, you can sidestep potential complications arising from formatting discrepancies, whitespace inconsistencies, and other nuances inherent to JSON. + ## Example Usage ### Basic S3 diff --git a/sdk/python/pulumi_aws/transfer/user.py b/sdk/python/pulumi_aws/transfer/user.py index 2fd9df024c6..d18ba72a31c 100644 --- a/sdk/python/pulumi_aws/transfer/user.py +++ b/sdk/python/pulumi_aws/transfer/user.py @@ -368,8 +368,6 @@ def __init__(__self__, user_name: Optional[pulumi.Input[str]] = None, __props__=None): """ - Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `transfer.SshKey` resource. - ## Example Usage @@ -442,8 +440,6 @@ def __init__(__self__, args: UserArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `transfer.SshKey` resource. - ## Example Usage diff --git a/upstream b/upstream index 898c9b5a1d8..797d38d66c8 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 898c9b5a1d8958366b293dad02daa44e24e360ef +Subproject commit 797d38d66c80e23b37e2034b57b64aff2dbdd38a