From 7d38dfeb67a0526b683053b3b724fab52705042a Mon Sep 17 00:00:00 2001 From: Pulumi Bot <30351955+pulumi-bot@users.noreply.github.com> Date: Wed, 30 Oct 2024 05:38:27 -0700 Subject: [PATCH] Automated SDK generation @ aws-cloudformation-user-guide 19dc52cd3f2007d6d268b65b739ffb5ebf8c1e76 (#1789) *Automated PR* --- .docs.version | 2 +- .../aws-appsync-api.json | 265 ++++ .../aws-bedrock-datasource.json | 2 +- .../aws-bedrock-flow.json | 4 +- .../aws-bedrock-flowversion.json | 4 +- .../aws-bedrock-prompt.json | 2 +- .../aws-bedrock-promptversion.json | 2 +- .../aws-codepipeline-pipeline.json | 14 +- .../aws-datasync-task.json | 586 ++++----- .../aws-m2-application.json | 2 +- .../aws-m2-environment.json | 9 +- .../aws-mwaa-environment.json | 4 +- .../aws-opensearchservice-application.json | 162 +++ .../aws-sagemaker-space.json | 15 +- .../aws-sagemaker-studiolifecycleconfig.json | 4 +- .../aws-secretsmanager-secret.json | 1 + ...secretsmanager-secrettargetattachment.json | 1 + .../aws-wafv2-ipset.json | 11 +- .../aws-wafv2-regexpatternset.json | 11 +- .../aws-wafv2-rulegroup.json | 13 +- .../aws-wafv2-webacl.json | 13 +- .../aws-wisdom-aipromptversion.json | 74 ++ meta/.botocore.version | 2 +- .../pulumi-gen-aws-native/supported-types.txt | 4 + .../pulumi-resource-aws-native/metadata.json | 610 ++++++++- .../pulumi-resource-aws-native/schema.json | 855 ++++++++++++- reports/missedAutonaming.json | 42 +- sdk/dotnet/AppSync/Api.cs | 112 ++ sdk/dotnet/AppSync/Enums.cs | 68 + sdk/dotnet/AppSync/GetApi.cs | 99 ++ sdk/dotnet/AppSync/Inputs/ApiAuthModeArgs.cs | 26 + .../AppSync/Inputs/ApiAuthProviderArgs.cs | 35 + .../AppSync/Inputs/ApiCognitoConfigArgs.cs | 32 + .../AppSync/Inputs/ApiEventConfigArgs.cs | 58 + .../AppSync/Inputs/ApiEventLogConfigArgs.cs | 29 + .../Inputs/ApiLambdaAuthorizerConfigArgs.cs | 32 + .../Inputs/ApiOpenIdConnectConfigArgs.cs | 35 + sdk/dotnet/AppSync/Outputs/ApiAuthMode.cs | 27 + sdk/dotnet/AppSync/Outputs/ApiAuthProvider.cs | 40 + .../AppSync/Outputs/ApiCognitoConfig.cs | 36 + sdk/dotnet/AppSync/Outputs/ApiEventConfig.cs | 44 + .../AppSync/Outputs/ApiEventLogConfig.cs | 32 + .../Outputs/ApiLambdaAuthorizerConfig.cs | 36 + .../AppSync/Outputs/ApiOpenIdConnectConfig.cs | 40 + sdk/dotnet/CodePipeline/Enums.cs | 32 + .../Inputs/PipelineFailureConditionsArgs.cs | 6 + ...ditionsRetryConfigurationPropertiesArgs.cs | 29 + .../Outputs/PipelineFailureConditions.cs | 9 +- ...eConditionsRetryConfigurationProperties.cs | 30 + sdk/dotnet/Ec2/Eip.cs | 6 + sdk/dotnet/M2/Application.cs | 6 +- sdk/dotnet/OpenSearchService/Application.cs | 174 +++ sdk/dotnet/OpenSearchService/Enums.cs | 40 + .../OpenSearchService/GetApplication.cs | 114 ++ .../Inputs/ApplicationAppConfigArgs.cs | 35 + .../Inputs/ApplicationDataSourceArgs.cs | 35 + .../IamIdentityCenterOptionsPropertiesArgs.cs | 41 + .../Outputs/ApplicationAppConfig.cs | 38 + .../Outputs/ApplicationDataSource.cs | 38 + .../IamIdentityCenterOptionsProperties.cs | 45 + sdk/dotnet/SageMaker/GetSpace.cs | 7 + sdk/dotnet/SageMaker/StudioLifecycleConfig.cs | 8 +- .../SecretsManager/GetRotationSchedule.cs | 86 ++ .../GetSecretTargetAttachment.cs | 7 - ...otationScheduleHostedRotationLambdaArgs.cs | 86 ++ .../RotationScheduleRotationRulesArgs.cs | 38 + .../RotationScheduleHostedRotationLambda.cs | 98 ++ .../Outputs/RotationScheduleRotationRules.cs | 42 + sdk/dotnet/SecretsManager/RotationSchedule.cs | 138 ++ .../SecretsManager/SecretTargetAttachment.cs | 4 + sdk/dotnet/Wisdom/AiPromptVersion.cs | 104 ++ sdk/dotnet/Wisdom/GetAiPromptVersion.cs | 87 ++ sdk/go/aws/appsync/api.go | 154 +++ sdk/go/aws/appsync/getApi.go | 117 ++ sdk/go/aws/appsync/init.go | 2 + sdk/go/aws/appsync/pulumiEnums.go | 352 ++++++ sdk/go/aws/appsync/pulumiTypes.go | 1108 +++++++++++++++++ sdk/go/aws/codepipeline/pulumiEnums.go | 172 +++ sdk/go/aws/codepipeline/pulumiTypes.go | 167 +++ sdk/go/aws/ec2/eip.go | 4 + sdk/go/aws/m2/application.go | 3 - sdk/go/aws/m2/pulumiTypes.go | 172 +++ sdk/go/aws/opensearchservice/application.go | 191 +++ .../aws/opensearchservice/getApplication.go | 127 ++ sdk/go/aws/opensearchservice/init.go | 2 + sdk/go/aws/opensearchservice/pulumiEnums.go | 184 +++ sdk/go/aws/opensearchservice/pulumiTypes.go | 416 +++++++ sdk/go/aws/sagemaker/getSpace.go | 8 + sdk/go/aws/sagemaker/studioLifecycleConfig.go | 16 +- .../aws/secretsmanager/getRotationSchedule.go | 98 ++ .../getSecretTargetAttachment.go | 7 - sdk/go/aws/secretsmanager/init.go | 2 + sdk/go/aws/secretsmanager/pulumiTypes.go | 510 ++++++++ sdk/go/aws/secretsmanager/rotationSchedule.go | 176 +++ .../secretsmanager/secretTargetAttachment.go | 4 + sdk/go/aws/wisdom/aiPromptVersion.go | 160 +++ sdk/go/aws/wisdom/getAiPromptVersion.go | 99 ++ sdk/go/aws/wisdom/init.go | 2 + sdk/nodejs/appsync/api.ts | 94 ++ sdk/nodejs/appsync/getApi.ts | 57 + sdk/nodejs/appsync/index.ts | 12 + sdk/nodejs/ec2/eip.ts | 6 + sdk/nodejs/m2/application.ts | 7 +- sdk/nodejs/opensearchservice/application.ts | 137 ++ .../opensearchservice/getApplication.ts | 72 ++ sdk/nodejs/opensearchservice/index.ts | 15 + sdk/nodejs/sagemaker/getSpace.ts | 7 + sdk/nodejs/sagemaker/studioLifecycleConfig.ts | 8 +- .../secretsmanager/getRotationSchedule.ts | 56 + .../getSecretTargetAttachment.ts | 4 - sdk/nodejs/secretsmanager/index.ts | 12 + sdk/nodejs/secretsmanager/rotationSchedule.ts | 124 ++ .../secretsmanager/secretTargetAttachment.ts | 2 + sdk/nodejs/tsconfig.json | 9 + sdk/nodejs/types/enums/appsync/index.ts | 26 + sdk/nodejs/types/enums/codepipeline/index.ts | 11 + sdk/nodejs/types/enums/index.ts | 2 + .../types/enums/opensearchservice/index.ts | 13 + sdk/nodejs/types/input.ts | 186 +++ sdk/nodejs/types/output.ts | 186 +++ sdk/nodejs/wisdom/aiPromptVersion.ts | 92 ++ sdk/nodejs/wisdom/getAiPromptVersion.ts | 47 + sdk/nodejs/wisdom/index.ts | 12 + sdk/python/pulumi_aws_native/__init__.py | 4 + .../pulumi_aws_native/appsync/__init__.py | 2 + .../pulumi_aws_native/appsync/_enums.py | 24 + .../pulumi_aws_native/appsync/_inputs.py | 401 ++++++ sdk/python/pulumi_aws_native/appsync/api.py | 211 ++++ .../pulumi_aws_native/appsync/get_api.py | 149 +++ .../pulumi_aws_native/appsync/outputs.py | 396 ++++++ .../pulumi_aws_native/codepipeline/_enums.py | 10 + .../pulumi_aws_native/codepipeline/_inputs.py | 60 +- .../pulumi_aws_native/codepipeline/outputs.py | 72 +- sdk/python/pulumi_aws_native/ec2/eip.py | 8 + .../pulumi_aws_native/m2/application.py | 39 +- .../opensearchservice/__init__.py | 3 + .../opensearchservice/_enums.py | 17 + .../opensearchservice/_inputs.py | 192 +++ .../opensearchservice/application.py | 296 +++++ .../opensearchservice/get_application.py | 164 +++ .../opensearchservice/outputs.py | 156 +++ .../pulumi_aws_native/sagemaker/get_space.py | 17 +- .../sagemaker/studio_lifecycle_config.py | 16 +- .../secretsmanager/__init__.py | 2 + .../secretsmanager/_inputs.py | 307 +++++ .../secretsmanager/get_rotation_schedule.py | 106 ++ .../get_secret_target_attachment.py | 16 +- .../secretsmanager/outputs.py | 237 ++++ .../secretsmanager/rotation_schedule.py | 255 ++++ .../secret_target_attachment.py | 2 + .../pulumi_aws_native/wisdom/__init__.py | 2 + .../wisdom/ai_prompt_version.py | 190 +++ .../wisdom/get_ai_prompt_version.py | 109 ++ 153 files changed, 13337 insertions(+), 454 deletions(-) create mode 100644 aws-cloudformation-schema/aws-appsync-api.json create mode 100644 aws-cloudformation-schema/aws-opensearchservice-application.json create mode 100644 aws-cloudformation-schema/aws-wisdom-aipromptversion.json create mode 100644 sdk/dotnet/AppSync/Api.cs create mode 100644 sdk/dotnet/AppSync/GetApi.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiAuthModeArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiAuthProviderArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiCognitoConfigArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiEventConfigArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiEventLogConfigArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiLambdaAuthorizerConfigArgs.cs create mode 100644 sdk/dotnet/AppSync/Inputs/ApiOpenIdConnectConfigArgs.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiAuthMode.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiAuthProvider.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiCognitoConfig.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiEventConfig.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiEventLogConfig.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiLambdaAuthorizerConfig.cs create mode 100644 sdk/dotnet/AppSync/Outputs/ApiOpenIdConnectConfig.cs create mode 100644 sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsRetryConfigurationPropertiesArgs.cs create mode 100644 sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditionsRetryConfigurationProperties.cs create mode 100644 sdk/dotnet/OpenSearchService/Application.cs create mode 100644 sdk/dotnet/OpenSearchService/Enums.cs create mode 100644 sdk/dotnet/OpenSearchService/GetApplication.cs create mode 100644 sdk/dotnet/OpenSearchService/Inputs/ApplicationAppConfigArgs.cs create mode 100644 sdk/dotnet/OpenSearchService/Inputs/ApplicationDataSourceArgs.cs create mode 100644 sdk/dotnet/OpenSearchService/Inputs/IamIdentityCenterOptionsPropertiesArgs.cs create mode 100644 sdk/dotnet/OpenSearchService/Outputs/ApplicationAppConfig.cs create mode 100644 sdk/dotnet/OpenSearchService/Outputs/ApplicationDataSource.cs create mode 100644 sdk/dotnet/OpenSearchService/Outputs/IamIdentityCenterOptionsProperties.cs create mode 100644 sdk/dotnet/SecretsManager/GetRotationSchedule.cs create mode 100644 sdk/dotnet/SecretsManager/Inputs/RotationScheduleHostedRotationLambdaArgs.cs create mode 100644 sdk/dotnet/SecretsManager/Inputs/RotationScheduleRotationRulesArgs.cs create mode 100644 sdk/dotnet/SecretsManager/Outputs/RotationScheduleHostedRotationLambda.cs create mode 100644 sdk/dotnet/SecretsManager/Outputs/RotationScheduleRotationRules.cs create mode 100644 sdk/dotnet/SecretsManager/RotationSchedule.cs create mode 100644 sdk/dotnet/Wisdom/AiPromptVersion.cs create mode 100644 sdk/dotnet/Wisdom/GetAiPromptVersion.cs create mode 100644 sdk/go/aws/appsync/api.go create mode 100644 sdk/go/aws/appsync/getApi.go create mode 100644 sdk/go/aws/opensearchservice/application.go create mode 100644 sdk/go/aws/opensearchservice/getApplication.go create mode 100644 sdk/go/aws/opensearchservice/pulumiEnums.go create mode 100644 sdk/go/aws/secretsmanager/getRotationSchedule.go create mode 100644 sdk/go/aws/secretsmanager/rotationSchedule.go create mode 100644 sdk/go/aws/wisdom/aiPromptVersion.go create mode 100644 sdk/go/aws/wisdom/getAiPromptVersion.go create mode 100644 sdk/nodejs/appsync/api.ts create mode 100644 sdk/nodejs/appsync/getApi.ts create mode 100644 sdk/nodejs/opensearchservice/application.ts create mode 100644 sdk/nodejs/opensearchservice/getApplication.ts create mode 100644 sdk/nodejs/secretsmanager/getRotationSchedule.ts create mode 100644 sdk/nodejs/secretsmanager/rotationSchedule.ts create mode 100644 sdk/nodejs/types/enums/opensearchservice/index.ts create mode 100644 sdk/nodejs/wisdom/aiPromptVersion.ts create mode 100644 sdk/nodejs/wisdom/getAiPromptVersion.ts create mode 100644 sdk/python/pulumi_aws_native/appsync/api.py create mode 100644 sdk/python/pulumi_aws_native/appsync/get_api.py create mode 100644 sdk/python/pulumi_aws_native/opensearchservice/_enums.py create mode 100644 sdk/python/pulumi_aws_native/opensearchservice/application.py create mode 100644 sdk/python/pulumi_aws_native/opensearchservice/get_application.py create mode 100644 sdk/python/pulumi_aws_native/secretsmanager/get_rotation_schedule.py create mode 100644 sdk/python/pulumi_aws_native/secretsmanager/rotation_schedule.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/ai_prompt_version.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/get_ai_prompt_version.py diff --git a/.docs.version b/.docs.version index 1e12c3c1a7..a3ed99226e 100644 --- a/.docs.version +++ b/.docs.version @@ -1 +1 @@ -5443f8af63af83b98a4c035d7f5d15ba0ea8bf07 +c3970f25846f18fb21813d06908f1cc2845c62d6 diff --git a/aws-cloudformation-schema/aws-appsync-api.json b/aws-cloudformation-schema/aws-appsync-api.json new file mode 100644 index 0000000000..e40bc85ec6 --- /dev/null +++ b/aws-cloudformation-schema/aws-appsync-api.json @@ -0,0 +1,265 @@ +{ + "typeName" : "AWS::AppSync::Api", + "description" : "Resource schema for AppSync Api", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions" : { + "EventConfig" : { + "description" : "The configuration for an Event Api", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "AuthProviders" : { + "$ref" : "#/definitions/AuthProviders" + }, + "ConnectionAuthModes" : { + "$ref" : "#/definitions/AuthModes" + }, + "DefaultPublishAuthModes" : { + "$ref" : "#/definitions/AuthModes" + }, + "DefaultSubscribeAuthModes" : { + "$ref" : "#/definitions/AuthModes" + }, + "LogConfig" : { + "$ref" : "#/definitions/EventLogConfig" + } + }, + "required" : [ "AuthProviders", "ConnectionAuthModes", "DefaultPublishAuthModes", "DefaultSubscribeAuthModes" ] + }, + "AuthMode" : { + "description" : "An auth mode.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "AuthType" : { + "$ref" : "#/definitions/AuthenticationType" + } + } + }, + "AuthModes" : { + "description" : "A list of auth modes for the AppSync API.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/AuthMode" + } + }, + "AuthenticationType" : { + "description" : "Security configuration for your AppSync API.", + "type" : "string", + "enum" : [ "AMAZON_COGNITO_USER_POOLS", "AWS_IAM", "API_KEY", "OPENID_CONNECT", "AWS_LAMBDA" ] + }, + "OpenIDConnectConfig" : { + "description" : "The OpenID Connect configuration.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "ClientId" : { + "type" : "string" + }, + "AuthTTL" : { + "type" : "number" + }, + "Issuer" : { + "type" : "string" + }, + "IatTTL" : { + "type" : "number" + } + }, + "required" : [ "Issuer" ] + }, + "CognitoConfig" : { + "description" : "Optional authorization configuration for using Amazon Cognito user pools with your API endpoint.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "AppIdClientRegex" : { + "type" : "string" + }, + "UserPoolId" : { + "type" : "string" + }, + "AwsRegion" : { + "type" : "string" + } + }, + "required" : [ "UserPoolId", "AwsRegion" ] + }, + "LambdaAuthorizerConfig" : { + "description" : "A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "AuthorizerResultTtlInSeconds" : { + "type" : "integer", + "minimum" : 0, + "maximum" : 3600 + }, + "AuthorizerUri" : { + "type" : "string" + }, + "IdentityValidationExpression" : { + "type" : "string" + } + }, + "required" : [ "AuthorizerUri" ] + }, + "AuthProviders" : { + "description" : "A list of auth providers for the AppSync API.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/AuthProvider" + } + }, + "AuthProvider" : { + "description" : "An auth provider for the AppSync API.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "AuthType" : { + "$ref" : "#/definitions/AuthenticationType" + }, + "OpenIDConnectConfig" : { + "$ref" : "#/definitions/OpenIDConnectConfig" + }, + "CognitoConfig" : { + "$ref" : "#/definitions/CognitoConfig" + }, + "LambdaAuthorizerConfig" : { + "$ref" : "#/definitions/LambdaAuthorizerConfig" + } + }, + "required" : [ "AuthType" ] + }, + "Tag" : { + "description" : "An arbitrary set of tags (key-value pairs) for this AppSync API.", + "type" : "object", + "properties" : { + "Key" : { + "description" : "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128, + "pattern" : "^(?!aws:)[ a-zA-Z+-=._:/]+$" + }, + "Value" : { + "description" : "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + "type" : "string", + "minLength" : 0, + "maxLength" : 256, + "pattern" : "^[\\s\\w+-=\\.:/@]*$" + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "Tags" : { + "description" : "An arbitrary set of tags (key-value pairs) for this AppSync API.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "ApiName" : { + "description" : "The name of the AppSync API.", + "type" : "string", + "minLength" : 1, + "maxLength" : 50, + "pattern" : "[A-Za-z0-9_\\-\\ ]+" + }, + "OwnerContact" : { + "description" : "The owner contact information for an API resource.", + "type" : "string", + "minLength" : 1, + "maxLength" : 250, + "pattern" : "[A-Za-z0-9_\\-\\ \\.]+" + }, + "DnsMap" : { + "description" : "A map of DNS names for the AppSync API.", + "type" : "object", + "additionalProperties" : false, + "patternProperties" : { + "\\S+" : { + "type" : "string" + } + } + }, + "EventLogLevel" : { + "description" : "Logging level for the AppSync API.", + "type" : "string", + "enum" : [ "NONE", "ERROR", "ALL", "INFO", "DEBUG" ] + }, + "EventLogConfig" : { + "description" : "The log config for the AppSync API.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "LogLevel" : { + "$ref" : "#/definitions/EventLogLevel" + }, + "CloudWatchLogsRoleArn" : { + "type" : "string" + } + }, + "required" : [ "LogLevel", "CloudWatchLogsRoleArn" ] + } + }, + "properties" : { + "ApiId" : { + "description" : "The unique identifier for the AppSync Api generated by the service", + "type" : "string" + }, + "ApiArn" : { + "description" : "The Amazon Resource Name (ARN) of the AppSync Api", + "type" : "string" + }, + "Name" : { + "$ref" : "#/definitions/ApiName" + }, + "OwnerContact" : { + "$ref" : "#/definitions/OwnerContact" + }, + "Dns" : { + "$ref" : "#/definitions/DnsMap" + }, + "EventConfig" : { + "$ref" : "#/definitions/EventConfig" + }, + "Tags" : { + "$ref" : "#/definitions/Tags" + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "appsync:TagResource", "appsync:UntagResource" ] + }, + "additionalProperties" : false, + "required" : [ "Name" ], + "readOnlyProperties" : [ "/properties/ApiId", "/properties/Dns", "/properties/ApiArn" ], + "primaryIdentifier" : [ "/properties/ApiArn" ], + "handlers" : { + "create" : { + "permissions" : [ "appsync:CreateApi", "appsync:TagResource", "appsync:GetApi", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "appsync:GetApi", "appsync:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "appsync:UpdateApi", "appsync:TagResource", "appsync:UntagResource", "appsync:GetApi", "iam:PassRole" ] + }, + "delete" : { + "permissions" : [ "appsync:DeleteApi", "appsync:UntagResource" ] + }, + "list" : { + "permissions" : [ "appsync:ListApis" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bedrock-datasource.json b/aws-cloudformation-schema/aws-bedrock-datasource.json index b6fbce7916..5151c6c753 100644 --- a/aws-cloudformation-schema/aws-bedrock-datasource.json +++ b/aws-cloudformation-schema/aws-bedrock-datasource.json @@ -11,7 +11,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + "pattern" : "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", "description" : "The model's ARN." }, "ParsingPrompt" : { diff --git a/aws-cloudformation-schema/aws-bedrock-flow.json b/aws-cloudformation-schema/aws-bedrock-flow.json index e5f9aa6cdb..22e4a35741 100644 --- a/aws-cloudformation-schema/aws-bedrock-flow.json +++ b/aws-cloudformation-schema/aws-bedrock-flow.json @@ -421,7 +421,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "GuardrailConfiguration" : { @@ -530,7 +530,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration" : { diff --git a/aws-cloudformation-schema/aws-bedrock-flowversion.json b/aws-cloudformation-schema/aws-bedrock-flowversion.json index a76c14e2e2..bdec4bba02 100644 --- a/aws-cloudformation-schema/aws-bedrock-flowversion.json +++ b/aws-cloudformation-schema/aws-bedrock-flowversion.json @@ -421,7 +421,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "GuardrailConfiguration" : { @@ -510,7 +510,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration" : { diff --git a/aws-cloudformation-schema/aws-bedrock-prompt.json b/aws-cloudformation-schema/aws-bedrock-prompt.json index 62446eb078..5d75d282d4 100644 --- a/aws-cloudformation-schema/aws-bedrock-prompt.json +++ b/aws-cloudformation-schema/aws-bedrock-prompt.json @@ -26,7 +26,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration" : { diff --git a/aws-cloudformation-schema/aws-bedrock-promptversion.json b/aws-cloudformation-schema/aws-bedrock-promptversion.json index 59c1655701..ec2b950a9d 100644 --- a/aws-cloudformation-schema/aws-bedrock-promptversion.json +++ b/aws-cloudformation-schema/aws-bedrock-promptversion.json @@ -27,7 +27,7 @@ "type" : "string", "maxLength" : 2048, "minLength" : 1, - "pattern" : "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:imported-model/[a-z0-9]{12})|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)|([a-zA-Z0-9-:.]+)$", + "pattern" : "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", "description" : "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration" : { diff --git a/aws-cloudformation-schema/aws-codepipeline-pipeline.json b/aws-cloudformation-schema/aws-codepipeline-pipeline.json index a2f5224d1f..bea4413f04 100644 --- a/aws-cloudformation-schema/aws-codepipeline-pipeline.json +++ b/aws-cloudformation-schema/aws-codepipeline-pipeline.json @@ -449,7 +449,19 @@ "Result" : { "type" : "string", "description" : "The specified result for when the failure conditions are met, such as rolling back the stage", - "enum" : [ "ROLLBACK" ] + "enum" : [ "ROLLBACK", "RETRY" ] + }, + "RetryConfiguration" : { + "description" : "The configuration that specifies the retry configuration for a stage", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "RetryMode" : { + "type" : "string", + "description" : "The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful", + "enum" : [ "ALL_ACTIONS", "FAILED_ACTIONS" ] + } + } }, "Conditions" : { "type" : "array", diff --git a/aws-cloudformation-schema/aws-datasync-task.json b/aws-cloudformation-schema/aws-datasync-task.json index 1b244aacf2..6ae5ec20f0 100644 --- a/aws-cloudformation-schema/aws-datasync-task.json +++ b/aws-cloudformation-schema/aws-datasync-task.json @@ -1,58 +1,222 @@ { + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", + "tagging" : { + "permissions" : [ "datasync:TagResource", "datasync:UntagResource", "datasync:ListTagsForResource" ], + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "tagProperty" : "/properties/Tags", + "cloudFormationSystemTags" : true + }, + "handlers" : { + "read" : { + "permissions" : [ "datasync:DescribeTask", "datasync:ListTagsForResource" ] + }, + "create" : { + "permissions" : [ "datasync:CreateTask", "datasync:DescribeTask", "datasync:ListTagsForResource", "datasync:TagResource", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:CreateNetworkInterfacePermission", "fsx:DescribeFileSystems", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "logs:DescribeLogGroups", "iam:GetRole", "iam:PassRole", "iam:AssumeRole" ] + }, + "update" : { + "permissions" : [ "datasync:UpdateTask", "datasync:DescribeTask", "datasync:ListTagsForResource", "datasync:TagResource", "datasync:UntagResource", "logs:DescribeLogGroups", "iam:PassRole" ] + }, + "list" : { + "permissions" : [ "datasync:ListTasks" ] + }, + "delete" : { + "permissions" : [ "datasync:DeleteTask", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "fsx:DescribeFileSystems", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "iam:GetRole" ] + } + }, "typeName" : "AWS::DataSync::Task", + "readOnlyProperties" : [ "/properties/TaskArn", "/properties/Status", "/properties/SourceNetworkInterfaceArns", "/properties/DestinationNetworkInterfaceArns" ], "description" : "Resource schema for AWS::DataSync::Task.", - "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", + "createOnlyProperties" : [ "/properties/DestinationLocationArn", "/properties/SourceLocationArn" ], + "additionalProperties" : false, + "primaryIdentifier" : [ "/properties/TaskArn" ], "definitions" : { - "FilterRule" : { + "SourceNetworkInterfaceArns" : { + "maxItems" : 128, + "description" : "The Amazon Resource Names (ARNs) of the source ENIs (Elastic Network Interfaces) that were created for your subnet.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "pattern" : "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$", + "type" : "string" + } + }, + "Options" : { + "description" : "Represents the options that are available to control the behavior of a StartTaskExecution operation.", "additionalProperties" : false, - "description" : "Specifies which files folders and objects to include or exclude when transferring files from source to destination.", "type" : "object", "properties" : { - "FilterType" : { - "description" : "The type of filter rule to apply. AWS DataSync only supports the SIMPLE_PATTERN rule type.", + "VerifyMode" : { + "description" : "A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred.", "type" : "string", - "enum" : [ "SIMPLE_PATTERN" ], - "pattern" : "^[A-Z0-9_]+$", - "maxLength" : 128 + "enum" : [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ] }, - "Value" : { - "description" : "A single filter string that consists of the patterns to include or exclude. The patterns are delimited by \"|\".", + "Gid" : { + "description" : "The group ID (GID) of the file's owners.", "type" : "string", - "pattern" : "^[^\\x00]+$", - "maxLength" : 409600 + "enum" : [ "NONE", "INT_VALUE", "NAME", "BOTH" ] + }, + "Atime" : { + "description" : "A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to).", + "type" : "string", + "enum" : [ "NONE", "BEST_EFFORT" ] + }, + "OverwriteMode" : { + "description" : "A value that determines whether files at the destination should be overwritten or preserved when copying files.", + "type" : "string", + "enum" : [ "ALWAYS", "NEVER" ] + }, + "PreserveDevices" : { + "description" : "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and recreate the files with that device name and metadata on the destination.", + "type" : "string", + "enum" : [ "NONE", "PRESERVE" ] + }, + "Mtime" : { + "description" : "A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase.", + "type" : "string", + "enum" : [ "NONE", "PRESERVE" ] + }, + "TaskQueueing" : { + "description" : "A value that determines whether tasks should be queued before executing the tasks.", + "type" : "string", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "TransferMode" : { + "description" : "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.", + "type" : "string", + "enum" : [ "CHANGED", "ALL" ] + }, + "LogLevel" : { + "description" : "A value that determines the types of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide.", + "type" : "string", + "enum" : [ "OFF", "BASIC", "TRANSFER" ] + }, + "ObjectTags" : { + "description" : "A value that determines whether object tags should be read from the source object store and written to the destination object store.", + "type" : "string", + "enum" : [ "PRESERVE", "NONE" ] + }, + "Uid" : { + "description" : "The user ID (UID) of the file's owner.", + "type" : "string", + "enum" : [ "NONE", "INT_VALUE", "NAME", "BOTH" ] + }, + "BytesPerSecond" : { + "format" : "int64", + "description" : "A value that limits the bandwidth used by AWS DataSync.", + "type" : "integer", + "minimum" : -1 + }, + "PosixPermissions" : { + "description" : "A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.", + "type" : "string", + "enum" : [ "NONE", "PRESERVE" ] + }, + "PreserveDeletedFiles" : { + "description" : "A value that specifies whether files in the destination that don't exist in the source file system should be preserved.", + "type" : "string", + "enum" : [ "PRESERVE", "REMOVE" ] + }, + "SecurityDescriptorCopyFlags" : { + "description" : "A value that determines which components of the SMB security descriptor are copied during transfer.", + "type" : "string", + "enum" : [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ] } } }, - "Tag" : { + "TaskReportConfigDestinationS3" : { + "description" : "Specifies the Amazon S3 bucket where DataSync uploads your task report.", "additionalProperties" : false, - "description" : "A key-value pair to associate with a resource.", "type" : "object", "properties" : { - "Key" : { + "Subdirectory" : { + "pattern" : "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$", + "description" : "Specifies a bucket prefix for your report.", "type" : "string", - "description" : "The key for an AWS resource tag.", - "pattern" : "^[a-zA-Z0-9\\s+=._:/-]+$", - "maxLength" : 256, - "minLength" : 1 + "maxLength" : 4096 }, - "Value" : { + "S3BucketArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", + "description" : "Specifies the ARN of the S3 bucket where Datasync uploads your report.", "type" : "string", - "description" : "The value for an AWS resource tag.", - "pattern" : "^[a-zA-Z0-9\\s+=._:@/-]+$", - "maxLength" : 256, - "minLength" : 1 + "maxLength" : 156 + }, + "BucketAccessRoleArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", + "description" : "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + "type" : "string", + "maxLength" : 2048 } - }, - "required" : [ "Key", "Value" ] + } }, - "TaskReportConfig" : { + "DestinationNetworkInterfaceArns" : { + "maxItems" : 128, + "description" : "The Amazon Resource Names (ARNs) of the destination ENIs (Elastic Network Interfaces) that were created for your subnet.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "pattern" : "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$", + "type" : "string" + } + }, + "ManifestConfigSourceS3" : { + "description" : "Specifies the S3 bucket where you're hosting the manifest that you want AWS DataSync to use.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "S3BucketArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", + "description" : "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.", + "type" : "string", + "maxLength" : 156 + }, + "BucketAccessRoleArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", + "description" : "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.", + "type" : "string", + "maxLength" : 2048 + }, + "ManifestObjectVersionId" : { + "pattern" : "^.+$", + "description" : "Specifies the object version ID of the manifest that you want DataSync to use.", + "type" : "string", + "maxLength" : 100 + }, + "ManifestObjectPath" : { + "pattern" : "^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}\\p{C}]*$", + "description" : "Specifies the Amazon S3 object key of your manifest.", + "type" : "string", + "maxLength" : 1024 + } + } + }, + "TaskSchedule" : { + "description" : "Specifies the schedule you want your task to use for repeated executions.", "additionalProperties" : false, + "type" : "object", + "properties" : { + "Status" : { + "description" : "Specifies status of a schedule.", + "type" : "string", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "ScheduleExpression" : { + "pattern" : "^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$", + "description" : "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location", + "type" : "string", + "maxLength" : 256 + } + } + }, + "TaskReportConfig" : { "description" : "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + "additionalProperties" : false, "type" : "object", "properties" : { "Destination" : { - "additionalProperties" : false, "description" : "Specifies where DataSync uploads your task report.", + "additionalProperties" : false, "type" : "object", "properties" : { "S3" : { @@ -60,11 +224,6 @@ } } }, - "OutputType" : { - "description" : "Specifies the type of task report that you want.", - "type" : "string", - "enum" : [ "SUMMARY_ONLY", "STANDARD" ] - }, "ReportLevel" : { "description" : "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", "type" : "string", @@ -76,13 +235,13 @@ "enum" : [ "INCLUDE", "NONE" ] }, "Overrides" : { - "additionalProperties" : false, "description" : "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + "additionalProperties" : false, "type" : "object", "properties" : { - "Transferred" : { + "Verified" : { + "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", "additionalProperties" : false, - "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", "type" : "object", "properties" : { "ReportLevel" : { @@ -92,9 +251,9 @@ } } }, - "Verified" : { + "Skipped" : { + "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", "additionalProperties" : false, - "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", "type" : "object", "properties" : { "ReportLevel" : { @@ -104,9 +263,9 @@ } } }, - "Deleted" : { + "Transferred" : { + "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", "additionalProperties" : false, - "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", "type" : "object", "properties" : { "ReportLevel" : { @@ -116,9 +275,9 @@ } } }, - "Skipped" : { + "Deleted" : { + "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", "additionalProperties" : false, - "description" : "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", "type" : "object", "properties" : { "ReportLevel" : { @@ -129,38 +288,60 @@ } } } + }, + "OutputType" : { + "description" : "Specifies the type of task report that you want.", + "type" : "string", + "enum" : [ "SUMMARY_ONLY", "STANDARD" ] } }, "required" : [ "Destination", "OutputType" ] }, - "TaskReportConfigDestinationS3" : { + "FilterRule" : { + "description" : "Specifies which files folders and objects to include or exclude when transferring files from source to destination.", "additionalProperties" : false, - "description" : "Specifies the Amazon S3 bucket where DataSync uploads your task report.", "type" : "object", "properties" : { - "Subdirectory" : { - "description" : "Specifies a bucket prefix for your report.", + "FilterType" : { + "pattern" : "^[A-Z0-9_]+$", + "description" : "The type of filter rule to apply. AWS DataSync only supports the SIMPLE_PATTERN rule type.", "type" : "string", - "maxLength" : 4096, - "pattern" : "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$" + "enum" : [ "SIMPLE_PATTERN" ], + "maxLength" : 128 }, - "BucketAccessRoleArn" : { - "description" : "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + "Value" : { + "pattern" : "^[^\\x00]+$", + "description" : "A single filter string that consists of the patterns to include or exclude. The patterns are delimited by \"|\".", "type" : "string", - "maxLength" : 2048, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$" + "maxLength" : 409600 + } + } + }, + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Value" : { + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9\\s+=._:@/-]+$", + "description" : "The value for an AWS resource tag.", + "type" : "string", + "maxLength" : 256 }, - "S3BucketArn" : { - "description" : "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + "Key" : { + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9\\s+=._:/-]+$", + "description" : "The key for an AWS resource tag.", "type" : "string", - "maxLength" : 156, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" + "maxLength" : 256 } - } + }, + "required" : [ "Key", "Value" ] }, "ManifestConfig" : { - "additionalProperties" : false, "description" : "Configures a manifest, which is a list of files or objects that you want DataSync to transfer.", + "additionalProperties" : false, "type" : "object", "properties" : { "Action" : { @@ -174,8 +355,8 @@ "enum" : [ "CSV" ] }, "Source" : { - "additionalProperties" : false, "description" : "Specifies the manifest that you want DataSync to use and where it's hosted.", + "additionalProperties" : false, "type" : "object", "properties" : { "S3" : { @@ -185,272 +366,91 @@ } }, "required" : [ "Source" ] + } + }, + "required" : [ "DestinationLocationArn", "SourceLocationArn" ], + "properties" : { + "Status" : { + "description" : "The status of the task that was described.", + "type" : "string", + "enum" : [ "AVAILABLE", "CREATING", "QUEUED", "RUNNING", "UNAVAILABLE" ] }, - "ManifestConfigSourceS3" : { - "additionalProperties" : false, - "description" : "Specifies the S3 bucket where you're hosting the manifest that you want AWS DataSync to use.", - "type" : "object", - "properties" : { - "ManifestObjectPath" : { - "description" : "Specifies the Amazon S3 object key of your manifest.", - "type" : "string", - "maxLength" : 1024, - "pattern" : "^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}\\p{C}]*$" - }, - "BucketAccessRoleArn" : { - "description" : "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.", - "type" : "string", - "maxLength" : 2048, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$" - }, - "S3BucketArn" : { - "description" : "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.", - "type" : "string", - "maxLength" : 156, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" - }, - "ManifestObjectVersionId" : { - "description" : "Specifies the object version ID of the manifest that you want DataSync to use.", - "type" : "string", - "maxLength" : 100, - "pattern" : "^.+$" - } - } + "SourceNetworkInterfaceArns" : { + "$ref" : "#/definitions/SourceNetworkInterfaceArns" }, - "TaskSchedule" : { - "additionalProperties" : false, - "description" : "Specifies the schedule you want your task to use for repeated executions.", - "type" : "object", - "properties" : { - "ScheduleExpression" : { - "description" : "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location", - "type" : "string", - "maxLength" : 256, - "pattern" : "^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$" - }, - "Status" : { - "description" : "Specifies status of a schedule.", - "type" : "string", - "enum" : [ "ENABLED", "DISABLED" ] - } - } + "DestinationLocationArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$", + "description" : "The ARN of an AWS storage resource's location.", + "type" : "string", + "maxLength" : 128 }, "Options" : { - "additionalProperties" : false, - "description" : "Represents the options that are available to control the behavior of a StartTaskExecution operation.", - "type" : "object", - "properties" : { - "Atime" : { - "description" : "A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to).", - "type" : "string", - "enum" : [ "NONE", "BEST_EFFORT" ] - }, - "BytesPerSecond" : { - "description" : "A value that limits the bandwidth used by AWS DataSync.", - "type" : "integer", - "format" : "int64", - "minimum" : -1 - }, - "Gid" : { - "description" : "The group ID (GID) of the file's owners.", - "type" : "string", - "enum" : [ "NONE", "INT_VALUE", "NAME", "BOTH" ] - }, - "LogLevel" : { - "description" : "A value that determines the types of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide.", - "type" : "string", - "enum" : [ "OFF", "BASIC", "TRANSFER" ] - }, - "Mtime" : { - "description" : "A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase.", - "type" : "string", - "enum" : [ "NONE", "PRESERVE" ] - }, - "OverwriteMode" : { - "description" : "A value that determines whether files at the destination should be overwritten or preserved when copying files.", - "type" : "string", - "enum" : [ "ALWAYS", "NEVER" ] - }, - "PosixPermissions" : { - "description" : "A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.", - "type" : "string", - "enum" : [ "NONE", "PRESERVE" ] - }, - "PreserveDeletedFiles" : { - "description" : "A value that specifies whether files in the destination that don't exist in the source file system should be preserved.", - "type" : "string", - "enum" : [ "PRESERVE", "REMOVE" ] - }, - "PreserveDevices" : { - "description" : "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and recreate the files with that device name and metadata on the destination.", - "type" : "string", - "enum" : [ "NONE", "PRESERVE" ] - }, - "SecurityDescriptorCopyFlags" : { - "description" : "A value that determines which components of the SMB security descriptor are copied during transfer.", - "type" : "string", - "enum" : [ "NONE", "OWNER_DACL", "OWNER_DACL_SACL" ] - }, - "TaskQueueing" : { - "description" : "A value that determines whether tasks should be queued before executing the tasks.", - "type" : "string", - "enum" : [ "ENABLED", "DISABLED" ] - }, - "TransferMode" : { - "description" : "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.", - "type" : "string", - "enum" : [ "CHANGED", "ALL" ] - }, - "Uid" : { - "description" : "The user ID (UID) of the file's owner.", - "type" : "string", - "enum" : [ "NONE", "INT_VALUE", "NAME", "BOTH" ] - }, - "VerifyMode" : { - "description" : "A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred.", - "type" : "string", - "enum" : [ "POINT_IN_TIME_CONSISTENT", "ONLY_FILES_TRANSFERRED", "NONE" ] - }, - "ObjectTags" : { - "description" : "A value that determines whether object tags should be read from the source object store and written to the destination object store.", - "type" : "string", - "enum" : [ "PRESERVE", "NONE" ] - } - } + "$ref" : "#/definitions/Options" }, - "SourceNetworkInterfaceArns" : { - "description" : "The Amazon Resource Names (ARNs) of the source ENIs (Elastic Network Interfaces) that were created for your subnet.", - "type" : "array", - "items" : { - "type" : "string", - "pattern" : "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$" - }, - "maxItems" : 128, - "insertionOrder" : false + "TaskReportConfig" : { + "$ref" : "#/definitions/TaskReportConfig" }, - "DestinationNetworkInterfaceArns" : { - "description" : "The Amazon Resource Names (ARNs) of the destination ENIs (Elastic Network Interfaces) that were created for your subnet.", - "type" : "array", - "items" : { - "type" : "string", - "pattern" : "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$" - }, - "maxItems" : 128, - "insertionOrder" : false - } - }, - "properties" : { "Excludes" : { - "type" : "array", "minItems" : 0, "maxItems" : 1, - "items" : { - "$ref" : "#/definitions/FilterRule" - }, - "insertionOrder" : false - }, - "Includes" : { + "insertionOrder" : false, "type" : "array", - "minItems" : 0, - "maxItems" : 1, "items" : { "$ref" : "#/definitions/FilterRule" - }, - "insertionOrder" : false - }, - "Tags" : { - "description" : "An array of key-value pairs to apply to this resource.", - "type" : "array", - "maxItems" : 50, - "uniqueItems" : true, - "insertionOrder" : false, - "items" : { - "$ref" : "#/definitions/Tag" } }, - "CloudWatchLogGroupArn" : { - "description" : "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.", - "type" : "string", - "maxLength" : 562, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$" - }, - "DestinationLocationArn" : { - "description" : "The ARN of an AWS storage resource's location.", - "type" : "string", - "maxLength" : 128, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$" - }, "Name" : { + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9\\s+=._:@/-]+$", "description" : "The name of a task. This value is a text reference that is used to identify the task in the console.", "type" : "string", - "maxLength" : 256, - "minLength" : 1, - "pattern" : "^[a-zA-Z0-9\\s+=._:@/-]+$" - }, - "Options" : { - "$ref" : "#/definitions/Options" - }, - "TaskReportConfig" : { - "$ref" : "#/definitions/TaskReportConfig" + "maxLength" : 256 }, "ManifestConfig" : { "$ref" : "#/definitions/ManifestConfig" }, - "Schedule" : { - "$ref" : "#/definitions/TaskSchedule" - }, - "SourceLocationArn" : { - "description" : "The ARN of the source location for the task.", - "type" : "string", - "maxLength" : 128, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$" - }, "TaskArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$", "description" : "The ARN of the task.", "type" : "string", - "maxLength" : 128, - "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$" - }, - "Status" : { - "description" : "The status of the task that was described.", - "type" : "string", - "enum" : [ "AVAILABLE", "CREATING", "QUEUED", "RUNNING", "UNAVAILABLE" ] + "maxLength" : 128 }, - "SourceNetworkInterfaceArns" : { - "$ref" : "#/definitions/SourceNetworkInterfaceArns" + "Includes" : { + "minItems" : 0, + "maxItems" : 1, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/FilterRule" + } }, "DestinationNetworkInterfaceArns" : { "$ref" : "#/definitions/DestinationNetworkInterfaceArns" - } - }, - "tagging" : { - "taggable" : true, - "tagOnCreate" : true, - "tagUpdatable" : true, - "cloudFormationSystemTags" : true, - "tagProperty" : "/properties/Tags", - "permissions" : [ "datasync:TagResource", "datasync:UntagResource", "datasync:ListTagsForResource" ] - }, - "additionalProperties" : false, - "required" : [ "DestinationLocationArn", "SourceLocationArn" ], - "readOnlyProperties" : [ "/properties/TaskArn", "/properties/Status", "/properties/SourceNetworkInterfaceArns", "/properties/DestinationNetworkInterfaceArns" ], - "primaryIdentifier" : [ "/properties/TaskArn" ], - "createOnlyProperties" : [ "/properties/DestinationLocationArn", "/properties/SourceLocationArn" ], - "handlers" : { - "create" : { - "permissions" : [ "datasync:CreateTask", "datasync:DescribeTask", "datasync:ListTagsForResource", "datasync:TagResource", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:CreateNetworkInterfacePermission", "fsx:DescribeFileSystems", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "logs:DescribeLogGroups", "iam:GetRole", "iam:PassRole", "iam:AssumeRole" ] }, - "read" : { - "permissions" : [ "datasync:DescribeTask", "datasync:ListTagsForResource" ] + "Schedule" : { + "$ref" : "#/definitions/TaskSchedule" }, - "update" : { - "permissions" : [ "datasync:UpdateTask", "datasync:DescribeTask", "datasync:ListTagsForResource", "datasync:TagResource", "datasync:UntagResource", "logs:DescribeLogGroups", "iam:PassRole" ] + "CloudWatchLogGroupArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$", + "description" : "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.", + "type" : "string", + "maxLength" : 562 }, - "delete" : { - "permissions" : [ "datasync:DeleteTask", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "fsx:DescribeFileSystems", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "iam:GetRole" ] + "SourceLocationArn" : { + "pattern" : "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$", + "description" : "The ARN of the source location for the task.", + "type" : "string", + "maxLength" : 128 }, - "list" : { - "permissions" : [ "datasync:ListTasks" ] + "Tags" : { + "maxItems" : 50, + "uniqueItems" : true, + "description" : "An array of key-value pairs to apply to this resource.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + } } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-m2-application.json b/aws-cloudformation-schema/aws-m2-application.json index e1df077639..72c2857ff7 100644 --- a/aws-cloudformation-schema/aws-m2-application.json +++ b/aws-cloudformation-schema/aws-m2-application.json @@ -89,7 +89,7 @@ "tagUpdatable" : true, "cloudFormationSystemTags" : false }, - "required" : [ "Definition", "EngineType", "Name" ], + "required" : [ "EngineType", "Name" ], "readOnlyProperties" : [ "/properties/ApplicationArn", "/properties/ApplicationId" ], "writeOnlyProperties" : [ "/properties/Definition" ], "createOnlyProperties" : [ "/properties/EngineType", "/properties/Name", "/properties/KmsKeyId", "/properties/RoleArn" ], diff --git a/aws-cloudformation-schema/aws-m2-environment.json b/aws-cloudformation-schema/aws-m2-environment.json index 374f5f8b93..64183bf092 100644 --- a/aws-cloudformation-schema/aws-m2-environment.json +++ b/aws-cloudformation-schema/aws-m2-environment.json @@ -187,16 +187,19 @@ "primaryIdentifier" : [ "/properties/EnvironmentArn" ], "handlers" : { "create" : { - "permissions" : [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "elasticfilesystem:DescribeMountTargets", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:AddTags", "fsx:DescribeFileSystems", "iam:CreateServiceLinkedRole", "kms:DescribeKey", "kms:CreateGrant", "m2:CreateEnvironment", "m2:GetEnvironment", "m2:ListTagsForResource", "m2:TagResource" ] + "permissions" : [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "elasticfilesystem:DescribeMountTargets", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:AddTags", "fsx:DescribeFileSystems", "iam:CreateServiceLinkedRole", "kms:DescribeKey", "kms:CreateGrant", "m2:CreateEnvironment", "m2:GetEnvironment", "m2:ListTagsForResource", "m2:TagResource" ], + "timeoutInMinutes" : 60 }, "read" : { "permissions" : [ "m2:ListTagsForResource", "m2:GetEnvironment" ] }, "update" : { - "permissions" : [ "m2:TagResource", "m2:UntagResource", "m2:ListTagsForResource", "m2:GetEnvironment", "m2:UpdateEnvironment", "kms:DescribeKey" ] + "permissions" : [ "m2:TagResource", "m2:UntagResource", "m2:ListTagsForResource", "m2:GetEnvironment", "m2:UpdateEnvironment", "kms:DescribeKey" ], + "timeoutInMinutes" : 60 }, "delete" : { - "permissions" : [ "elasticloadbalancing:DeleteLoadBalancer", "m2:DeleteEnvironment", "m2:GetEnvironment" ] + "permissions" : [ "elasticloadbalancing:DeleteLoadBalancer", "m2:DeleteEnvironment", "m2:GetEnvironment" ], + "timeoutInMinutes" : 60 }, "list" : { "permissions" : [ "m2:ListEnvironments" ] diff --git a/aws-cloudformation-schema/aws-mwaa-environment.json b/aws-cloudformation-schema/aws-mwaa-environment.json index 4bc4185bea..443d5cb652 100644 --- a/aws-cloudformation-schema/aws-mwaa-environment.json +++ b/aws-cloudformation-schema/aws-mwaa-environment.json @@ -158,12 +158,12 @@ "MaxWebservers" : { "type" : "integer", "description" : "Maximum webserver compute units.", - "minimum" : 2 + "minimum" : 1 }, "MinWebservers" : { "type" : "integer", "description" : "Minimum webserver compute units.", - "minimum" : 2 + "minimum" : 1 }, "Schedulers" : { "type" : "integer", diff --git a/aws-cloudformation-schema/aws-opensearchservice-application.json b/aws-cloudformation-schema/aws-opensearchservice-application.json new file mode 100644 index 0000000000..8c56f07747 --- /dev/null +++ b/aws-cloudformation-schema/aws-opensearchservice-application.json @@ -0,0 +1,162 @@ +{ + "typeName" : "AWS::OpenSearchService::Application", + "description" : "Amazon OpenSearchService application resource", + "definitions" : { + "AppConfigType" : { + "type" : "string", + "enum" : [ "opensearchDashboards.dashboardAdmin.users", "opensearchDashboards.dashboardAdmin.groups" ], + "description" : "AppConfig type values." + }, + "Tag" : { + "type" : "object", + "description" : "A key-value pair metadata associated with resource", + "properties" : { + "Key" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "description" : "The key in the key-value pair" + }, + "Value" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "description" : "The value in the key-value pair" + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "AppConfig" : { + "type" : "object", + "description" : "A key-value pair of AppConfig", + "properties" : { + "Key" : { + "$ref" : "#/definitions/AppConfigType", + "description" : "The configuration key" + }, + "Value" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "description" : "The configuration value." + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "DataSource" : { + "type" : "object", + "description" : "Datasource arn and description", + "properties" : { + "DataSourceArn" : { + "$ref" : "#/properties/Arn", + "description" : "The ARN of the data source." + }, + "DataSourceDescription" : { + "type" : "string", + "description" : "Description of the data source." + } + }, + "required" : [ "DataSourceArn" ], + "additionalProperties" : false + } + }, + "properties" : { + "IamIdentityCenterOptions" : { + "type" : "object", + "description" : "Options for configuring IAM Identity Center", + "properties" : { + "Enabled" : { + "type" : "boolean", + "description" : "Whether IAM Identity Center is enabled." + }, + "IamIdentityCenterInstanceArn" : { + "$ref" : "#/properties/Arn", + "description" : "The ARN of the IAM Identity Center instance." + }, + "IamRoleForIdentityCenterApplicationArn" : { + "type" : "string", + "description" : "The ARN of the IAM role for Identity Center application." + } + }, + "additionalProperties" : false + }, + "Arn" : { + "type" : "string", + "description" : "Amazon Resource Name (ARN) format." + }, + "Id" : { + "type" : "string", + "maxLength" : 40, + "minLength" : 3, + "description" : "The identifier of the application." + }, + "Name" : { + "type" : "string", + "pattern" : "[a-z][a-z0-9\\-]+", + "minLength" : 3, + "maxLength" : 40, + "description" : "The name of the application." + }, + "Endpoint" : { + "type" : "string", + "description" : "The endpoint for the application." + }, + "AppConfigs" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AppConfig" + }, + "description" : "List of application configurations.", + "insertionOrder" : false + }, + "DataSources" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/DataSource" + }, + "description" : "List of data sources.", + "insertionOrder" : false + }, + "Tags" : { + "description" : "An arbitrary set of tags (key-value pairs) for this application.", + "items" : { + "$ref" : "#/definitions/Tag" + }, + "type" : "array", + "uniqueItems" : true + } + }, + "required" : [ "Name" ], + "readOnlyProperties" : [ "/properties/Id", "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/Name" ], + "primaryIdentifier" : [ "/properties/Name" ], + "additionalIdentifiers" : [ [ "/properties/Arn" ] ], + "handlers" : { + "create" : { + "permissions" : [ "es:CreateApplication", "es:GetApplication", "es:AddTags", "es:ListTags", "iam:CreateServiceLinkedRole" ] + }, + "read" : { + "permissions" : [ "es:GetApplication", "es:ListTags" ] + }, + "update" : { + "permissions" : [ "es:UpdateApplication", "es:GetApplication", "es:AddTags", "es:RemoveTags", "es:ListTags" ] + }, + "delete" : { + "permissions" : [ "es:GetApplication", "es:DeleteApplication" ] + }, + "list" : { + "permissions" : [ "es:ListApplications" ] + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "es:AddTags", "es:RemoveTags", "es:ListTags" ] + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-sagemaker-space.json b/aws-cloudformation-schema/aws-sagemaker-space.json index bc163ab274..615cd8a8c8 100644 --- a/aws-cloudformation-schema/aws-sagemaker-space.json +++ b/aws-cloudformation-schema/aws-sagemaker-space.json @@ -373,7 +373,7 @@ }, "required" : [ "DomainId", "SpaceName" ], "createOnlyProperties" : [ "/properties/DomainId", "/properties/SpaceName", "/properties/SpaceSharingSettings", "/properties/OwnershipSettings" ], - "writeOnlyProperties" : [ "/properties/SpaceSettings", "/properties/Tags" ], + "writeOnlyProperties" : [ "/properties/SpaceSettings" ], "primaryIdentifier" : [ "/properties/DomainId", "/properties/SpaceName" ], "readOnlyProperties" : [ "/properties/SpaceArn", "/properties/Url" ], "tagging" : { @@ -381,23 +381,24 @@ "tagOnCreate" : true, "tagUpdatable" : true, "cloudFormationSystemTags" : false, - "tagProperty" : "/properties/Tags" + "tagProperty" : "/properties/Tags", + "permissions" : [ "sagemaker:AddTags", "sagemaker:DeleteTags", "sagemaker:ListTags" ] }, "handlers" : { "create" : { - "permissions" : [ "sagemaker:CreateSpace", "sagemaker:DescribeSpace" ] + "permissions" : [ "sagemaker:CreateSpace", "sagemaker:DescribeSpace", "sagemaker:ListTags", "sagemaker:AddTags" ] }, "read" : { - "permissions" : [ "sagemaker:DescribeSpace" ] + "permissions" : [ "sagemaker:DescribeSpace", "sagemaker:ListTags" ] }, "update" : { - "permissions" : [ "sagemaker:UpdateSpace", "sagemaker:DescribeSpace" ] + "permissions" : [ "sagemaker:UpdateSpace", "sagemaker:DescribeSpace", "sagemaker:AddTags", "sagemaker:DeleteTags", "sagemaker:ListTags" ] }, "delete" : { - "permissions" : [ "sagemaker:DeleteSpace", "sagemaker:DescribeSpace" ] + "permissions" : [ "sagemaker:DeleteSpace", "sagemaker:DescribeSpace", "sagemaker:DeleteTags" ] }, "list" : { - "permissions" : [ "sagemaker:ListSpaces" ] + "permissions" : [ "sagemaker:ListSpaces", "sagemaker:ListTags" ] } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-sagemaker-studiolifecycleconfig.json b/aws-cloudformation-schema/aws-sagemaker-studiolifecycleconfig.json index 723fbd358e..015f87cb34 100644 --- a/aws-cloudformation-schema/aws-sagemaker-studiolifecycleconfig.json +++ b/aws-cloudformation-schema/aws-sagemaker-studiolifecycleconfig.json @@ -17,7 +17,7 @@ }, "StudioLifecycleConfigContent" : { "type" : "string", - "description" : "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + "description" : "The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded.", "minLength" : 1, "maxLength" : 16384, "pattern" : "[\\S\\s]+" @@ -31,7 +31,7 @@ }, "Tags" : { "type" : "array", - "description" : "Tags to be associated with the Lifecycle Configuration.", + "description" : "Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API.", "uniqueItems" : false, "insertionOrder" : false, "items" : { diff --git a/aws-cloudformation-schema/aws-secretsmanager-secret.json b/aws-cloudformation-schema/aws-secretsmanager-secret.json index 2ab82f7747..fe5d7a0cb7 100644 --- a/aws-cloudformation-schema/aws-secretsmanager-secret.json +++ b/aws-cloudformation-schema/aws-secretsmanager-secret.json @@ -1,5 +1,6 @@ { "typeName" : "AWS::SecretsManager::Secret", + "$comment" : "If you make any changes to this schema, be sure to also modify the regional schema template that generates schemas for contract tests: secret/templates/{region.region_name}_schema.json.erb", "$schema" : "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", "description" : "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html).", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-secretsmanager.git", diff --git a/aws-cloudformation-schema/aws-secretsmanager-secrettargetattachment.json b/aws-cloudformation-schema/aws-secretsmanager-secrettargetattachment.json index 3780ccc700..7e7021cfae 100644 --- a/aws-cloudformation-schema/aws-secretsmanager-secrettargetattachment.json +++ b/aws-cloudformation-schema/aws-secretsmanager-secrettargetattachment.json @@ -23,6 +23,7 @@ }, "primaryIdentifier" : [ "/properties/Id" ], "readOnlyProperties" : [ "/properties/Id" ], + "createOnlyProperties" : [ "/properties/SecretId" ], "handlers" : { "read" : { "permissions" : [ "secretsmanager:GetSecretValue" ] diff --git a/aws-cloudformation-schema/aws-wafv2-ipset.json b/aws-cloudformation-schema/aws-wafv2-ipset.json index bd08a39b15..9815967e08 100644 --- a/aws-cloudformation-schema/aws-wafv2-ipset.json +++ b/aws-cloudformation-schema/aws-wafv2-ipset.json @@ -95,10 +95,11 @@ "readOnlyProperties" : [ "/properties/Arn", "/properties/Id" ], "additionalProperties" : false, "tagging" : { - "cloudFormationSystemTags" : false, - "tagOnCreate" : false, - "tagUpdatable" : false, - "taggable" : false + "cloudFormationSystemTags" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "taggable" : true, + "tagProperty" : "/properties/Tags" }, "handlers" : { "create" : { @@ -111,7 +112,7 @@ "permissions" : [ "wafv2:GetIPSet", "wafv2:ListTagsForResource" ] }, "update" : { - "permissions" : [ "wafv2:UpdateIPSet", "wafv2:GetIPSet", "wafv2:ListTagsForResource" ] + "permissions" : [ "wafv2:UpdateIPSet", "wafv2:GetIPSet", "wafv2:ListTagsForResource", "wafv2:TagResource", "wafv2:UntagResource" ] }, "list" : { "permissions" : [ "wafv2:listIPSets" ], diff --git a/aws-cloudformation-schema/aws-wafv2-regexpatternset.json b/aws-cloudformation-schema/aws-wafv2-regexpatternset.json index fcfee4a49b..408513e540 100644 --- a/aws-cloudformation-schema/aws-wafv2-regexpatternset.json +++ b/aws-cloudformation-schema/aws-wafv2-regexpatternset.json @@ -65,10 +65,11 @@ "readOnlyProperties" : [ "/properties/Arn", "/properties/Id" ], "additionalProperties" : false, "tagging" : { - "cloudFormationSystemTags" : false, - "tagOnCreate" : false, - "tagUpdatable" : false, - "taggable" : false + "cloudFormationSystemTags" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "taggable" : true, + "tagProperty" : "/properties/Tags" }, "handlers" : { "create" : { @@ -81,7 +82,7 @@ "permissions" : [ "wafv2:GetRegexPatternSet", "wafv2:ListTagsForResource" ] }, "update" : { - "permissions" : [ "wafv2:UpdateRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:ListTagsForResource" ] + "permissions" : [ "wafv2:UpdateRegexPatternSet", "wafv2:GetRegexPatternSet", "wafv2:ListTagsForResource", "wafv2:TagResource", "wafv2:UntagResource" ] }, "list" : { "permissions" : [ "wafv2:listRegexPatternSets" ], diff --git a/aws-cloudformation-schema/aws-wafv2-rulegroup.json b/aws-cloudformation-schema/aws-wafv2-rulegroup.json index 6c351dd44d..c7a39e2db6 100644 --- a/aws-cloudformation-schema/aws-wafv2-rulegroup.json +++ b/aws-cloudformation-schema/aws-wafv2-rulegroup.json @@ -409,7 +409,7 @@ }, "RateLimit" : { "type" : "integer", - "minimum" : 100, + "minimum" : 10, "maximum" : 2000000000 }, "EvaluationWindowSec" : { @@ -1207,10 +1207,11 @@ "readOnlyProperties" : [ "/properties/Arn", "/properties/Id", "/properties/LabelNamespace", "/properties/AvailableLabels/*/Name", "/properties/ConsumedLabels/*/Name" ], "additionalProperties" : false, "tagging" : { - "cloudFormationSystemTags" : false, - "tagOnCreate" : false, - "tagUpdatable" : false, - "taggable" : false + "cloudFormationSystemTags" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "taggable" : true, + "tagProperty" : "/properties/Tags" }, "handlers" : { "create" : { @@ -1223,7 +1224,7 @@ "permissions" : [ "wafv2:GetRuleGroup", "wafv2:ListTagsForResource" ] }, "update" : { - "permissions" : [ "wafv2:UpdateRuleGroup", "wafv2:GetRuleGroup", "wafv2:ListTagsForResource" ] + "permissions" : [ "wafv2:TagResource", "wafv2:UntagResource", "wafv2:UpdateRuleGroup", "wafv2:GetRuleGroup", "wafv2:ListTagsForResource" ] }, "list" : { "permissions" : [ "wafv2:listRuleGroups" ], diff --git a/aws-cloudformation-schema/aws-wafv2-webacl.json b/aws-cloudformation-schema/aws-wafv2-webacl.json index a234642d83..e4b1619f8e 100644 --- a/aws-cloudformation-schema/aws-wafv2-webacl.json +++ b/aws-cloudformation-schema/aws-wafv2-webacl.json @@ -524,7 +524,7 @@ }, "RateLimit" : { "type" : "integer", - "minimum" : 100, + "minimum" : 10, "maximum" : 2000000000 }, "EvaluationWindowSec" : { @@ -1687,10 +1687,11 @@ "readOnlyProperties" : [ "/properties/Arn", "/properties/Capacity", "/properties/Id", "/properties/LabelNamespace" ], "additionalProperties" : false, "tagging" : { - "cloudFormationSystemTags" : false, - "tagOnCreate" : false, - "tagUpdatable" : false, - "taggable" : false + "cloudFormationSystemTags" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "taggable" : true, + "tagProperty" : "/properties/Tags" }, "handlers" : { "create" : { @@ -1703,7 +1704,7 @@ "permissions" : [ "wafv2:GetWebACL", "wafv2:ListTagsForResource" ] }, "update" : { - "permissions" : [ "wafv2:UpdateWebACL", "wafv2:GetWebACL", "wafv2:ListTagsForResource" ] + "permissions" : [ "wafv2:UpdateWebACL", "wafv2:GetWebACL", "wafv2:ListTagsForResource", "wafv2:TagResource", "wafv2:UntagResource" ] }, "list" : { "permissions" : [ "wafv2:listWebACLs" ], diff --git a/aws-cloudformation-schema/aws-wisdom-aipromptversion.json b/aws-cloudformation-schema/aws-wisdom-aipromptversion.json new file mode 100644 index 0000000000..b798543f4b --- /dev/null +++ b/aws-cloudformation-schema/aws-wisdom-aipromptversion.json @@ -0,0 +1,74 @@ +{ + "typeName" : "AWS::Wisdom::AIPromptVersion", + "description" : "Definition of AWS::Wisdom::AIPromptVersion Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions" : { }, + "properties" : { + "AIPromptArn" : { + "type" : "string", + "pattern" : "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AssistantArn" : { + "type" : "string", + "pattern" : "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AIPromptId" : { + "type" : "string", + "pattern" : "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AssistantId" : { + "type" : "string", + "pattern" : "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AIPromptVersionId" : { + "type" : "string", + "pattern" : "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "VersionNumber" : { + "type" : "number" + }, + "ModifiedTimeSeconds" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "required" : [ "AssistantId", "AIPromptId" ], + "createOnlyProperties" : [ "/properties/AssistantId", "/properties/AIPromptId", "/properties/ModifiedTimeSeconds" ], + "readOnlyProperties" : [ "/properties/AIPromptArn", "/properties/AIPromptVersionId", "/properties/AssistantArn", "/properties/VersionNumber" ], + "primaryIdentifier" : [ "/properties/AssistantId", "/properties/AIPromptId", "/properties/VersionNumber" ], + "additionalIdentifiers" : [ [ "/properties/AIPromptArn", "/properties/AssistantArn" ] ], + "handlers" : { + "create" : { + "permissions" : [ "wisdom:CreateAIPromptVersion" ] + }, + "read" : { + "permissions" : [ "wisdom:GetAIPrompt", "wisdom:GetAIPromptVersion" ] + }, + "update" : { + "permissions" : [ "wisdom:GetAIPrompt", "wisdom:GetAIPromptVersion" ] + }, + "delete" : { + "permissions" : [ "wisdom:DeleteAIPromptVersion" ] + }, + "list" : { + "permissions" : [ "wisdom:ListAIPromptVersions" ], + "handlerSchema" : { + "properties" : { + "AssistantId" : { + "$ref" : "resource-schema.json#/properties/AssistantId" + }, + "AIPromptId" : { + "$ref" : "resource-schema.json#/properties/AIPromptId" + } + }, + "required" : [ "AssistantId", "AIPromptId" ] + } + } + } +} \ No newline at end of file diff --git a/meta/.botocore.version b/meta/.botocore.version index aa87d25f7e..c0daf1ea30 100644 --- a/meta/.botocore.version +++ b/meta/.botocore.version @@ -1 +1 @@ -1.35.50 +1.35.51 diff --git a/provider/cmd/pulumi-gen-aws-native/supported-types.txt b/provider/cmd/pulumi-gen-aws-native/supported-types.txt index ce3ff17417..2a6194af18 100644 --- a/provider/cmd/pulumi-gen-aws-native/supported-types.txt +++ b/provider/cmd/pulumi-gen-aws-native/supported-types.txt @@ -71,6 +71,7 @@ AWS::AppStream::ApplicationFleetAssociation AWS::AppStream::DirectoryConfig AWS::AppStream::Entitlement AWS::AppStream::ImageBuilder +AWS::AppSync::Api AWS::AppSync::DataSource AWS::AppSync::DomainName AWS::AppSync::DomainNameApiAssociation @@ -770,6 +771,7 @@ AWS::OpenSearchServerless::LifecyclePolicy AWS::OpenSearchServerless::SecurityConfig AWS::OpenSearchServerless::SecurityPolicy AWS::OpenSearchServerless::VpcEndpoint +AWS::OpenSearchService::Application AWS::OpenSearchService::Domain AWS::OpsWorksCM::Server AWS::Organizations::Account @@ -975,6 +977,7 @@ AWS::SageMaker::UserProfile AWS::Scheduler::Schedule AWS::Scheduler::ScheduleGroup AWS::SecretsManager::ResourcePolicy +AWS::SecretsManager::RotationSchedule AWS::SecretsManager::Secret AWS::SecretsManager::SecretTargetAttachment AWS::SecurityHub::AutomationRule @@ -1048,6 +1051,7 @@ AWS::WAFv2::RuleGroup AWS::WAFv2::WebACL AWS::WAFv2::WebACLAssociation AWS::Wisdom::AIPrompt +AWS::Wisdom::AIPromptVersion AWS::Wisdom::Assistant AWS::Wisdom::AssistantAssociation AWS::Wisdom::KnowledgeBase diff --git a/provider/cmd/pulumi-resource-aws-native/metadata.json b/provider/cmd/pulumi-resource-aws-native/metadata.json index 0e62e704fc..f4fa598db5 100644 --- a/provider/cmd/pulumi-resource-aws-native/metadata.json +++ b/provider/cmd/pulumi-resource-aws-native/metadata.json @@ -6876,6 +6876,62 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:appsync:Api": { + "cf": "AWS::AppSync::Api", + "inputs": { + "eventConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventConfig" + }, + "name": { + "type": "string" + }, + "ownerContact": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "outputs": { + "apiArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AppSync Api" + }, + "apiId": { + "type": "string", + "description": "The unique identifier for the AppSync Api generated by the service" + }, + "dns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "eventConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventConfig" + }, + "name": { + "type": "string" + }, + "ownerContact": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "autoNamingSpec": { + "sdkName": "name" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:appsync:DataSource": { "cf": "AWS::AppSync::DataSource", "inputs": { @@ -29436,7 +29492,8 @@ "cf": "AWS::EC2::EIP", "inputs": { "address": { - "type": "string" + "type": "string", + "description": "Describes an Elastic IP address, or a carrier IP address." }, "domain": { "type": "string", @@ -29472,6 +29529,7 @@ "outputs": { "address": { "type": "string", + "description": "Describes an Elastic IP address, or a carrier IP address.", "replaceOnChanges": true }, "allocationId": { @@ -61795,7 +61853,6 @@ "sdkName": "name" }, "required": [ - "definition", "engineType" ], "createOnly": [ @@ -70780,6 +70837,101 @@ "awsId": "Id" } }, + "aws-native:opensearchservice:Application": { + "cf": "AWS::OpenSearchService::Application", + "inputs": { + "appConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfig" + }, + "description": "List of application configurations." + }, + "dataSources": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationDataSource" + }, + "description": "List of data sources." + }, + "endpoint": { + "type": "string", + "description": "The endpoint for the application." + }, + "iamIdentityCenterOptions": { + "$ref": "#/types/aws-native:opensearchservice:IamIdentityCenterOptionsProperties", + "description": "Options for configuring IAM Identity Center" + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this application." + } + }, + "outputs": { + "appConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfig" + }, + "description": "List of application configurations." + }, + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) format." + }, + "awsId": { + "type": "string", + "description": "The identifier of the application." + }, + "dataSources": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationDataSource" + }, + "description": "List of data sources." + }, + "endpoint": { + "type": "string", + "description": "The endpoint for the application." + }, + "iamIdentityCenterOptions": { + "$ref": "#/types/aws-native:opensearchservice:IamIdentityCenterOptionsProperties", + "description": "Options for configuring IAM Identity Center" + }, + "name": { + "type": "string", + "description": "The name of the application.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this application." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 3, + "maxLength": 40 + }, + "createOnly": [ + "name" + ], + "irreversibleNames": { + "awsId": "Id" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:opensearchservice:Domain": { "cf": "AWS::OpenSearchService::Domain", "inputs": { @@ -87117,8 +87269,7 @@ "spaceSharingSettings" ], "writeOnly": [ - "spaceSettings", - "tags" + "spaceSettings" ], "tagsProperty": "tags", "tagsStyle": "keyValueArray" @@ -87132,7 +87283,7 @@ }, "studioLifecycleConfigContent": { "type": "string", - "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script." + "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded." }, "studioLifecycleConfigName": { "type": "string", @@ -87143,7 +87294,7 @@ "items": { "$ref": "#/types/aws-native:index:CreateOnlyTag" }, - "description": "Tags to be associated with the Lifecycle Configuration." + "description": "Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API." } }, "outputs": { @@ -87158,7 +87309,7 @@ }, "studioLifecycleConfigContent": { "type": "string", - "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded.", "replaceOnChanges": true }, "studioLifecycleConfigName": { @@ -87171,7 +87322,7 @@ "items": { "$ref": "#/types/aws-native:index:CreateOnlyTag" }, - "description": "Tags to be associated with the Lifecycle Configuration.", + "description": "Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API.", "replaceOnChanges": true } }, @@ -87513,6 +87664,83 @@ "awsId": "Id" } }, + "aws-native:secretsmanager:RotationSchedule": { + "cf": "AWS::SecretsManager::RotationSchedule", + "inputs": { + "hostedRotationLambda": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleHostedRotationLambda", + "description": "Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead." + }, + "rotateImmediatelyOnUpdate": { + "type": "boolean", + "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + }, + "secretId": { + "type": "string", + "description": "The ARN or name of the secret to rotate." + } + }, + "outputs": { + "awsId": { + "type": "string", + "description": "The ARN of the secret." + }, + "hostedRotationLambda": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleHostedRotationLambda", + "description": "Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead." + }, + "rotateImmediatelyOnUpdate": { + "type": "boolean", + "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + }, + "secretId": { + "type": "string", + "description": "The ARN or name of the secret to rotate.", + "replaceOnChanges": true + } + }, + "required": [ + "secretId" + ], + "createOnly": [ + "secretId" + ], + "writeOnly": [ + "hostedRotationLambda", + "hostedRotationLambda/ExcludeCharacters", + "hostedRotationLambda/KmsKeyArn", + "hostedRotationLambda/MasterSecretArn", + "hostedRotationLambda/MasterSecretKmsKeyArn", + "hostedRotationLambda/RotationLambdaName", + "hostedRotationLambda/RotationType", + "hostedRotationLambda/Runtime", + "hostedRotationLambda/SuperuserSecretArn", + "hostedRotationLambda/SuperuserSecretKmsKeyArn", + "hostedRotationLambda/VpcSecurityGroupIds", + "hostedRotationLambda/VpcSubnetIds", + "rotateImmediatelyOnUpdate" + ], + "irreversibleNames": { + "awsId": "Id", + "rotationLambdaArn": "RotationLambdaARN" + } + }, "aws-native:secretsmanager:Secret": { "cf": "AWS::SecretsManager::Secret", "inputs": { @@ -87630,7 +87858,8 @@ }, "secretId": { "type": "string", - "description": "The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition." + "description": "The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition.", + "replaceOnChanges": true }, "targetId": { "type": "string", @@ -87646,6 +87875,9 @@ "targetId", "targetType" ], + "createOnly": [ + "secretId" + ], "irreversibleNames": { "awsId": "Id" } @@ -96354,6 +96586,60 @@ "tagsProperty": "tags", "tagsStyle": "stringMap" }, + "aws-native:wisdom:AiPromptVersion": { + "cf": "AWS::Wisdom::AIPromptVersion", + "inputs": { + "aiPromptId": { + "type": "string" + }, + "assistantId": { + "type": "string" + }, + "modifiedTimeSeconds": { + "type": "number" + } + }, + "outputs": { + "aiPromptArn": { + "type": "string" + }, + "aiPromptId": { + "type": "string", + "replaceOnChanges": true + }, + "aiPromptVersionId": { + "type": "string" + }, + "assistantArn": { + "type": "string" + }, + "assistantId": { + "type": "string", + "replaceOnChanges": true + }, + "modifiedTimeSeconds": { + "type": "number", + "replaceOnChanges": true + }, + "versionNumber": { + "type": "number" + } + }, + "required": [ + "aiPromptId", + "assistantId" + ], + "createOnly": [ + "aiPromptId", + "assistantId", + "modifiedTimeSeconds" + ], + "irreversibleNames": { + "aiPromptArn": "AIPromptArn", + "aiPromptId": "AIPromptId", + "aiPromptVersionId": "AIPromptVersionId" + } + }, "aws-native:wisdom:Assistant": { "cf": "AWS::Wisdom::Assistant", "inputs": { @@ -104308,6 +104594,145 @@ } } }, + "aws-native:appsync:ApiAuthMode": { + "type": "object", + "properties": { + "authType": { + "$ref": "#/types/aws-native:appsync:ApiAuthenticationType" + } + } + }, + "aws-native:appsync:ApiAuthProvider": { + "type": "object", + "properties": { + "authType": { + "$ref": "#/types/aws-native:appsync:ApiAuthenticationType" + }, + "cognitoConfig": { + "$ref": "#/types/aws-native:appsync:ApiCognitoConfig" + }, + "lambdaAuthorizerConfig": { + "$ref": "#/types/aws-native:appsync:ApiLambdaAuthorizerConfig" + }, + "openIdConnectConfig": { + "$ref": "#/types/aws-native:appsync:ApiOpenIdConnectConfig" + } + }, + "irreversibleNames": { + "openIdConnectConfig": "OpenIDConnectConfig" + } + }, + "aws-native:appsync:ApiAuthenticationType": { + "type": "string" + }, + "aws-native:appsync:ApiCognitoConfig": { + "type": "object", + "properties": { + "appIdClientRegex": { + "type": "string" + }, + "awsRegion": { + "type": "string" + }, + "userPoolId": { + "type": "string" + } + } + }, + "aws-native:appsync:ApiEventConfig": { + "type": "object", + "properties": { + "authProviders": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthProvider" + } + }, + "connectionAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "defaultPublishAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "defaultSubscribeAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "logConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventLogConfig" + } + } + }, + "aws-native:appsync:ApiEventLogConfig": { + "type": "object", + "properties": { + "cloudWatchLogsRoleArn": { + "type": "string" + }, + "logLevel": { + "$ref": "#/types/aws-native:appsync:ApiEventLogLevel" + } + } + }, + "aws-native:appsync:ApiEventLogLevel": { + "type": "string" + }, + "aws-native:appsync:ApiLambdaAuthorizerConfig": { + "type": "object", + "properties": { + "authorizerResultTtlInSeconds": { + "type": "integer" + }, + "authorizerUri": { + "type": "string" + }, + "identityValidationExpression": { + "type": "string" + } + } + }, + "aws-native:appsync:ApiOpenIdConnectConfig": { + "type": "object", + "properties": { + "authTtl": { + "type": "number" + }, + "clientId": { + "type": "string" + }, + "iatTtl": { + "type": "number" + }, + "issuer": { + "type": "string" + } + }, + "irreversibleNames": { + "authTtl": "AuthTTL", + "iatTtl": "IatTTL" + } + }, + "aws-native:appsync:ApiTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key." + }, + "value": { + "type": "string", + "description": "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value." + } + } + }, "aws-native:appsync:DataSourceAuthorizationConfig": { "type": "object", "properties": { @@ -115192,12 +115617,28 @@ "result": { "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsResult", "description": "The specified result for when the failure conditions are met, such as rolling back the stage" + }, + "retryConfiguration": { + "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationProperties", + "description": "The configuration that specifies the retry configuration for a stage" } } }, "aws-native:codepipeline:PipelineFailureConditionsResult": { "type": "string" }, + "aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationProperties": { + "type": "object", + "properties": { + "retryMode": { + "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationPropertiesRetryMode", + "description": "The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful" + } + } + }, + "aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationPropertiesRetryMode": { + "type": "string" + }, "aws-native:codepipeline:PipelineGitBranchFilterCriteria": { "type": "object", "properties": { @@ -158649,6 +159090,48 @@ "aws-native:opensearchserverless:SecurityPolicyType": { "type": "string" }, + "aws-native:opensearchservice:ApplicationAppConfig": { + "type": "object", + "properties": { + "key": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfigType", + "description": "The configuration key" + }, + "value": { + "type": "string", + "description": "The configuration value." + } + } + }, + "aws-native:opensearchservice:ApplicationAppConfigType": { + "type": "string" + }, + "aws-native:opensearchservice:ApplicationDataSource": { + "type": "object", + "properties": { + "dataSourceArn": { + "$ref": "pulumi.json#/Any", + "description": "The ARN of the data source." + }, + "dataSourceDescription": { + "type": "string", + "description": "Description of the data source." + } + } + }, + "aws-native:opensearchservice:ApplicationTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key in the key-value pair" + }, + "value": { + "type": "string", + "description": "The value in the key-value pair" + } + } + }, "aws-native:opensearchservice:DomainAdvancedSecurityOptionsInput": { "type": "object", "properties": { @@ -159076,6 +159559,23 @@ } } }, + "aws-native:opensearchservice:IamIdentityCenterOptionsProperties": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether IAM Identity Center is enabled." + }, + "iamIdentityCenterInstanceArn": { + "$ref": "pulumi.json#/Any", + "description": "The ARN of the IAM Identity Center instance." + }, + "iamRoleForIdentityCenterApplicationArn": { + "type": "string", + "description": "The ARN of the IAM role for Identity Center application." + } + } + }, "aws-native:opsworkscm:ServerEngineAttribute": { "type": "object", "properties": { @@ -205669,6 +206169,72 @@ } } }, + "aws-native:secretsmanager:RotationScheduleHostedRotationLambda": { + "type": "object", + "properties": { + "excludeCharacters": { + "type": "string", + "description": "A string of the characters that you don't want in the password." + }, + "kmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value." + }, + "masterSecretArn": { + "type": "string", + "description": "The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property." + }, + "masterSecretKmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property." + }, + "rotationLambdaName": { + "type": "string", + "description": "The name of the Lambda rotation function." + }, + "rotationType": { + "type": "string", + "description": "The type of rotation template to use" + }, + "runtime": { + "type": "string", + "description": "The python runtime associated with the Lambda function" + }, + "superuserSecretArn": { + "type": "string", + "description": "The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property." + }, + "superuserSecretKmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property." + }, + "vpcSecurityGroupIds": { + "type": "string", + "description": "A comma-separated list of security group IDs applied to the target database." + }, + "vpcSubnetIds": { + "type": "string", + "description": "A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group." + } + } + }, + "aws-native:secretsmanager:RotationScheduleRotationRules": { + "type": "object", + "properties": { + "automaticallyAfterDays": { + "type": "integer", + "description": "The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated." + }, + "duration": { + "type": "string", + "description": "The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day." + }, + "scheduleExpression": { + "type": "string", + "description": "A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone." + } + } + }, "aws-native:secretsmanager:SecretGenerateSecretString": { "type": "object", "properties": { @@ -215597,6 +216163,12 @@ "name" ] }, + "aws-native:appsync:getApi": { + "cf": "AWS::AppSync::Api", + "ids": [ + "apiArn" + ] + }, "aws-native:appsync:getDataSource": { "cf": "AWS::AppSync::DataSource", "ids": [ @@ -219755,6 +220327,12 @@ "id" ] }, + "aws-native:opensearchservice:getApplication": { + "cf": "AWS::OpenSearchService::Application", + "ids": [ + "name" + ] + }, "aws-native:opensearchservice:getDomain": { "cf": "AWS::OpenSearchService::Domain", "ids": [ @@ -220746,6 +221324,12 @@ "id" ] }, + "aws-native:secretsmanager:getRotationSchedule": { + "cf": "AWS::SecretsManager::RotationSchedule", + "ids": [ + "id" + ] + }, "aws-native:secretsmanager:getSecret": { "cf": "AWS::SecretsManager::Secret", "ids": [ @@ -221403,6 +221987,14 @@ "assistantId" ] }, + "aws-native:wisdom:getAiPromptVersion": { + "cf": "AWS::Wisdom::AIPromptVersion", + "ids": [ + "assistantId", + "aiPromptId", + "versionNumber" + ] + }, "aws-native:wisdom:getAssistant": { "cf": "AWS::Wisdom::Assistant", "ids": [ diff --git a/provider/cmd/pulumi-resource-aws-native/schema.json b/provider/cmd/pulumi-resource-aws-native/schema.json index a7010ca952..829932945a 100644 --- a/provider/cmd/pulumi-resource-aws-native/schema.json +++ b/provider/cmd/pulumi-resource-aws-native/schema.json @@ -9802,6 +9802,219 @@ }, "type": "object" }, + "aws-native:appsync:ApiAuthMode": { + "description": "An auth mode.", + "properties": { + "authType": { + "$ref": "#/types/aws-native:appsync:ApiAuthenticationType" + } + }, + "type": "object" + }, + "aws-native:appsync:ApiAuthProvider": { + "description": "An auth provider for the AppSync API.", + "properties": { + "authType": { + "$ref": "#/types/aws-native:appsync:ApiAuthenticationType" + }, + "cognitoConfig": { + "$ref": "#/types/aws-native:appsync:ApiCognitoConfig" + }, + "lambdaAuthorizerConfig": { + "$ref": "#/types/aws-native:appsync:ApiLambdaAuthorizerConfig" + }, + "openIdConnectConfig": { + "$ref": "#/types/aws-native:appsync:ApiOpenIdConnectConfig" + } + }, + "type": "object", + "required": [ + "authType" + ] + }, + "aws-native:appsync:ApiAuthenticationType": { + "description": "Security configuration for your AppSync API.", + "type": "string", + "enum": [ + { + "name": "AmazonCognitoUserPools", + "value": "AMAZON_COGNITO_USER_POOLS" + }, + { + "name": "AwsIam", + "value": "AWS_IAM" + }, + { + "name": "ApiKey", + "value": "API_KEY" + }, + { + "name": "OpenidConnect", + "value": "OPENID_CONNECT" + }, + { + "name": "AwsLambda", + "value": "AWS_LAMBDA" + } + ] + }, + "aws-native:appsync:ApiCognitoConfig": { + "description": "Optional authorization configuration for using Amazon Cognito user pools with your API endpoint.", + "properties": { + "appIdClientRegex": { + "type": "string" + }, + "awsRegion": { + "type": "string" + }, + "userPoolId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "awsRegion", + "userPoolId" + ] + }, + "aws-native:appsync:ApiEventConfig": { + "description": "The configuration for an Event Api", + "properties": { + "authProviders": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthProvider" + } + }, + "connectionAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "defaultPublishAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "defaultSubscribeAuthModes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:appsync:ApiAuthMode" + } + }, + "logConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventLogConfig" + } + }, + "type": "object", + "required": [ + "authProviders", + "connectionAuthModes", + "defaultPublishAuthModes", + "defaultSubscribeAuthModes" + ] + }, + "aws-native:appsync:ApiEventLogConfig": { + "description": "The log config for the AppSync API.", + "properties": { + "cloudWatchLogsRoleArn": { + "type": "string" + }, + "logLevel": { + "$ref": "#/types/aws-native:appsync:ApiEventLogLevel" + } + }, + "type": "object", + "required": [ + "cloudWatchLogsRoleArn", + "logLevel" + ] + }, + "aws-native:appsync:ApiEventLogLevel": { + "description": "Logging level for the AppSync API.", + "type": "string", + "enum": [ + { + "name": "None", + "value": "NONE" + }, + { + "name": "Error", + "value": "ERROR" + }, + { + "name": "All", + "value": "ALL" + }, + { + "name": "Info", + "value": "INFO" + }, + { + "name": "Debug", + "value": "DEBUG" + } + ] + }, + "aws-native:appsync:ApiLambdaAuthorizerConfig": { + "description": "A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time.", + "properties": { + "authorizerResultTtlInSeconds": { + "type": "integer" + }, + "authorizerUri": { + "type": "string" + }, + "identityValidationExpression": { + "type": "string" + } + }, + "type": "object", + "required": [ + "authorizerUri" + ] + }, + "aws-native:appsync:ApiOpenIdConnectConfig": { + "description": "The OpenID Connect configuration.", + "properties": { + "authTtl": { + "type": "number" + }, + "clientId": { + "type": "string" + }, + "iatTtl": { + "type": "number" + }, + "issuer": { + "type": "string" + } + }, + "type": "object", + "required": [ + "issuer" + ] + }, + "aws-native:appsync:ApiTag": { + "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + "properties": { + "key": { + "type": "string", + "description": "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key." + }, + "value": { + "type": "string", + "description": "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:appsync:DataSourceAuthorizationConfig": { "properties": { "authorizationType": { @@ -25470,6 +25683,10 @@ "result": { "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsResult", "description": "The specified result for when the failure conditions are met, such as rolling back the stage" + }, + "retryConfiguration": { + "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationProperties", + "description": "The configuration that specifies the retry configuration for a stage" } }, "type": "object" @@ -25481,6 +25698,34 @@ { "name": "Rollback", "value": "ROLLBACK" + }, + { + "name": "Retry", + "value": "RETRY" + } + ] + }, + "aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationProperties": { + "description": "The configuration that specifies the retry configuration for a stage", + "properties": { + "retryMode": { + "$ref": "#/types/aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationPropertiesRetryMode", + "description": "The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful" + } + }, + "type": "object" + }, + "aws-native:codepipeline:PipelineFailureConditionsRetryConfigurationPropertiesRetryMode": { + "description": "The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful", + "type": "string", + "enum": [ + { + "name": "AllActions", + "value": "ALL_ACTIONS" + }, + { + "name": "FailedActions", + "value": "FAILED_ACTIONS" } ] }, @@ -88563,6 +88808,73 @@ } ] }, + "aws-native:opensearchservice:ApplicationAppConfig": { + "description": "A key-value pair of AppConfig", + "properties": { + "key": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfigType", + "description": "The configuration key" + }, + "value": { + "type": "string", + "description": "The configuration value." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, + "aws-native:opensearchservice:ApplicationAppConfigType": { + "description": "AppConfig type values.", + "type": "string", + "enum": [ + { + "name": "OpensearchDashboardsDashboardAdminUsers", + "value": "opensearchDashboards.dashboardAdmin.users" + }, + { + "name": "OpensearchDashboardsDashboardAdminGroups", + "value": "opensearchDashboards.dashboardAdmin.groups" + } + ] + }, + "aws-native:opensearchservice:ApplicationDataSource": { + "description": "Datasource arn and description", + "properties": { + "dataSourceArn": { + "$ref": "pulumi.json#/Any", + "description": "The ARN of the data source." + }, + "dataSourceDescription": { + "type": "string", + "description": "Description of the data source." + } + }, + "type": "object", + "required": [ + "dataSourceArn" + ] + }, + "aws-native:opensearchservice:ApplicationTag": { + "description": "A key-value pair metadata associated with resource", + "properties": { + "key": { + "type": "string", + "description": "The key in the key-value pair" + }, + "value": { + "type": "string", + "description": "The value in the key-value pair" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:opensearchservice:DomainAdvancedSecurityOptionsInput": { "properties": { "anonymousAuthDisableDate": { @@ -88985,6 +89297,24 @@ }, "type": "object" }, + "aws-native:opensearchservice:IamIdentityCenterOptionsProperties": { + "description": "Options for configuring IAM Identity Center", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether IAM Identity Center is enabled." + }, + "iamIdentityCenterInstanceArn": { + "$ref": "pulumi.json#/Any", + "description": "The ARN of the IAM Identity Center instance." + }, + "iamRoleForIdentityCenterApplicationArn": { + "type": "string", + "description": "The ARN of the IAM role for Identity Center application." + } + }, + "type": "object" + }, "aws-native:opsworkscm:ServerEngineAttribute": { "properties": { "name": { @@ -152031,6 +152361,75 @@ "roleArn" ] }, + "aws-native:secretsmanager:RotationScheduleHostedRotationLambda": { + "properties": { + "excludeCharacters": { + "type": "string", + "description": "A string of the characters that you don't want in the password." + }, + "kmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value." + }, + "masterSecretArn": { + "type": "string", + "description": "The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property." + }, + "masterSecretKmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property." + }, + "rotationLambdaName": { + "type": "string", + "description": "The name of the Lambda rotation function." + }, + "rotationType": { + "type": "string", + "description": "The type of rotation template to use" + }, + "runtime": { + "type": "string", + "description": "The python runtime associated with the Lambda function" + }, + "superuserSecretArn": { + "type": "string", + "description": "The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property." + }, + "superuserSecretKmsKeyArn": { + "type": "string", + "description": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property." + }, + "vpcSecurityGroupIds": { + "type": "string", + "description": "A comma-separated list of security group IDs applied to the target database." + }, + "vpcSubnetIds": { + "type": "string", + "description": "A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group." + } + }, + "type": "object", + "required": [ + "rotationType" + ] + }, + "aws-native:secretsmanager:RotationScheduleRotationRules": { + "properties": { + "automaticallyAfterDays": { + "type": "integer", + "description": "The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated." + }, + "duration": { + "type": "string", + "description": "The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day." + }, + "scheduleExpression": { + "type": "string", + "description": "A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone." + } + }, + "type": "object" + }, "aws-native:secretsmanager:SecretGenerateSecretString": { "description": "Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.\n *Required permissions:* ``secretsmanager:GetRandomPassword``. For more information, see [IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-actions-as-permissions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html).", "properties": { @@ -173191,6 +173590,64 @@ "instanceType" ] }, + "aws-native:appsync:Api": { + "description": "Resource schema for AppSync Api", + "properties": { + "apiArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AppSync Api" + }, + "apiId": { + "type": "string", + "description": "The unique identifier for the AppSync Api generated by the service" + }, + "dns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "eventConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventConfig" + }, + "name": { + "type": "string" + }, + "ownerContact": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "type": "object", + "required": [ + "apiArn", + "apiId", + "dns", + "name" + ], + "inputProperties": { + "eventConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventConfig" + }, + "name": { + "type": "string" + }, + "ownerContact": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + }, "aws-native:appsync:DataSource": { "description": "Resource Type definition for AWS::AppSync::DataSource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var graphQlApiId = config.Require(\"graphQlApiId\");\n var dataSourceName = config.Require(\"dataSourceName\");\n var dataSourceDescription = config.Require(\"dataSourceDescription\");\n var serviceRoleArn = config.Require(\"serviceRoleArn\");\n var lambdaFunctionArn = config.Require(\"lambdaFunctionArn\");\n var dataSource = new AwsNative.AppSync.DataSource(\"dataSource\", new()\n {\n ApiId = graphQlApiId,\n Name = dataSourceName,\n Description = dataSourceDescription,\n Type = \"AWS_LAMBDA\",\n ServiceRoleArn = serviceRoleArn,\n LambdaConfig = new AwsNative.AppSync.Inputs.DataSourceLambdaConfigArgs\n {\n LambdaFunctionArn = lambdaFunctionArn,\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/appsync\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgraphQlApiId := cfg.Require(\"graphQlApiId\")\n\t\tdataSourceName := cfg.Require(\"dataSourceName\")\n\t\tdataSourceDescription := cfg.Require(\"dataSourceDescription\")\n\t\tserviceRoleArn := cfg.Require(\"serviceRoleArn\")\n\t\tlambdaFunctionArn := cfg.Require(\"lambdaFunctionArn\")\n\t\t_, err := appsync.NewDataSource(ctx, \"dataSource\", \u0026appsync.DataSourceArgs{\n\t\t\tApiId: pulumi.String(graphQlApiId),\n\t\t\tName: pulumi.String(dataSourceName),\n\t\t\tDescription: pulumi.String(dataSourceDescription),\n\t\t\tType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tServiceRoleArn: pulumi.String(serviceRoleArn),\n\t\t\tLambdaConfig: \u0026appsync.DataSourceLambdaConfigArgs{\n\t\t\t\tLambdaFunctionArn: pulumi.String(lambdaFunctionArn),\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```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst config = new pulumi.Config();\nconst graphQlApiId = config.require(\"graphQlApiId\");\nconst dataSourceName = config.require(\"dataSourceName\");\nconst dataSourceDescription = config.require(\"dataSourceDescription\");\nconst serviceRoleArn = config.require(\"serviceRoleArn\");\nconst lambdaFunctionArn = config.require(\"lambdaFunctionArn\");\nconst dataSource = new aws_native.appsync.DataSource(\"dataSource\", {\n apiId: graphQlApiId,\n name: dataSourceName,\n description: dataSourceDescription,\n type: \"AWS_LAMBDA\",\n serviceRoleArn: serviceRoleArn,\n lambdaConfig: {\n lambdaFunctionArn: lambdaFunctionArn,\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nconfig = pulumi.Config()\ngraph_ql_api_id = config.require(\"graphQlApiId\")\ndata_source_name = config.require(\"dataSourceName\")\ndata_source_description = config.require(\"dataSourceDescription\")\nservice_role_arn = config.require(\"serviceRoleArn\")\nlambda_function_arn = config.require(\"lambdaFunctionArn\")\ndata_source = aws_native.appsync.DataSource(\"dataSource\",\n api_id=graph_ql_api_id,\n name=data_source_name,\n description=data_source_description,\n type=\"AWS_LAMBDA\",\n service_role_arn=service_role_arn,\n lambda_config={\n \"lambda_function_arn\": lambda_function_arn,\n })\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var graphQlApiId = config.Require(\"graphQlApiId\");\n var dataSourceName = config.Require(\"dataSourceName\");\n var dataSourceDescription = config.Require(\"dataSourceDescription\");\n var serviceRoleArn = config.Require(\"serviceRoleArn\");\n var lambdaFunctionArn = config.Require(\"lambdaFunctionArn\");\n var dataSource = new AwsNative.AppSync.DataSource(\"dataSource\", new()\n {\n ApiId = graphQlApiId,\n Name = dataSourceName,\n Description = dataSourceDescription,\n Type = \"AWS_LAMBDA\",\n ServiceRoleArn = serviceRoleArn,\n LambdaConfig = new AwsNative.AppSync.Inputs.DataSourceLambdaConfigArgs\n {\n LambdaFunctionArn = lambdaFunctionArn,\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/appsync\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tgraphQlApiId := cfg.Require(\"graphQlApiId\")\n\t\tdataSourceName := cfg.Require(\"dataSourceName\")\n\t\tdataSourceDescription := cfg.Require(\"dataSourceDescription\")\n\t\tserviceRoleArn := cfg.Require(\"serviceRoleArn\")\n\t\tlambdaFunctionArn := cfg.Require(\"lambdaFunctionArn\")\n\t\t_, err := appsync.NewDataSource(ctx, \"dataSource\", \u0026appsync.DataSourceArgs{\n\t\t\tApiId: pulumi.String(graphQlApiId),\n\t\t\tName: pulumi.String(dataSourceName),\n\t\t\tDescription: pulumi.String(dataSourceDescription),\n\t\t\tType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tServiceRoleArn: pulumi.String(serviceRoleArn),\n\t\t\tLambdaConfig: \u0026appsync.DataSourceLambdaConfigArgs{\n\t\t\t\tLambdaFunctionArn: pulumi.String(lambdaFunctionArn),\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```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst config = new pulumi.Config();\nconst graphQlApiId = config.require(\"graphQlApiId\");\nconst dataSourceName = config.require(\"dataSourceName\");\nconst dataSourceDescription = config.require(\"dataSourceDescription\");\nconst serviceRoleArn = config.require(\"serviceRoleArn\");\nconst lambdaFunctionArn = config.require(\"lambdaFunctionArn\");\nconst dataSource = new aws_native.appsync.DataSource(\"dataSource\", {\n apiId: graphQlApiId,\n name: dataSourceName,\n description: dataSourceDescription,\n type: \"AWS_LAMBDA\",\n serviceRoleArn: serviceRoleArn,\n lambdaConfig: {\n lambdaFunctionArn: lambdaFunctionArn,\n },\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nconfig = pulumi.Config()\ngraph_ql_api_id = config.require(\"graphQlApiId\")\ndata_source_name = config.require(\"dataSourceName\")\ndata_source_description = config.require(\"dataSourceDescription\")\nservice_role_arn = config.require(\"serviceRoleArn\")\nlambda_function_arn = config.require(\"lambdaFunctionArn\")\ndata_source = aws_native.appsync.DataSource(\"dataSource\",\n api_id=graph_ql_api_id,\n name=data_source_name,\n description=data_source_description,\n type=\"AWS_LAMBDA\",\n service_role_arn=service_role_arn,\n lambda_config={\n \"lambda_function_arn\": lambda_function_arn,\n })\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -195239,6 +195696,7 @@ "properties": { "address": { "type": "string", + "description": "Describes an Elastic IP address, or a carrier IP address.", "replaceOnChanges": true }, "allocationId": { @@ -195291,7 +195749,8 @@ ], "inputProperties": { "address": { - "type": "string" + "type": "string", + "description": "Describes an Elastic IP address, or a carrier IP address." }, "domain": { "type": "string", @@ -226556,7 +227015,6 @@ "required": [ "applicationArn", "applicationId", - "definition", "engineType", "name" ], @@ -226601,7 +227059,6 @@ } }, "requiredInputs": [ - "definition", "engineType" ] }, @@ -235387,6 +235844,94 @@ "vpcId" ] }, + "aws-native:opensearchservice:Application": { + "description": "Amazon OpenSearchService application resource", + "properties": { + "appConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfig" + }, + "description": "List of application configurations." + }, + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) format." + }, + "awsId": { + "type": "string", + "description": "The identifier of the application." + }, + "dataSources": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationDataSource" + }, + "description": "List of data sources." + }, + "endpoint": { + "type": "string", + "description": "The endpoint for the application." + }, + "iamIdentityCenterOptions": { + "$ref": "#/types/aws-native:opensearchservice:IamIdentityCenterOptionsProperties", + "description": "Options for configuring IAM Identity Center" + }, + "name": { + "type": "string", + "description": "The name of the application.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this application." + } + }, + "type": "object", + "required": [ + "arn", + "awsId", + "name" + ], + "inputProperties": { + "appConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfig" + }, + "description": "List of application configurations." + }, + "dataSources": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationDataSource" + }, + "description": "List of data sources." + }, + "endpoint": { + "type": "string", + "description": "The endpoint for the application." + }, + "iamIdentityCenterOptions": { + "$ref": "#/types/aws-native:opensearchservice:IamIdentityCenterOptionsProperties", + "description": "Options for configuring IAM Identity Center" + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this application." + } + } + }, "aws-native:opensearchservice:Domain": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "properties": { @@ -251013,7 +251558,7 @@ }, "studioLifecycleConfigContent": { "type": "string", - "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script.", + "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded.", "replaceOnChanges": true }, "studioLifecycleConfigName": { @@ -251026,7 +251571,7 @@ "items": { "$ref": "#/types/aws-native:index:CreateOnlyTag" }, - "description": "Tags to be associated with the Lifecycle Configuration.", + "description": "Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API.", "replaceOnChanges": true } }, @@ -251044,7 +251589,7 @@ }, "studioLifecycleConfigContent": { "type": "string", - "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script." + "description": "The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded." }, "studioLifecycleConfigName": { "type": "string", @@ -251055,7 +251600,7 @@ "items": { "$ref": "#/types/aws-native:index:CreateOnlyTag" }, - "description": "Tags to be associated with the Lifecycle Configuration." + "description": "Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API." } }, "requiredInputs": [ @@ -251363,6 +251908,66 @@ "secretId" ] }, + "aws-native:secretsmanager:RotationSchedule": { + "description": "Resource Type definition for AWS::SecretsManager::RotationSchedule", + "properties": { + "awsId": { + "type": "string", + "description": "The ARN of the secret." + }, + "hostedRotationLambda": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleHostedRotationLambda", + "description": "Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead." + }, + "rotateImmediatelyOnUpdate": { + "type": "boolean", + "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + }, + "secretId": { + "type": "string", + "description": "The ARN or name of the secret to rotate.", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "awsId", + "secretId" + ], + "inputProperties": { + "hostedRotationLambda": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleHostedRotationLambda", + "description": "Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead." + }, + "rotateImmediatelyOnUpdate": { + "type": "boolean", + "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + }, + "secretId": { + "type": "string", + "description": "The ARN or name of the secret to rotate." + } + }, + "requiredInputs": [ + "secretId" + ] + }, "aws-native:secretsmanager:Secret": { "description": "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myRedshiftSecret = new AwsNative.SecretsManager.Secret(\"myRedshiftSecret\", new()\n {\n Description = \"This is a Secrets Manager secret for a Redshift cluster\",\n GenerateSecretString = new AwsNative.SecretsManager.Inputs.SecretGenerateSecretStringArgs\n {\n SecretStringTemplate = \"{\\\"username\\\": \\\"admin\\\"}\",\n GenerateStringKey = \"password\",\n PasswordLength = 16,\n ExcludeCharacters = \"\\\"'@/\\\\\",\n },\n });\n\n var myRedshiftCluster = new AwsNative.Redshift.Cluster(\"myRedshiftCluster\", new()\n {\n DbName = \"myjsondb\",\n MasterUsername = myRedshiftSecret.Id.Apply(id =\u003e $\"{{{{resolve:secretsmanager:{id}::username}}}}\"),\n MasterUserPassword = myRedshiftSecret.Id.Apply(id =\u003e $\"{{{{resolve:secretsmanager:{id}::password}}}}\"),\n NodeType = \"ds2.xlarge\",\n ClusterType = \"single-node\",\n });\n\n var secretRedshiftAttachment = new AwsNative.SecretsManager.SecretTargetAttachment(\"secretRedshiftAttachment\", new()\n {\n SecretId = myRedshiftSecret.Id,\n TargetId = myRedshiftCluster.Id,\n TargetType = \"AWS::Redshift::Cluster\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/secretsmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyRedshiftSecret, err := secretsmanager.NewSecret(ctx, \"myRedshiftSecret\", \u0026secretsmanager.SecretArgs{\n\t\t\tDescription: pulumi.String(\"This is a Secrets Manager secret for a Redshift cluster\"),\n\t\t\tGenerateSecretString: \u0026secretsmanager.SecretGenerateSecretStringArgs{\n\t\t\t\tSecretStringTemplate: pulumi.String(\"{\\\"username\\\": \\\"admin\\\"}\"),\n\t\t\t\tGenerateStringKey: pulumi.String(\"password\"),\n\t\t\t\tPasswordLength: pulumi.Int(16),\n\t\t\t\tExcludeCharacters: pulumi.String(\"\\\"'@/\\\\\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyRedshiftCluster, err := redshift.NewCluster(ctx, \"myRedshiftCluster\", \u0026redshift.ClusterArgs{\n\t\t\tDbName: pulumi.String(\"myjsondb\"),\n\t\t\tMasterUsername: myRedshiftSecret.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"{{resolve:secretsmanager:%v::username}}\", id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tMasterUserPassword: myRedshiftSecret.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"{{resolve:secretsmanager:%v::password}}\", id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tNodeType: pulumi.String(\"ds2.xlarge\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretsmanager.NewSecretTargetAttachment(ctx, \"secretRedshiftAttachment\", \u0026secretsmanager.SecretTargetAttachmentArgs{\n\t\t\tSecretId: myRedshiftSecret.ID(),\n\t\t\tTargetId: myRedshiftCluster.ID(),\n\t\t\tTargetType: pulumi.String(\"AWS::Redshift::Cluster\"),\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```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myRedshiftSecret = new aws_native.secretsmanager.Secret(\"myRedshiftSecret\", {\n description: \"This is a Secrets Manager secret for a Redshift cluster\",\n generateSecretString: {\n secretStringTemplate: \"{\\\"username\\\": \\\"admin\\\"}\",\n generateStringKey: \"password\",\n passwordLength: 16,\n excludeCharacters: \"\\\"'@/\\\\\",\n },\n});\nconst myRedshiftCluster = new aws_native.redshift.Cluster(\"myRedshiftCluster\", {\n dbName: \"myjsondb\",\n masterUsername: pulumi.interpolate`{{resolve:secretsmanager:${myRedshiftSecret.id}::username}}`,\n masterUserPassword: pulumi.interpolate`{{resolve:secretsmanager:${myRedshiftSecret.id}::password}}`,\n nodeType: \"ds2.xlarge\",\n clusterType: \"single-node\",\n});\nconst secretRedshiftAttachment = new aws_native.secretsmanager.SecretTargetAttachment(\"secretRedshiftAttachment\", {\n secretId: myRedshiftSecret.id,\n targetId: myRedshiftCluster.id,\n targetType: \"AWS::Redshift::Cluster\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_redshift_secret = aws_native.secretsmanager.Secret(\"myRedshiftSecret\",\n description=\"This is a Secrets Manager secret for a Redshift cluster\",\n generate_secret_string={\n \"secret_string_template\": \"{\\\"username\\\": \\\"admin\\\"}\",\n \"generate_string_key\": \"password\",\n \"password_length\": 16,\n \"exclude_characters\": \"\\\"'@/\\\\\",\n })\nmy_redshift_cluster = aws_native.redshift.Cluster(\"myRedshiftCluster\",\n db_name=\"myjsondb\",\n master_username=my_redshift_secret.id.apply(lambda id: f\"{{{{resolve:secretsmanager:{id}::username}}}}\"),\n master_user_password=my_redshift_secret.id.apply(lambda id: f\"{{{{resolve:secretsmanager:{id}::password}}}}\"),\n node_type=\"ds2.xlarge\",\n cluster_type=\"single-node\")\nsecret_redshift_attachment = aws_native.secretsmanager.SecretTargetAttachment(\"secretRedshiftAttachment\",\n secret_id=my_redshift_secret.id,\n target_id=my_redshift_cluster.id,\n target_type=\"AWS::Redshift::Cluster\")\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myRedshiftSecret = new AwsNative.SecretsManager.Secret(\"myRedshiftSecret\", new()\n {\n Description = \"This is a Secrets Manager secret for a Redshift cluster\",\n GenerateSecretString = new AwsNative.SecretsManager.Inputs.SecretGenerateSecretStringArgs\n {\n SecretStringTemplate = \"{\\\"username\\\": \\\"admin\\\"}\",\n GenerateStringKey = \"password\",\n PasswordLength = 16,\n ExcludeCharacters = \"\\\"'@/\\\\\",\n },\n });\n\n var myRedshiftCluster = new AwsNative.Redshift.Cluster(\"myRedshiftCluster\", new()\n {\n DbName = \"myjsondb\",\n MasterUsername = myRedshiftSecret.Id.Apply(id =\u003e $\"{{{{resolve:secretsmanager:{id}::username}}}}\"),\n MasterUserPassword = myRedshiftSecret.Id.Apply(id =\u003e $\"{{{{resolve:secretsmanager:{id}::password}}}}\"),\n NodeType = \"ds2.xlarge\",\n ClusterType = \"single-node\",\n });\n\n var secretRedshiftAttachment = new AwsNative.SecretsManager.SecretTargetAttachment(\"secretRedshiftAttachment\", new()\n {\n SecretId = myRedshiftSecret.Id,\n TargetId = myRedshiftCluster.Id,\n TargetType = \"AWS::Redshift::Cluster\",\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/redshift\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/secretsmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyRedshiftSecret, err := secretsmanager.NewSecret(ctx, \"myRedshiftSecret\", \u0026secretsmanager.SecretArgs{\n\t\t\tDescription: pulumi.String(\"This is a Secrets Manager secret for a Redshift cluster\"),\n\t\t\tGenerateSecretString: \u0026secretsmanager.SecretGenerateSecretStringArgs{\n\t\t\t\tSecretStringTemplate: pulumi.String(\"{\\\"username\\\": \\\"admin\\\"}\"),\n\t\t\t\tGenerateStringKey: pulumi.String(\"password\"),\n\t\t\t\tPasswordLength: pulumi.Int(16),\n\t\t\t\tExcludeCharacters: pulumi.String(\"\\\"'@/\\\\\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyRedshiftCluster, err := redshift.NewCluster(ctx, \"myRedshiftCluster\", \u0026redshift.ClusterArgs{\n\t\t\tDbName: pulumi.String(\"myjsondb\"),\n\t\t\tMasterUsername: myRedshiftSecret.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"{{resolve:secretsmanager:%v::username}}\", id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tMasterUserPassword: myRedshiftSecret.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"{{resolve:secretsmanager:%v::password}}\", id), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tNodeType: pulumi.String(\"ds2.xlarge\"),\n\t\t\tClusterType: pulumi.String(\"single-node\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secretsmanager.NewSecretTargetAttachment(ctx, \"secretRedshiftAttachment\", \u0026secretsmanager.SecretTargetAttachmentArgs{\n\t\t\tSecretId: myRedshiftSecret.ID(),\n\t\t\tTargetId: myRedshiftCluster.ID(),\n\t\t\tTargetType: pulumi.String(\"AWS::Redshift::Cluster\"),\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```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myRedshiftSecret = new aws_native.secretsmanager.Secret(\"myRedshiftSecret\", {\n description: \"This is a Secrets Manager secret for a Redshift cluster\",\n generateSecretString: {\n secretStringTemplate: \"{\\\"username\\\": \\\"admin\\\"}\",\n generateStringKey: \"password\",\n passwordLength: 16,\n excludeCharacters: \"\\\"'@/\\\\\",\n },\n});\nconst myRedshiftCluster = new aws_native.redshift.Cluster(\"myRedshiftCluster\", {\n dbName: \"myjsondb\",\n masterUsername: pulumi.interpolate`{{resolve:secretsmanager:${myRedshiftSecret.id}::username}}`,\n masterUserPassword: pulumi.interpolate`{{resolve:secretsmanager:${myRedshiftSecret.id}::password}}`,\n nodeType: \"ds2.xlarge\",\n clusterType: \"single-node\",\n});\nconst secretRedshiftAttachment = new aws_native.secretsmanager.SecretTargetAttachment(\"secretRedshiftAttachment\", {\n secretId: myRedshiftSecret.id,\n targetId: myRedshiftCluster.id,\n targetType: \"AWS::Redshift::Cluster\",\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_redshift_secret = aws_native.secretsmanager.Secret(\"myRedshiftSecret\",\n description=\"This is a Secrets Manager secret for a Redshift cluster\",\n generate_secret_string={\n \"secret_string_template\": \"{\\\"username\\\": \\\"admin\\\"}\",\n \"generate_string_key\": \"password\",\n \"password_length\": 16,\n \"exclude_characters\": \"\\\"'@/\\\\\",\n })\nmy_redshift_cluster = aws_native.redshift.Cluster(\"myRedshiftCluster\",\n db_name=\"myjsondb\",\n master_username=my_redshift_secret.id.apply(lambda id: f\"{{{{resolve:secretsmanager:{id}::username}}}}\"),\n master_user_password=my_redshift_secret.id.apply(lambda id: f\"{{{{resolve:secretsmanager:{id}::password}}}}\"),\n node_type=\"ds2.xlarge\",\n cluster_type=\"single-node\")\nsecret_redshift_attachment = aws_native.secretsmanager.SecretTargetAttachment(\"secretRedshiftAttachment\",\n secret_id=my_redshift_secret.id,\n target_id=my_redshift_cluster.id,\n target_type=\"AWS::Redshift::Cluster\")\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -251455,7 +252060,8 @@ }, "secretId": { "type": "string", - "description": "The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition." + "description": "The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition.", + "replaceOnChanges": true }, "targetId": { "type": "string", @@ -259987,6 +260593,59 @@ "type" ] }, + "aws-native:wisdom:AiPromptVersion": { + "description": "Definition of AWS::Wisdom::AIPromptVersion Resource Type", + "properties": { + "aiPromptArn": { + "type": "string" + }, + "aiPromptId": { + "type": "string", + "replaceOnChanges": true + }, + "aiPromptVersionId": { + "type": "string" + }, + "assistantArn": { + "type": "string" + }, + "assistantId": { + "type": "string", + "replaceOnChanges": true + }, + "modifiedTimeSeconds": { + "type": "number", + "replaceOnChanges": true + }, + "versionNumber": { + "type": "number" + } + }, + "type": "object", + "required": [ + "aiPromptArn", + "aiPromptId", + "aiPromptVersionId", + "assistantArn", + "assistantId", + "versionNumber" + ], + "inputProperties": { + "aiPromptId": { + "type": "string" + }, + "assistantId": { + "type": "string" + }, + "modifiedTimeSeconds": { + "type": "number" + } + }, + "requiredInputs": [ + "aiPromptId", + "assistantId" + ] + }, "aws-native:wisdom:Assistant": { "description": "Definition of AWS::Wisdom::Assistant Resource Type", "properties": { @@ -264793,6 +265452,53 @@ } } }, + "aws-native:appsync:getApi": { + "description": "Resource schema for AppSync Api", + "inputs": { + "properties": { + "apiArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AppSync Api" + } + }, + "required": [ + "apiArn" + ] + }, + "outputs": { + "properties": { + "apiArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the AppSync Api" + }, + "apiId": { + "type": "string", + "description": "The unique identifier for the AppSync Api generated by the service" + }, + "dns": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "eventConfig": { + "$ref": "#/types/aws-native:appsync:ApiEventConfig" + }, + "name": { + "type": "string" + }, + "ownerContact": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + } + }, "aws-native:appsync:getDataSource": { "description": "Resource Type definition for AWS::AppSync::DataSource", "inputs": { @@ -297496,6 +298202,61 @@ } } }, + "aws-native:opensearchservice:getApplication": { + "description": "Amazon OpenSearchService application resource", + "inputs": { + "properties": { + "name": { + "type": "string", + "description": "The name of the application." + } + }, + "required": [ + "name" + ] + }, + "outputs": { + "properties": { + "appConfigs": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationAppConfig" + }, + "description": "List of application configurations." + }, + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) format." + }, + "dataSources": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:opensearchservice:ApplicationDataSource" + }, + "description": "List of data sources." + }, + "endpoint": { + "type": "string", + "description": "The endpoint for the application." + }, + "iamIdentityCenterOptions": { + "$ref": "#/types/aws-native:opensearchservice:IamIdentityCenterOptionsProperties", + "description": "Options for configuring IAM Identity Center" + }, + "id": { + "type": "string", + "description": "The identifier of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An arbitrary set of tags (key-value pairs) for this application." + } + } + } + }, "aws-native:opensearchservice:getDomain": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "inputs": { @@ -305184,6 +305945,13 @@ "type": "string", "description": "The name of the space that appears in the Studio UI." }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A list of tags to apply to the space." + }, "url": { "type": "string", "description": "Returns the URL of the space. If the space is created with AWS IAM Identity Center (Successor to AWS Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through AWS IAM Identity Center.\n\nThe following application types are supported:\n\n- Studio Classic: `\u0026redirect=JupyterServer`\n- JupyterLab: `\u0026redirect=JupyterLab`\n- Code Editor, based on Code-OSS, Visual Studio Code - Open Source: `\u0026redirect=CodeEditor`" @@ -305378,6 +306146,36 @@ } } }, + "aws-native:secretsmanager:getRotationSchedule": { + "description": "Resource Type definition for AWS::SecretsManager::RotationSchedule", + "inputs": { + "properties": { + "id": { + "type": "string", + "description": "The ARN of the secret." + } + }, + "required": [ + "id" + ] + }, + "outputs": { + "properties": { + "id": { + "type": "string", + "description": "The ARN of the secret." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + } + } + } + }, "aws-native:secretsmanager:getSecret": { "description": "Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager.\n For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html).\n For RS admin user credentials, see [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-cluster.html).\n To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html).\n For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). For information about creating a secret using the CLI or SDK, see [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html).\n For information about retrieving a secret in code, see [Retrieve secrets from Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html).", "inputs": { @@ -305439,10 +306237,6 @@ "id": { "type": "string" }, - "secretId": { - "type": "string", - "description": "The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition." - }, "targetId": { "type": "string", "description": "The ID of the database or cluster." @@ -310229,6 +311023,43 @@ } } }, + "aws-native:wisdom:getAiPromptVersion": { + "description": "Definition of AWS::Wisdom::AIPromptVersion Resource Type", + "inputs": { + "properties": { + "aiPromptId": { + "type": "string" + }, + "assistantId": { + "type": "string" + }, + "versionNumber": { + "type": "number" + } + }, + "required": [ + "assistantId", + "aiPromptId", + "versionNumber" + ] + }, + "outputs": { + "properties": { + "aiPromptArn": { + "type": "string" + }, + "aiPromptVersionId": { + "type": "string" + }, + "assistantArn": { + "type": "string" + }, + "versionNumber": { + "type": "number" + } + } + } + }, "aws-native:wisdom:getAssistant": { "description": "Definition of AWS::Wisdom::Assistant Resource Type", "inputs": { diff --git a/reports/missedAutonaming.json b/reports/missedAutonaming.json index 4949f13585..b6509563bb 100644 --- a/reports/missedAutonaming.json +++ b/reports/missedAutonaming.json @@ -3637,7 +3637,8 @@ "cfTypeName": "AWS::EC2::EIP", "properties": { "address": { - "type": "string" + "type": "string", + "description": "Describes an Elastic IP address, or a carrier IP address." }, "domain": { "type": "string", @@ -11457,6 +11458,31 @@ } } }, + "aws-native:secretsmanager:RotationSchedule": { + "cfTypeName": "AWS::SecretsManager::RotationSchedule", + "properties": { + "hostedRotationLambda": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleHostedRotationLambda", + "description": "Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead." + }, + "rotateImmediatelyOnUpdate": { + "type": "boolean", + "description": "Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window." + }, + "rotationLambdaArn": { + "type": "string", + "description": "The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function." + }, + "rotationRules": { + "$ref": "#/types/aws-native:secretsmanager:RotationScheduleRotationRules", + "description": "A structure that defines the rotation configuration for this secret." + }, + "secretId": { + "type": "string", + "description": "The ARN or name of the secret to rotate." + } + } + }, "aws-native:secretsmanager:SecretTargetAttachment": { "cfTypeName": "AWS::SecretsManager::SecretTargetAttachment", "properties": { @@ -12797,6 +12823,20 @@ } } }, + "aws-native:wisdom:AiPromptVersion": { + "cfTypeName": "AWS::Wisdom::AIPromptVersion", + "properties": { + "aiPromptId": { + "type": "string" + }, + "assistantId": { + "type": "string" + }, + "modifiedTimeSeconds": { + "type": "number" + } + } + }, "aws-native:wisdom:AssistantAssociation": { "cfTypeName": "AWS::Wisdom::AssistantAssociation", "properties": { diff --git a/sdk/dotnet/AppSync/Api.cs b/sdk/dotnet/AppSync/Api.cs new file mode 100644 index 0000000000..d9970ac078 --- /dev/null +++ b/sdk/dotnet/AppSync/Api.cs @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync +{ + /// + /// Resource schema for AppSync Api + /// + [AwsNativeResourceType("aws-native:appsync:Api")] + public partial class Api : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) of the AppSync Api + /// + [Output("apiArn")] + public Output ApiArn { get; private set; } = null!; + + /// + /// The unique identifier for the AppSync Api generated by the service + /// + [Output("apiId")] + public Output ApiId { get; private set; } = null!; + + [Output("dns")] + public Output> Dns { get; private set; } = null!; + + [Output("eventConfig")] + public Output EventConfig { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("ownerContact")] + public Output OwnerContact { get; private set; } = null!; + + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Api 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 Api(string name, ApiArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:appsync:Api", name, args ?? new ApiArgs(), MakeResourceOptions(options, "")) + { + } + + private Api(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:appsync:Api", name, null, 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 Api 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. + /// A bag of options that control this resource's behavior + public static Api Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Api(name, id, options); + } + } + + public sealed class ApiArgs : global::Pulumi.ResourceArgs + { + [Input("eventConfig")] + public Input? EventConfig { get; set; } + + [Input("name")] + public Input? Name { get; set; } + + [Input("ownerContact")] + public Input? OwnerContact { get; set; } + + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public ApiArgs() + { + } + public static new ApiArgs Empty => new ApiArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Enums.cs b/sdk/dotnet/AppSync/Enums.cs index 711775253d..7a1467ced4 100644 --- a/sdk/dotnet/AppSync/Enums.cs +++ b/sdk/dotnet/AppSync/Enums.cs @@ -7,6 +7,74 @@ namespace Pulumi.AwsNative.AppSync { + /// + /// Security configuration for your AppSync API. + /// + [EnumType] + public readonly struct ApiAuthenticationType : IEquatable + { + private readonly string _value; + + private ApiAuthenticationType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static ApiAuthenticationType AmazonCognitoUserPools { get; } = new ApiAuthenticationType("AMAZON_COGNITO_USER_POOLS"); + public static ApiAuthenticationType AwsIam { get; } = new ApiAuthenticationType("AWS_IAM"); + public static ApiAuthenticationType ApiKey { get; } = new ApiAuthenticationType("API_KEY"); + public static ApiAuthenticationType OpenidConnect { get; } = new ApiAuthenticationType("OPENID_CONNECT"); + public static ApiAuthenticationType AwsLambda { get; } = new ApiAuthenticationType("AWS_LAMBDA"); + + public static bool operator ==(ApiAuthenticationType left, ApiAuthenticationType right) => left.Equals(right); + public static bool operator !=(ApiAuthenticationType left, ApiAuthenticationType right) => !left.Equals(right); + + public static explicit operator string(ApiAuthenticationType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is ApiAuthenticationType other && Equals(other); + public bool Equals(ApiAuthenticationType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Logging level for the AppSync API. + /// + [EnumType] + public readonly struct ApiEventLogLevel : IEquatable + { + private readonly string _value; + + private ApiEventLogLevel(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static ApiEventLogLevel None { get; } = new ApiEventLogLevel("NONE"); + public static ApiEventLogLevel Error { get; } = new ApiEventLogLevel("ERROR"); + public static ApiEventLogLevel All { get; } = new ApiEventLogLevel("ALL"); + public static ApiEventLogLevel Info { get; } = new ApiEventLogLevel("INFO"); + public static ApiEventLogLevel Debug { get; } = new ApiEventLogLevel("DEBUG"); + + public static bool operator ==(ApiEventLogLevel left, ApiEventLogLevel right) => left.Equals(right); + public static bool operator !=(ApiEventLogLevel left, ApiEventLogLevel right) => !left.Equals(right); + + public static explicit operator string(ApiEventLogLevel value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is ApiEventLogLevel other && Equals(other); + public bool Equals(ApiEventLogLevel other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + /// /// Enables or disables enhanced data source metrics for specified data sources. Note that `MetricsConfig` won't be used unless the `dataSourceLevelMetricsBehavior` value is set to `PER_DATA_SOURCE_METRICS` . If the `dataSourceLevelMetricsBehavior` is set to `FULL_REQUEST_DATA_SOURCE_METRICS` instead, `MetricsConfig` will be ignored. However, you can still set its value. /// diff --git a/sdk/dotnet/AppSync/GetApi.cs b/sdk/dotnet/AppSync/GetApi.cs new file mode 100644 index 0000000000..52eb27da09 --- /dev/null +++ b/sdk/dotnet/AppSync/GetApi.cs @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync +{ + public static class GetApi + { + /// + /// Resource schema for AppSync Api + /// + public static Task InvokeAsync(GetApiArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:appsync:getApi", args ?? new GetApiArgs(), options.WithDefaults()); + + /// + /// Resource schema for AppSync Api + /// + public static Output Invoke(GetApiInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:appsync:getApi", args ?? new GetApiInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetApiArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the AppSync Api + /// + [Input("apiArn", required: true)] + public string ApiArn { get; set; } = null!; + + public GetApiArgs() + { + } + public static new GetApiArgs Empty => new GetApiArgs(); + } + + public sealed class GetApiInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the AppSync Api + /// + [Input("apiArn", required: true)] + public Input ApiArn { get; set; } = null!; + + public GetApiInvokeArgs() + { + } + public static new GetApiInvokeArgs Empty => new GetApiInvokeArgs(); + } + + + [OutputType] + public sealed class GetApiResult + { + /// + /// The Amazon Resource Name (ARN) of the AppSync Api + /// + public readonly string? ApiArn; + /// + /// The unique identifier for the AppSync Api generated by the service + /// + public readonly string? ApiId; + public readonly ImmutableDictionary? Dns; + public readonly Outputs.ApiEventConfig? EventConfig; + public readonly string? Name; + public readonly string? OwnerContact; + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetApiResult( + string? apiArn, + + string? apiId, + + ImmutableDictionary? dns, + + Outputs.ApiEventConfig? eventConfig, + + string? name, + + string? ownerContact, + + ImmutableArray tags) + { + ApiArn = apiArn; + ApiId = apiId; + Dns = dns; + EventConfig = eventConfig; + Name = name; + OwnerContact = ownerContact; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiAuthModeArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiAuthModeArgs.cs new file mode 100644 index 0000000000..e1ec4c9da0 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiAuthModeArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// An auth mode. + /// + public sealed class ApiAuthModeArgs : global::Pulumi.ResourceArgs + { + [Input("authType")] + public Input? AuthType { get; set; } + + public ApiAuthModeArgs() + { + } + public static new ApiAuthModeArgs Empty => new ApiAuthModeArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiAuthProviderArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiAuthProviderArgs.cs new file mode 100644 index 0000000000..b20fec9d32 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiAuthProviderArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// An auth provider for the AppSync API. + /// + public sealed class ApiAuthProviderArgs : global::Pulumi.ResourceArgs + { + [Input("authType", required: true)] + public Input AuthType { get; set; } = null!; + + [Input("cognitoConfig")] + public Input? CognitoConfig { get; set; } + + [Input("lambdaAuthorizerConfig")] + public Input? LambdaAuthorizerConfig { get; set; } + + [Input("openIdConnectConfig")] + public Input? OpenIdConnectConfig { get; set; } + + public ApiAuthProviderArgs() + { + } + public static new ApiAuthProviderArgs Empty => new ApiAuthProviderArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiCognitoConfigArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiCognitoConfigArgs.cs new file mode 100644 index 0000000000..d8a89e566d --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiCognitoConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + /// + public sealed class ApiCognitoConfigArgs : global::Pulumi.ResourceArgs + { + [Input("appIdClientRegex")] + public Input? AppIdClientRegex { get; set; } + + [Input("awsRegion", required: true)] + public Input AwsRegion { get; set; } = null!; + + [Input("userPoolId", required: true)] + public Input UserPoolId { get; set; } = null!; + + public ApiCognitoConfigArgs() + { + } + public static new ApiCognitoConfigArgs Empty => new ApiCognitoConfigArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiEventConfigArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiEventConfigArgs.cs new file mode 100644 index 0000000000..d9f00108e4 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiEventConfigArgs.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// The configuration for an Event Api + /// + public sealed class ApiEventConfigArgs : global::Pulumi.ResourceArgs + { + [Input("authProviders", required: true)] + private InputList? _authProviders; + public InputList AuthProviders + { + get => _authProviders ?? (_authProviders = new InputList()); + set => _authProviders = value; + } + + [Input("connectionAuthModes", required: true)] + private InputList? _connectionAuthModes; + public InputList ConnectionAuthModes + { + get => _connectionAuthModes ?? (_connectionAuthModes = new InputList()); + set => _connectionAuthModes = value; + } + + [Input("defaultPublishAuthModes", required: true)] + private InputList? _defaultPublishAuthModes; + public InputList DefaultPublishAuthModes + { + get => _defaultPublishAuthModes ?? (_defaultPublishAuthModes = new InputList()); + set => _defaultPublishAuthModes = value; + } + + [Input("defaultSubscribeAuthModes", required: true)] + private InputList? _defaultSubscribeAuthModes; + public InputList DefaultSubscribeAuthModes + { + get => _defaultSubscribeAuthModes ?? (_defaultSubscribeAuthModes = new InputList()); + set => _defaultSubscribeAuthModes = value; + } + + [Input("logConfig")] + public Input? LogConfig { get; set; } + + public ApiEventConfigArgs() + { + } + public static new ApiEventConfigArgs Empty => new ApiEventConfigArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiEventLogConfigArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiEventLogConfigArgs.cs new file mode 100644 index 0000000000..7eb4b16392 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiEventLogConfigArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// The log config for the AppSync API. + /// + public sealed class ApiEventLogConfigArgs : global::Pulumi.ResourceArgs + { + [Input("cloudWatchLogsRoleArn", required: true)] + public Input CloudWatchLogsRoleArn { get; set; } = null!; + + [Input("logLevel", required: true)] + public Input LogLevel { get; set; } = null!; + + public ApiEventLogConfigArgs() + { + } + public static new ApiEventLogConfigArgs Empty => new ApiEventLogConfigArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiLambdaAuthorizerConfigArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiLambdaAuthorizerConfigArgs.cs new file mode 100644 index 0000000000..3880111c16 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiLambdaAuthorizerConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + /// + public sealed class ApiLambdaAuthorizerConfigArgs : global::Pulumi.ResourceArgs + { + [Input("authorizerResultTtlInSeconds")] + public Input? AuthorizerResultTtlInSeconds { get; set; } + + [Input("authorizerUri", required: true)] + public Input AuthorizerUri { get; set; } = null!; + + [Input("identityValidationExpression")] + public Input? IdentityValidationExpression { get; set; } + + public ApiLambdaAuthorizerConfigArgs() + { + } + public static new ApiLambdaAuthorizerConfigArgs Empty => new ApiLambdaAuthorizerConfigArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Inputs/ApiOpenIdConnectConfigArgs.cs b/sdk/dotnet/AppSync/Inputs/ApiOpenIdConnectConfigArgs.cs new file mode 100644 index 0000000000..0212452af4 --- /dev/null +++ b/sdk/dotnet/AppSync/Inputs/ApiOpenIdConnectConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Inputs +{ + + /// + /// The OpenID Connect configuration. + /// + public sealed class ApiOpenIdConnectConfigArgs : global::Pulumi.ResourceArgs + { + [Input("authTtl")] + public Input? AuthTtl { get; set; } + + [Input("clientId")] + public Input? ClientId { get; set; } + + [Input("iatTtl")] + public Input? IatTtl { get; set; } + + [Input("issuer", required: true)] + public Input Issuer { get; set; } = null!; + + public ApiOpenIdConnectConfigArgs() + { + } + public static new ApiOpenIdConnectConfigArgs Empty => new ApiOpenIdConnectConfigArgs(); + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiAuthMode.cs b/sdk/dotnet/AppSync/Outputs/ApiAuthMode.cs new file mode 100644 index 0000000000..cb6836da14 --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiAuthMode.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// An auth mode. + /// + [OutputType] + public sealed class ApiAuthMode + { + public readonly Pulumi.AwsNative.AppSync.ApiAuthenticationType? AuthType; + + [OutputConstructor] + private ApiAuthMode(Pulumi.AwsNative.AppSync.ApiAuthenticationType? authType) + { + AuthType = authType; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiAuthProvider.cs b/sdk/dotnet/AppSync/Outputs/ApiAuthProvider.cs new file mode 100644 index 0000000000..1561afddb1 --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiAuthProvider.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// An auth provider for the AppSync API. + /// + [OutputType] + public sealed class ApiAuthProvider + { + public readonly Pulumi.AwsNative.AppSync.ApiAuthenticationType AuthType; + public readonly Outputs.ApiCognitoConfig? CognitoConfig; + public readonly Outputs.ApiLambdaAuthorizerConfig? LambdaAuthorizerConfig; + public readonly Outputs.ApiOpenIdConnectConfig? OpenIdConnectConfig; + + [OutputConstructor] + private ApiAuthProvider( + Pulumi.AwsNative.AppSync.ApiAuthenticationType authType, + + Outputs.ApiCognitoConfig? cognitoConfig, + + Outputs.ApiLambdaAuthorizerConfig? lambdaAuthorizerConfig, + + Outputs.ApiOpenIdConnectConfig? openIdConnectConfig) + { + AuthType = authType; + CognitoConfig = cognitoConfig; + LambdaAuthorizerConfig = lambdaAuthorizerConfig; + OpenIdConnectConfig = openIdConnectConfig; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiCognitoConfig.cs b/sdk/dotnet/AppSync/Outputs/ApiCognitoConfig.cs new file mode 100644 index 0000000000..51ae4acd9f --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiCognitoConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + /// + [OutputType] + public sealed class ApiCognitoConfig + { + public readonly string? AppIdClientRegex; + public readonly string AwsRegion; + public readonly string UserPoolId; + + [OutputConstructor] + private ApiCognitoConfig( + string? appIdClientRegex, + + string awsRegion, + + string userPoolId) + { + AppIdClientRegex = appIdClientRegex; + AwsRegion = awsRegion; + UserPoolId = userPoolId; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiEventConfig.cs b/sdk/dotnet/AppSync/Outputs/ApiEventConfig.cs new file mode 100644 index 0000000000..4a8d3a0eef --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiEventConfig.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// The configuration for an Event Api + /// + [OutputType] + public sealed class ApiEventConfig + { + public readonly ImmutableArray AuthProviders; + public readonly ImmutableArray ConnectionAuthModes; + public readonly ImmutableArray DefaultPublishAuthModes; + public readonly ImmutableArray DefaultSubscribeAuthModes; + public readonly Outputs.ApiEventLogConfig? LogConfig; + + [OutputConstructor] + private ApiEventConfig( + ImmutableArray authProviders, + + ImmutableArray connectionAuthModes, + + ImmutableArray defaultPublishAuthModes, + + ImmutableArray defaultSubscribeAuthModes, + + Outputs.ApiEventLogConfig? logConfig) + { + AuthProviders = authProviders; + ConnectionAuthModes = connectionAuthModes; + DefaultPublishAuthModes = defaultPublishAuthModes; + DefaultSubscribeAuthModes = defaultSubscribeAuthModes; + LogConfig = logConfig; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiEventLogConfig.cs b/sdk/dotnet/AppSync/Outputs/ApiEventLogConfig.cs new file mode 100644 index 0000000000..240784eaec --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiEventLogConfig.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// The log config for the AppSync API. + /// + [OutputType] + public sealed class ApiEventLogConfig + { + public readonly string CloudWatchLogsRoleArn; + public readonly Pulumi.AwsNative.AppSync.ApiEventLogLevel LogLevel; + + [OutputConstructor] + private ApiEventLogConfig( + string cloudWatchLogsRoleArn, + + Pulumi.AwsNative.AppSync.ApiEventLogLevel logLevel) + { + CloudWatchLogsRoleArn = cloudWatchLogsRoleArn; + LogLevel = logLevel; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiLambdaAuthorizerConfig.cs b/sdk/dotnet/AppSync/Outputs/ApiLambdaAuthorizerConfig.cs new file mode 100644 index 0000000000..7f73443c46 --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiLambdaAuthorizerConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + /// + [OutputType] + public sealed class ApiLambdaAuthorizerConfig + { + public readonly int? AuthorizerResultTtlInSeconds; + public readonly string AuthorizerUri; + public readonly string? IdentityValidationExpression; + + [OutputConstructor] + private ApiLambdaAuthorizerConfig( + int? authorizerResultTtlInSeconds, + + string authorizerUri, + + string? identityValidationExpression) + { + AuthorizerResultTtlInSeconds = authorizerResultTtlInSeconds; + AuthorizerUri = authorizerUri; + IdentityValidationExpression = identityValidationExpression; + } + } +} diff --git a/sdk/dotnet/AppSync/Outputs/ApiOpenIdConnectConfig.cs b/sdk/dotnet/AppSync/Outputs/ApiOpenIdConnectConfig.cs new file mode 100644 index 0000000000..d0d619333f --- /dev/null +++ b/sdk/dotnet/AppSync/Outputs/ApiOpenIdConnectConfig.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppSync.Outputs +{ + + /// + /// The OpenID Connect configuration. + /// + [OutputType] + public sealed class ApiOpenIdConnectConfig + { + public readonly double? AuthTtl; + public readonly string? ClientId; + public readonly double? IatTtl; + public readonly string Issuer; + + [OutputConstructor] + private ApiOpenIdConnectConfig( + double? authTtl, + + string? clientId, + + double? iatTtl, + + string issuer) + { + AuthTtl = authTtl; + ClientId = clientId; + IatTtl = iatTtl; + Issuer = issuer; + } + } +} diff --git a/sdk/dotnet/CodePipeline/Enums.cs b/sdk/dotnet/CodePipeline/Enums.cs index 2ecc5f05e1..f98ff30a6a 100644 --- a/sdk/dotnet/CodePipeline/Enums.cs +++ b/sdk/dotnet/CodePipeline/Enums.cs @@ -149,6 +149,7 @@ private PipelineFailureConditionsResult(string value) } public static PipelineFailureConditionsResult Rollback { get; } = new PipelineFailureConditionsResult("ROLLBACK"); + public static PipelineFailureConditionsResult Retry { get; } = new PipelineFailureConditionsResult("RETRY"); public static bool operator ==(PipelineFailureConditionsResult left, PipelineFailureConditionsResult right) => left.Equals(right); public static bool operator !=(PipelineFailureConditionsResult left, PipelineFailureConditionsResult right) => !left.Equals(right); @@ -165,6 +166,37 @@ private PipelineFailureConditionsResult(string value) public override string ToString() => _value; } + /// + /// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + /// + [EnumType] + public readonly struct PipelineFailureConditionsRetryConfigurationPropertiesRetryMode : IEquatable + { + private readonly string _value; + + private PipelineFailureConditionsRetryConfigurationPropertiesRetryMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static PipelineFailureConditionsRetryConfigurationPropertiesRetryMode AllActions { get; } = new PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("ALL_ACTIONS"); + public static PipelineFailureConditionsRetryConfigurationPropertiesRetryMode FailedActions { get; } = new PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("FAILED_ACTIONS"); + + public static bool operator ==(PipelineFailureConditionsRetryConfigurationPropertiesRetryMode left, PipelineFailureConditionsRetryConfigurationPropertiesRetryMode right) => left.Equals(right); + public static bool operator !=(PipelineFailureConditionsRetryConfigurationPropertiesRetryMode left, PipelineFailureConditionsRetryConfigurationPropertiesRetryMode right) => !left.Equals(right); + + public static explicit operator string(PipelineFailureConditionsRetryConfigurationPropertiesRetryMode value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is PipelineFailureConditionsRetryConfigurationPropertiesRetryMode other && Equals(other); + public bool Equals(PipelineFailureConditionsRetryConfigurationPropertiesRetryMode other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + /// /// The source provider for the event, such as connections configured for a repository with Git tags, for the specified trigger configuration. /// diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsArgs.cs index 23f1d6409c..ed08ef239d 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsArgs.cs @@ -33,6 +33,12 @@ public InputList Conditions [Input("result")] public Input? Result { get; set; } + /// + /// The configuration that specifies the retry configuration for a stage + /// + [Input("retryConfiguration")] + public Input? RetryConfiguration { get; set; } + public PipelineFailureConditionsArgs() { } diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsRetryConfigurationPropertiesArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsRetryConfigurationPropertiesArgs.cs new file mode 100644 index 0000000000..2d97d3580f --- /dev/null +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineFailureConditionsRetryConfigurationPropertiesArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.CodePipeline.Inputs +{ + + /// + /// The configuration that specifies the retry configuration for a stage + /// + public sealed class PipelineFailureConditionsRetryConfigurationPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + /// + [Input("retryMode")] + public Input? RetryMode { get; set; } + + public PipelineFailureConditionsRetryConfigurationPropertiesArgs() + { + } + public static new PipelineFailureConditionsRetryConfigurationPropertiesArgs Empty => new PipelineFailureConditionsRetryConfigurationPropertiesArgs(); + } +} diff --git a/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditions.cs b/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditions.cs index f1fa7cc615..ca72416c1c 100644 --- a/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditions.cs +++ b/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditions.cs @@ -24,15 +24,22 @@ public sealed class PipelineFailureConditions /// The specified result for when the failure conditions are met, such as rolling back the stage /// public readonly Pulumi.AwsNative.CodePipeline.PipelineFailureConditionsResult? Result; + /// + /// The configuration that specifies the retry configuration for a stage + /// + public readonly Outputs.PipelineFailureConditionsRetryConfigurationProperties? RetryConfiguration; [OutputConstructor] private PipelineFailureConditions( ImmutableArray conditions, - Pulumi.AwsNative.CodePipeline.PipelineFailureConditionsResult? result) + Pulumi.AwsNative.CodePipeline.PipelineFailureConditionsResult? result, + + Outputs.PipelineFailureConditionsRetryConfigurationProperties? retryConfiguration) { Conditions = conditions; Result = result; + RetryConfiguration = retryConfiguration; } } } diff --git a/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditionsRetryConfigurationProperties.cs b/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditionsRetryConfigurationProperties.cs new file mode 100644 index 0000000000..ff5420df91 --- /dev/null +++ b/sdk/dotnet/CodePipeline/Outputs/PipelineFailureConditionsRetryConfigurationProperties.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.CodePipeline.Outputs +{ + + /// + /// The configuration that specifies the retry configuration for a stage + /// + [OutputType] + public sealed class PipelineFailureConditionsRetryConfigurationProperties + { + /// + /// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + /// + public readonly Pulumi.AwsNative.CodePipeline.PipelineFailureConditionsRetryConfigurationPropertiesRetryMode? RetryMode; + + [OutputConstructor] + private PipelineFailureConditionsRetryConfigurationProperties(Pulumi.AwsNative.CodePipeline.PipelineFailureConditionsRetryConfigurationPropertiesRetryMode? retryMode) + { + RetryMode = retryMode; + } + } +} diff --git a/sdk/dotnet/Ec2/Eip.cs b/sdk/dotnet/Ec2/Eip.cs index 1ef682f48e..51da4a7ee9 100644 --- a/sdk/dotnet/Ec2/Eip.cs +++ b/sdk/dotnet/Ec2/Eip.cs @@ -17,6 +17,9 @@ namespace Pulumi.AwsNative.Ec2 [AwsNativeResourceType("aws-native:ec2:Eip")] public partial class Eip : global::Pulumi.CustomResource { + /// + /// Describes an Elastic IP address, or a carrier IP address. + /// [Output("address")] public Output Address { get; private set; } = null!; @@ -129,6 +132,9 @@ public static Eip Get(string name, Input id, CustomResourceOptions? opti public sealed class EipArgs : global::Pulumi.ResourceArgs { + /// + /// Describes an Elastic IP address, or a carrier IP address. + /// [Input("address")] public Input? Address { get; set; } diff --git a/sdk/dotnet/M2/Application.cs b/sdk/dotnet/M2/Application.cs index 0f36e2997c..944b9aeaca 100644 --- a/sdk/dotnet/M2/Application.cs +++ b/sdk/dotnet/M2/Application.cs @@ -33,7 +33,7 @@ public partial class Application : global::Pulumi.CustomResource /// For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . /// [Output("definition")] - public Output> Definition { get; private set; } = null!; + public Output?> Definition { get; private set; } = null!; /// /// The description of the application. @@ -130,8 +130,8 @@ public sealed class ApplicationArgs : global::Pulumi.ResourceArgs /// /// For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . /// - [Input("definition", required: true)] - public InputUnion Definition { get; set; } = null!; + [Input("definition")] + public InputUnion? Definition { get; set; } /// /// The description of the application. diff --git a/sdk/dotnet/OpenSearchService/Application.cs b/sdk/dotnet/OpenSearchService/Application.cs new file mode 100644 index 0000000000..65bdfdd46e --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Application.cs @@ -0,0 +1,174 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService +{ + /// + /// Amazon OpenSearchService application resource + /// + [AwsNativeResourceType("aws-native:opensearchservice:Application")] + public partial class Application : global::Pulumi.CustomResource + { + /// + /// List of application configurations. + /// + [Output("appConfigs")] + public Output> AppConfigs { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) format. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The identifier of the application. + /// + [Output("awsId")] + public Output AwsId { get; private set; } = null!; + + /// + /// List of data sources. + /// + [Output("dataSources")] + public Output> DataSources { get; private set; } = null!; + + /// + /// The endpoint for the application. + /// + [Output("endpoint")] + public Output Endpoint { get; private set; } = null!; + + /// + /// Options for configuring IAM Identity Center + /// + [Output("iamIdentityCenterOptions")] + public Output IamIdentityCenterOptions { get; private set; } = null!; + + /// + /// The name of the application. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// An arbitrary set of tags (key-value pairs) for this application. + /// + [Output("tags")] + public Output> Tags { 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 = null, CustomResourceOptions? options = null) + : base("aws-native:opensearchservice:Application", name, args ?? new ApplicationArgs(), MakeResourceOptions(options, "")) + { + } + + private Application(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:opensearchservice:Application", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "name", + }, + }; + 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. + /// A bag of options that control this resource's behavior + public static Application Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Application(name, id, options); + } + } + + public sealed class ApplicationArgs : global::Pulumi.ResourceArgs + { + [Input("appConfigs")] + private InputList? _appConfigs; + + /// + /// List of application configurations. + /// + public InputList AppConfigs + { + get => _appConfigs ?? (_appConfigs = new InputList()); + set => _appConfigs = value; + } + + [Input("dataSources")] + private InputList? _dataSources; + + /// + /// List of data sources. + /// + public InputList DataSources + { + get => _dataSources ?? (_dataSources = new InputList()); + set => _dataSources = value; + } + + /// + /// The endpoint for the application. + /// + [Input("endpoint")] + public Input? Endpoint { get; set; } + + /// + /// Options for configuring IAM Identity Center + /// + [Input("iamIdentityCenterOptions")] + public Input? IamIdentityCenterOptions { get; set; } + + /// + /// The name of the application. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// An arbitrary set of tags (key-value pairs) for this application. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public ApplicationArgs() + { + } + public static new ApplicationArgs Empty => new ApplicationArgs(); + } +} diff --git a/sdk/dotnet/OpenSearchService/Enums.cs b/sdk/dotnet/OpenSearchService/Enums.cs new file mode 100644 index 0000000000..54c6a4c2ef --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Enums.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.ComponentModel; +using Pulumi; + +namespace Pulumi.AwsNative.OpenSearchService +{ + /// + /// AppConfig type values. + /// + [EnumType] + public readonly struct ApplicationAppConfigType : IEquatable + { + private readonly string _value; + + private ApplicationAppConfigType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static ApplicationAppConfigType OpensearchDashboardsDashboardAdminUsers { get; } = new ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.users"); + public static ApplicationAppConfigType OpensearchDashboardsDashboardAdminGroups { get; } = new ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.groups"); + + public static bool operator ==(ApplicationAppConfigType left, ApplicationAppConfigType right) => left.Equals(right); + public static bool operator !=(ApplicationAppConfigType left, ApplicationAppConfigType right) => !left.Equals(right); + + public static explicit operator string(ApplicationAppConfigType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is ApplicationAppConfigType other && Equals(other); + public bool Equals(ApplicationAppConfigType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } +} diff --git a/sdk/dotnet/OpenSearchService/GetApplication.cs b/sdk/dotnet/OpenSearchService/GetApplication.cs new file mode 100644 index 0000000000..309d06acf3 --- /dev/null +++ b/sdk/dotnet/OpenSearchService/GetApplication.cs @@ -0,0 +1,114 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService +{ + public static class GetApplication + { + /// + /// Amazon OpenSearchService application resource + /// + public static Task InvokeAsync(GetApplicationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:opensearchservice:getApplication", args ?? new GetApplicationArgs(), options.WithDefaults()); + + /// + /// Amazon OpenSearchService application resource + /// + public static Output Invoke(GetApplicationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:opensearchservice:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetApplicationArgs : global::Pulumi.InvokeArgs + { + /// + /// The name of the application. + /// + [Input("name", required: true)] + public string Name { get; set; } = null!; + + public GetApplicationArgs() + { + } + public static new GetApplicationArgs Empty => new GetApplicationArgs(); + } + + public sealed class GetApplicationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The name of the application. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public GetApplicationInvokeArgs() + { + } + public static new GetApplicationInvokeArgs Empty => new GetApplicationInvokeArgs(); + } + + + [OutputType] + public sealed class GetApplicationResult + { + /// + /// List of application configurations. + /// + public readonly ImmutableArray AppConfigs; + /// + /// Amazon Resource Name (ARN) format. + /// + public readonly string? Arn; + /// + /// List of data sources. + /// + public readonly ImmutableArray DataSources; + /// + /// The endpoint for the application. + /// + public readonly string? Endpoint; + /// + /// Options for configuring IAM Identity Center + /// + public readonly Outputs.IamIdentityCenterOptionsProperties? IamIdentityCenterOptions; + /// + /// The identifier of the application. + /// + public readonly string? Id; + /// + /// An arbitrary set of tags (key-value pairs) for this application. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetApplicationResult( + ImmutableArray appConfigs, + + string? arn, + + ImmutableArray dataSources, + + string? endpoint, + + Outputs.IamIdentityCenterOptionsProperties? iamIdentityCenterOptions, + + string? id, + + ImmutableArray tags) + { + AppConfigs = appConfigs; + Arn = arn; + DataSources = dataSources; + Endpoint = endpoint; + IamIdentityCenterOptions = iamIdentityCenterOptions; + Id = id; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/OpenSearchService/Inputs/ApplicationAppConfigArgs.cs b/sdk/dotnet/OpenSearchService/Inputs/ApplicationAppConfigArgs.cs new file mode 100644 index 0000000000..3df991eef9 --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Inputs/ApplicationAppConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Inputs +{ + + /// + /// A key-value pair of AppConfig + /// + public sealed class ApplicationAppConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The configuration key + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The configuration value. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ApplicationAppConfigArgs() + { + } + public static new ApplicationAppConfigArgs Empty => new ApplicationAppConfigArgs(); + } +} diff --git a/sdk/dotnet/OpenSearchService/Inputs/ApplicationDataSourceArgs.cs b/sdk/dotnet/OpenSearchService/Inputs/ApplicationDataSourceArgs.cs new file mode 100644 index 0000000000..959d617345 --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Inputs/ApplicationDataSourceArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Inputs +{ + + /// + /// Datasource arn and description + /// + public sealed class ApplicationDataSourceArgs : global::Pulumi.ResourceArgs + { + /// + /// The ARN of the data source. + /// + [Input("dataSourceArn", required: true)] + public Input DataSourceArn { get; set; } = null!; + + /// + /// Description of the data source. + /// + [Input("dataSourceDescription")] + public Input? DataSourceDescription { get; set; } + + public ApplicationDataSourceArgs() + { + } + public static new ApplicationDataSourceArgs Empty => new ApplicationDataSourceArgs(); + } +} diff --git a/sdk/dotnet/OpenSearchService/Inputs/IamIdentityCenterOptionsPropertiesArgs.cs b/sdk/dotnet/OpenSearchService/Inputs/IamIdentityCenterOptionsPropertiesArgs.cs new file mode 100644 index 0000000000..26cd2fb60b --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Inputs/IamIdentityCenterOptionsPropertiesArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Inputs +{ + + /// + /// Options for configuring IAM Identity Center + /// + public sealed class IamIdentityCenterOptionsPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// Whether IAM Identity Center is enabled. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// The ARN of the IAM Identity Center instance. + /// + [Input("iamIdentityCenterInstanceArn")] + public Input? IamIdentityCenterInstanceArn { get; set; } + + /// + /// The ARN of the IAM role for Identity Center application. + /// + [Input("iamRoleForIdentityCenterApplicationArn")] + public Input? IamRoleForIdentityCenterApplicationArn { get; set; } + + public IamIdentityCenterOptionsPropertiesArgs() + { + } + public static new IamIdentityCenterOptionsPropertiesArgs Empty => new IamIdentityCenterOptionsPropertiesArgs(); + } +} diff --git a/sdk/dotnet/OpenSearchService/Outputs/ApplicationAppConfig.cs b/sdk/dotnet/OpenSearchService/Outputs/ApplicationAppConfig.cs new file mode 100644 index 0000000000..b48d2861ee --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Outputs/ApplicationAppConfig.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Outputs +{ + + /// + /// A key-value pair of AppConfig + /// + [OutputType] + public sealed class ApplicationAppConfig + { + /// + /// The configuration key + /// + public readonly Pulumi.AwsNative.OpenSearchService.ApplicationAppConfigType Key; + /// + /// The configuration value. + /// + public readonly string Value; + + [OutputConstructor] + private ApplicationAppConfig( + Pulumi.AwsNative.OpenSearchService.ApplicationAppConfigType key, + + string value) + { + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/OpenSearchService/Outputs/ApplicationDataSource.cs b/sdk/dotnet/OpenSearchService/Outputs/ApplicationDataSource.cs new file mode 100644 index 0000000000..7d494b24ce --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Outputs/ApplicationDataSource.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Outputs +{ + + /// + /// Datasource arn and description + /// + [OutputType] + public sealed class ApplicationDataSource + { + /// + /// The ARN of the data source. + /// + public readonly object DataSourceArn; + /// + /// Description of the data source. + /// + public readonly string? DataSourceDescription; + + [OutputConstructor] + private ApplicationDataSource( + object dataSourceArn, + + string? dataSourceDescription) + { + DataSourceArn = dataSourceArn; + DataSourceDescription = dataSourceDescription; + } + } +} diff --git a/sdk/dotnet/OpenSearchService/Outputs/IamIdentityCenterOptionsProperties.cs b/sdk/dotnet/OpenSearchService/Outputs/IamIdentityCenterOptionsProperties.cs new file mode 100644 index 0000000000..3be507ea4e --- /dev/null +++ b/sdk/dotnet/OpenSearchService/Outputs/IamIdentityCenterOptionsProperties.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.OpenSearchService.Outputs +{ + + /// + /// Options for configuring IAM Identity Center + /// + [OutputType] + public sealed class IamIdentityCenterOptionsProperties + { + /// + /// Whether IAM Identity Center is enabled. + /// + public readonly bool? Enabled; + /// + /// The ARN of the IAM Identity Center instance. + /// + public readonly object? IamIdentityCenterInstanceArn; + /// + /// The ARN of the IAM role for Identity Center application. + /// + public readonly string? IamRoleForIdentityCenterApplicationArn; + + [OutputConstructor] + private IamIdentityCenterOptionsProperties( + bool? enabled, + + object? iamIdentityCenterInstanceArn, + + string? iamRoleForIdentityCenterApplicationArn) + { + Enabled = enabled; + IamIdentityCenterInstanceArn = iamIdentityCenterInstanceArn; + IamRoleForIdentityCenterApplicationArn = iamRoleForIdentityCenterApplicationArn; + } + } +} diff --git a/sdk/dotnet/SageMaker/GetSpace.cs b/sdk/dotnet/SageMaker/GetSpace.cs index a351382ea1..1a4e8f4f81 100644 --- a/sdk/dotnet/SageMaker/GetSpace.cs +++ b/sdk/dotnet/SageMaker/GetSpace.cs @@ -78,6 +78,10 @@ public sealed class GetSpaceResult /// public readonly string? SpaceDisplayName; /// + /// A list of tags to apply to the space. + /// + public readonly ImmutableArray Tags; + /// /// Returns the URL of the space. If the space is created with AWS IAM Identity Center (Successor to AWS Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through AWS IAM Identity Center. /// /// The following application types are supported: @@ -94,10 +98,13 @@ private GetSpaceResult( string? spaceDisplayName, + ImmutableArray tags, + string? url) { SpaceArn = spaceArn; SpaceDisplayName = spaceDisplayName; + Tags = tags; Url = url; } } diff --git a/sdk/dotnet/SageMaker/StudioLifecycleConfig.cs b/sdk/dotnet/SageMaker/StudioLifecycleConfig.cs index b65f26fee5..eed9555293 100644 --- a/sdk/dotnet/SageMaker/StudioLifecycleConfig.cs +++ b/sdk/dotnet/SageMaker/StudioLifecycleConfig.cs @@ -28,7 +28,7 @@ public partial class StudioLifecycleConfig : global::Pulumi.CustomResource public Output StudioLifecycleConfigArn { get; private set; } = null!; /// - /// The content of your Amazon SageMaker Studio Lifecycle Configuration script. + /// The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. /// [Output("studioLifecycleConfigContent")] public Output StudioLifecycleConfigContent { get; private set; } = null!; @@ -40,7 +40,7 @@ public partial class StudioLifecycleConfig : global::Pulumi.CustomResource public Output StudioLifecycleConfigName { get; private set; } = null!; /// - /// Tags to be associated with the Lifecycle Configuration. + /// Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. /// [Output("tags")] public Output> Tags { get; private set; } = null!; @@ -104,7 +104,7 @@ public sealed class StudioLifecycleConfigArgs : global::Pulumi.ResourceArgs public Input StudioLifecycleConfigAppType { get; set; } = null!; /// - /// The content of your Amazon SageMaker Studio Lifecycle Configuration script. + /// The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. /// [Input("studioLifecycleConfigContent", required: true)] public Input StudioLifecycleConfigContent { get; set; } = null!; @@ -119,7 +119,7 @@ public sealed class StudioLifecycleConfigArgs : global::Pulumi.ResourceArgs private InputList? _tags; /// - /// Tags to be associated with the Lifecycle Configuration. + /// Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. /// public InputList Tags { diff --git a/sdk/dotnet/SecretsManager/GetRotationSchedule.cs b/sdk/dotnet/SecretsManager/GetRotationSchedule.cs new file mode 100644 index 0000000000..b1780fd1f6 --- /dev/null +++ b/sdk/dotnet/SecretsManager/GetRotationSchedule.cs @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager +{ + public static class GetRotationSchedule + { + /// + /// Resource Type definition for AWS::SecretsManager::RotationSchedule + /// + public static Task InvokeAsync(GetRotationScheduleArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:secretsmanager:getRotationSchedule", args ?? new GetRotationScheduleArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::SecretsManager::RotationSchedule + /// + public static Output Invoke(GetRotationScheduleInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:secretsmanager:getRotationSchedule", args ?? new GetRotationScheduleInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetRotationScheduleArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the secret. + /// + [Input("id", required: true)] + public string Id { get; set; } = null!; + + public GetRotationScheduleArgs() + { + } + public static new GetRotationScheduleArgs Empty => new GetRotationScheduleArgs(); + } + + public sealed class GetRotationScheduleInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the secret. + /// + [Input("id", required: true)] + public Input Id { get; set; } = null!; + + public GetRotationScheduleInvokeArgs() + { + } + public static new GetRotationScheduleInvokeArgs Empty => new GetRotationScheduleInvokeArgs(); + } + + + [OutputType] + public sealed class GetRotationScheduleResult + { + /// + /// The ARN of the secret. + /// + public readonly string? Id; + /// + /// The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + /// + public readonly string? RotationLambdaArn; + /// + /// A structure that defines the rotation configuration for this secret. + /// + public readonly Outputs.RotationScheduleRotationRules? RotationRules; + + [OutputConstructor] + private GetRotationScheduleResult( + string? id, + + string? rotationLambdaArn, + + Outputs.RotationScheduleRotationRules? rotationRules) + { + Id = id; + RotationLambdaArn = rotationLambdaArn; + RotationRules = rotationRules; + } + } +} diff --git a/sdk/dotnet/SecretsManager/GetSecretTargetAttachment.cs b/sdk/dotnet/SecretsManager/GetSecretTargetAttachment.cs index c68e073f4c..073453877f 100644 --- a/sdk/dotnet/SecretsManager/GetSecretTargetAttachment.cs +++ b/sdk/dotnet/SecretsManager/GetSecretTargetAttachment.cs @@ -53,10 +53,6 @@ public sealed class GetSecretTargetAttachmentResult { public readonly string? Id; /// - /// The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition. - /// - public readonly string? SecretId; - /// /// The ID of the database or cluster. /// public readonly string? TargetId; @@ -77,14 +73,11 @@ public sealed class GetSecretTargetAttachmentResult private GetSecretTargetAttachmentResult( string? id, - string? secretId, - string? targetId, string? targetType) { Id = id; - SecretId = secretId; TargetId = targetId; TargetType = targetType; } diff --git a/sdk/dotnet/SecretsManager/Inputs/RotationScheduleHostedRotationLambdaArgs.cs b/sdk/dotnet/SecretsManager/Inputs/RotationScheduleHostedRotationLambdaArgs.cs new file mode 100644 index 0000000000..370b24c05a --- /dev/null +++ b/sdk/dotnet/SecretsManager/Inputs/RotationScheduleHostedRotationLambdaArgs.cs @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager.Inputs +{ + + public sealed class RotationScheduleHostedRotationLambdaArgs : global::Pulumi.ResourceArgs + { + /// + /// A string of the characters that you don't want in the password. + /// + [Input("excludeCharacters")] + public Input? ExcludeCharacters { get; set; } + + /// + /// The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + /// + [Input("kmsKeyArn")] + public Input? KmsKeyArn { get; set; } + + /// + /// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + /// + [Input("masterSecretArn")] + public Input? MasterSecretArn { get; set; } + + /// + /// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + /// + [Input("masterSecretKmsKeyArn")] + public Input? MasterSecretKmsKeyArn { get; set; } + + /// + /// The name of the Lambda rotation function. + /// + [Input("rotationLambdaName")] + public Input? RotationLambdaName { get; set; } + + /// + /// The type of rotation template to use + /// + [Input("rotationType", required: true)] + public Input RotationType { get; set; } = null!; + + /// + /// The python runtime associated with the Lambda function + /// + [Input("runtime")] + public Input? Runtime { get; set; } + + /// + /// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + /// + [Input("superuserSecretArn")] + public Input? SuperuserSecretArn { get; set; } + + /// + /// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + /// + [Input("superuserSecretKmsKeyArn")] + public Input? SuperuserSecretKmsKeyArn { get; set; } + + /// + /// A comma-separated list of security group IDs applied to the target database. + /// + [Input("vpcSecurityGroupIds")] + public Input? VpcSecurityGroupIds { get; set; } + + /// + /// A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + /// + [Input("vpcSubnetIds")] + public Input? VpcSubnetIds { get; set; } + + public RotationScheduleHostedRotationLambdaArgs() + { + } + public static new RotationScheduleHostedRotationLambdaArgs Empty => new RotationScheduleHostedRotationLambdaArgs(); + } +} diff --git a/sdk/dotnet/SecretsManager/Inputs/RotationScheduleRotationRulesArgs.cs b/sdk/dotnet/SecretsManager/Inputs/RotationScheduleRotationRulesArgs.cs new file mode 100644 index 0000000000..c2c9712605 --- /dev/null +++ b/sdk/dotnet/SecretsManager/Inputs/RotationScheduleRotationRulesArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager.Inputs +{ + + public sealed class RotationScheduleRotationRulesArgs : global::Pulumi.ResourceArgs + { + /// + /// The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + /// + [Input("automaticallyAfterDays")] + public Input? AutomaticallyAfterDays { get; set; } + + /// + /// The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + /// + [Input("duration")] + public Input? Duration { get; set; } + + /// + /// A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + /// + [Input("scheduleExpression")] + public Input? ScheduleExpression { get; set; } + + public RotationScheduleRotationRulesArgs() + { + } + public static new RotationScheduleRotationRulesArgs Empty => new RotationScheduleRotationRulesArgs(); + } +} diff --git a/sdk/dotnet/SecretsManager/Outputs/RotationScheduleHostedRotationLambda.cs b/sdk/dotnet/SecretsManager/Outputs/RotationScheduleHostedRotationLambda.cs new file mode 100644 index 0000000000..da136929ff --- /dev/null +++ b/sdk/dotnet/SecretsManager/Outputs/RotationScheduleHostedRotationLambda.cs @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager.Outputs +{ + + [OutputType] + public sealed class RotationScheduleHostedRotationLambda + { + /// + /// A string of the characters that you don't want in the password. + /// + public readonly string? ExcludeCharacters; + /// + /// The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + /// + public readonly string? KmsKeyArn; + /// + /// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + /// + public readonly string? MasterSecretArn; + /// + /// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + /// + public readonly string? MasterSecretKmsKeyArn; + /// + /// The name of the Lambda rotation function. + /// + public readonly string? RotationLambdaName; + /// + /// The type of rotation template to use + /// + public readonly string RotationType; + /// + /// The python runtime associated with the Lambda function + /// + public readonly string? Runtime; + /// + /// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + /// + public readonly string? SuperuserSecretArn; + /// + /// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + /// + public readonly string? SuperuserSecretKmsKeyArn; + /// + /// A comma-separated list of security group IDs applied to the target database. + /// + public readonly string? VpcSecurityGroupIds; + /// + /// A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + /// + public readonly string? VpcSubnetIds; + + [OutputConstructor] + private RotationScheduleHostedRotationLambda( + string? excludeCharacters, + + string? kmsKeyArn, + + string? masterSecretArn, + + string? masterSecretKmsKeyArn, + + string? rotationLambdaName, + + string rotationType, + + string? runtime, + + string? superuserSecretArn, + + string? superuserSecretKmsKeyArn, + + string? vpcSecurityGroupIds, + + string? vpcSubnetIds) + { + ExcludeCharacters = excludeCharacters; + KmsKeyArn = kmsKeyArn; + MasterSecretArn = masterSecretArn; + MasterSecretKmsKeyArn = masterSecretKmsKeyArn; + RotationLambdaName = rotationLambdaName; + RotationType = rotationType; + Runtime = runtime; + SuperuserSecretArn = superuserSecretArn; + SuperuserSecretKmsKeyArn = superuserSecretKmsKeyArn; + VpcSecurityGroupIds = vpcSecurityGroupIds; + VpcSubnetIds = vpcSubnetIds; + } + } +} diff --git a/sdk/dotnet/SecretsManager/Outputs/RotationScheduleRotationRules.cs b/sdk/dotnet/SecretsManager/Outputs/RotationScheduleRotationRules.cs new file mode 100644 index 0000000000..67637eda0a --- /dev/null +++ b/sdk/dotnet/SecretsManager/Outputs/RotationScheduleRotationRules.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager.Outputs +{ + + [OutputType] + public sealed class RotationScheduleRotationRules + { + /// + /// The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + /// + public readonly int? AutomaticallyAfterDays; + /// + /// The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + /// + public readonly string? Duration; + /// + /// A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + /// + public readonly string? ScheduleExpression; + + [OutputConstructor] + private RotationScheduleRotationRules( + int? automaticallyAfterDays, + + string? duration, + + string? scheduleExpression) + { + AutomaticallyAfterDays = automaticallyAfterDays; + Duration = duration; + ScheduleExpression = scheduleExpression; + } + } +} diff --git a/sdk/dotnet/SecretsManager/RotationSchedule.cs b/sdk/dotnet/SecretsManager/RotationSchedule.cs new file mode 100644 index 0000000000..c6e7df972d --- /dev/null +++ b/sdk/dotnet/SecretsManager/RotationSchedule.cs @@ -0,0 +1,138 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.SecretsManager +{ + /// + /// Resource Type definition for AWS::SecretsManager::RotationSchedule + /// + [AwsNativeResourceType("aws-native:secretsmanager:RotationSchedule")] + public partial class RotationSchedule : global::Pulumi.CustomResource + { + /// + /// The ARN of the secret. + /// + [Output("awsId")] + public Output AwsId { get; private set; } = null!; + + /// + /// Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + /// + [Output("hostedRotationLambda")] + public Output HostedRotationLambda { get; private set; } = null!; + + /// + /// Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + /// + [Output("rotateImmediatelyOnUpdate")] + public Output RotateImmediatelyOnUpdate { get; private set; } = null!; + + /// + /// The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + /// + [Output("rotationLambdaArn")] + public Output RotationLambdaArn { get; private set; } = null!; + + /// + /// A structure that defines the rotation configuration for this secret. + /// + [Output("rotationRules")] + public Output RotationRules { get; private set; } = null!; + + /// + /// The ARN or name of the secret to rotate. + /// + [Output("secretId")] + public Output SecretId { get; private set; } = null!; + + + /// + /// Create a RotationSchedule 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 RotationSchedule(string name, RotationScheduleArgs args, CustomResourceOptions? options = null) + : base("aws-native:secretsmanager:RotationSchedule", name, args ?? new RotationScheduleArgs(), MakeResourceOptions(options, "")) + { + } + + private RotationSchedule(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:secretsmanager:RotationSchedule", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "secretId", + }, + }; + 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 RotationSchedule 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. + /// A bag of options that control this resource's behavior + public static RotationSchedule Get(string name, Input id, CustomResourceOptions? options = null) + { + return new RotationSchedule(name, id, options); + } + } + + public sealed class RotationScheduleArgs : global::Pulumi.ResourceArgs + { + /// + /// Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + /// + [Input("hostedRotationLambda")] + public Input? HostedRotationLambda { get; set; } + + /// + /// Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + /// + [Input("rotateImmediatelyOnUpdate")] + public Input? RotateImmediatelyOnUpdate { get; set; } + + /// + /// The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + /// + [Input("rotationLambdaArn")] + public Input? RotationLambdaArn { get; set; } + + /// + /// A structure that defines the rotation configuration for this secret. + /// + [Input("rotationRules")] + public Input? RotationRules { get; set; } + + /// + /// The ARN or name of the secret to rotate. + /// + [Input("secretId", required: true)] + public Input SecretId { get; set; } = null!; + + public RotationScheduleArgs() + { + } + public static new RotationScheduleArgs Empty => new RotationScheduleArgs(); + } +} diff --git a/sdk/dotnet/SecretsManager/SecretTargetAttachment.cs b/sdk/dotnet/SecretsManager/SecretTargetAttachment.cs index 729a79169e..af8e8bd2ff 100644 --- a/sdk/dotnet/SecretsManager/SecretTargetAttachment.cs +++ b/sdk/dotnet/SecretsManager/SecretTargetAttachment.cs @@ -67,6 +67,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? var defaultOptions = new CustomResourceOptions { Version = Utilities.Version, + ReplaceOnChanges = + { + "secretId", + }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); // Override the ID if one was specified for consistency with other language SDKs. diff --git a/sdk/dotnet/Wisdom/AiPromptVersion.cs b/sdk/dotnet/Wisdom/AiPromptVersion.cs new file mode 100644 index 0000000000..ccdb2ff5cf --- /dev/null +++ b/sdk/dotnet/Wisdom/AiPromptVersion.cs @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Wisdom +{ + /// + /// Definition of AWS::Wisdom::AIPromptVersion Resource Type + /// + [AwsNativeResourceType("aws-native:wisdom:AiPromptVersion")] + public partial class AiPromptVersion : global::Pulumi.CustomResource + { + [Output("aiPromptArn")] + public Output AiPromptArn { get; private set; } = null!; + + [Output("aiPromptId")] + public Output AiPromptId { get; private set; } = null!; + + [Output("aiPromptVersionId")] + public Output AiPromptVersionId { get; private set; } = null!; + + [Output("assistantArn")] + public Output AssistantArn { get; private set; } = null!; + + [Output("assistantId")] + public Output AssistantId { get; private set; } = null!; + + [Output("modifiedTimeSeconds")] + public Output ModifiedTimeSeconds { get; private set; } = null!; + + [Output("versionNumber")] + public Output VersionNumber { get; private set; } = null!; + + + /// + /// Create a AiPromptVersion 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 AiPromptVersion(string name, AiPromptVersionArgs args, CustomResourceOptions? options = null) + : base("aws-native:wisdom:AiPromptVersion", name, args ?? new AiPromptVersionArgs(), MakeResourceOptions(options, "")) + { + } + + private AiPromptVersion(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:wisdom:AiPromptVersion", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "aiPromptId", + "assistantId", + "modifiedTimeSeconds", + }, + }; + 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 AiPromptVersion 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. + /// A bag of options that control this resource's behavior + public static AiPromptVersion Get(string name, Input id, CustomResourceOptions? options = null) + { + return new AiPromptVersion(name, id, options); + } + } + + public sealed class AiPromptVersionArgs : global::Pulumi.ResourceArgs + { + [Input("aiPromptId", required: true)] + public Input AiPromptId { get; set; } = null!; + + [Input("assistantId", required: true)] + public Input AssistantId { get; set; } = null!; + + [Input("modifiedTimeSeconds")] + public Input? ModifiedTimeSeconds { get; set; } + + public AiPromptVersionArgs() + { + } + public static new AiPromptVersionArgs Empty => new AiPromptVersionArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/GetAiPromptVersion.cs b/sdk/dotnet/Wisdom/GetAiPromptVersion.cs new file mode 100644 index 0000000000..6a21ead718 --- /dev/null +++ b/sdk/dotnet/Wisdom/GetAiPromptVersion.cs @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Wisdom +{ + public static class GetAiPromptVersion + { + /// + /// Definition of AWS::Wisdom::AIPromptVersion Resource Type + /// + public static Task InvokeAsync(GetAiPromptVersionArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:wisdom:getAiPromptVersion", args ?? new GetAiPromptVersionArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Wisdom::AIPromptVersion Resource Type + /// + public static Output Invoke(GetAiPromptVersionInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:wisdom:getAiPromptVersion", args ?? new GetAiPromptVersionInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAiPromptVersionArgs : global::Pulumi.InvokeArgs + { + [Input("aiPromptId", required: true)] + public string AiPromptId { get; set; } = null!; + + [Input("assistantId", required: true)] + public string AssistantId { get; set; } = null!; + + [Input("versionNumber", required: true)] + public double VersionNumber { get; set; } + + public GetAiPromptVersionArgs() + { + } + public static new GetAiPromptVersionArgs Empty => new GetAiPromptVersionArgs(); + } + + public sealed class GetAiPromptVersionInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("aiPromptId", required: true)] + public Input AiPromptId { get; set; } = null!; + + [Input("assistantId", required: true)] + public Input AssistantId { get; set; } = null!; + + [Input("versionNumber", required: true)] + public Input VersionNumber { get; set; } = null!; + + public GetAiPromptVersionInvokeArgs() + { + } + public static new GetAiPromptVersionInvokeArgs Empty => new GetAiPromptVersionInvokeArgs(); + } + + + [OutputType] + public sealed class GetAiPromptVersionResult + { + public readonly string? AiPromptArn; + public readonly string? AiPromptVersionId; + public readonly string? AssistantArn; + public readonly double? VersionNumber; + + [OutputConstructor] + private GetAiPromptVersionResult( + string? aiPromptArn, + + string? aiPromptVersionId, + + string? assistantArn, + + double? versionNumber) + { + AiPromptArn = aiPromptArn; + AiPromptVersionId = aiPromptVersionId; + AssistantArn = assistantArn; + VersionNumber = versionNumber; + } + } +} diff --git a/sdk/go/aws/appsync/api.go b/sdk/go/aws/appsync/api.go new file mode 100644 index 0000000000..7062c15769 --- /dev/null +++ b/sdk/go/aws/appsync/api.go @@ -0,0 +1,154 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package appsync + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource schema for AppSync Api +type Api struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the AppSync Api + ApiArn pulumi.StringOutput `pulumi:"apiArn"` + // The unique identifier for the AppSync Api generated by the service + ApiId pulumi.StringOutput `pulumi:"apiId"` + Dns pulumi.StringMapOutput `pulumi:"dns"` + EventConfig ApiEventConfigPtrOutput `pulumi:"eventConfig"` + Name pulumi.StringOutput `pulumi:"name"` + OwnerContact pulumi.StringPtrOutput `pulumi:"ownerContact"` + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewApi registers a new resource with the given unique name, arguments, and options. +func NewApi(ctx *pulumi.Context, + name string, args *ApiArgs, opts ...pulumi.ResourceOption) (*Api, error) { + if args == nil { + args = &ApiArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Api + err := ctx.RegisterResource("aws-native:appsync:Api", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetApi gets an existing Api 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 GetApi(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ApiState, opts ...pulumi.ResourceOption) (*Api, error) { + var resource Api + err := ctx.ReadResource("aws-native:appsync:Api", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Api resources. +type apiState struct { +} + +type ApiState struct { +} + +func (ApiState) ElementType() reflect.Type { + return reflect.TypeOf((*apiState)(nil)).Elem() +} + +type apiArgs struct { + EventConfig *ApiEventConfig `pulumi:"eventConfig"` + Name *string `pulumi:"name"` + OwnerContact *string `pulumi:"ownerContact"` + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Api resource. +type ApiArgs struct { + EventConfig ApiEventConfigPtrInput + Name pulumi.StringPtrInput + OwnerContact pulumi.StringPtrInput + Tags aws.TagArrayInput +} + +func (ApiArgs) ElementType() reflect.Type { + return reflect.TypeOf((*apiArgs)(nil)).Elem() +} + +type ApiInput interface { + pulumi.Input + + ToApiOutput() ApiOutput + ToApiOutputWithContext(ctx context.Context) ApiOutput +} + +func (*Api) ElementType() reflect.Type { + return reflect.TypeOf((**Api)(nil)).Elem() +} + +func (i *Api) ToApiOutput() ApiOutput { + return i.ToApiOutputWithContext(context.Background()) +} + +func (i *Api) ToApiOutputWithContext(ctx context.Context) ApiOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiOutput) +} + +type ApiOutput struct{ *pulumi.OutputState } + +func (ApiOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Api)(nil)).Elem() +} + +func (o ApiOutput) ToApiOutput() ApiOutput { + return o +} + +func (o ApiOutput) ToApiOutputWithContext(ctx context.Context) ApiOutput { + return o +} + +// The Amazon Resource Name (ARN) of the AppSync Api +func (o ApiOutput) ApiArn() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.ApiArn }).(pulumi.StringOutput) +} + +// The unique identifier for the AppSync Api generated by the service +func (o ApiOutput) ApiId() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.ApiId }).(pulumi.StringOutput) +} + +func (o ApiOutput) Dns() pulumi.StringMapOutput { + return o.ApplyT(func(v *Api) pulumi.StringMapOutput { return v.Dns }).(pulumi.StringMapOutput) +} + +func (o ApiOutput) EventConfig() ApiEventConfigPtrOutput { + return o.ApplyT(func(v *Api) ApiEventConfigPtrOutput { return v.EventConfig }).(ApiEventConfigPtrOutput) +} + +func (o ApiOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Api) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o ApiOutput) OwnerContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Api) pulumi.StringPtrOutput { return v.OwnerContact }).(pulumi.StringPtrOutput) +} + +func (o ApiOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Api) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApiInput)(nil)).Elem(), &Api{}) + pulumi.RegisterOutputType(ApiOutput{}) +} diff --git a/sdk/go/aws/appsync/getApi.go b/sdk/go/aws/appsync/getApi.go new file mode 100644 index 0000000000..55cbf2b8c3 --- /dev/null +++ b/sdk/go/aws/appsync/getApi.go @@ -0,0 +1,117 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package appsync + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource schema for AppSync Api +func LookupApi(ctx *pulumi.Context, args *LookupApiArgs, opts ...pulumi.InvokeOption) (*LookupApiResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApiResult + err := ctx.Invoke("aws-native:appsync:getApi", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupApiArgs struct { + // The Amazon Resource Name (ARN) of the AppSync Api + ApiArn string `pulumi:"apiArn"` +} + +type LookupApiResult struct { + // The Amazon Resource Name (ARN) of the AppSync Api + ApiArn *string `pulumi:"apiArn"` + // The unique identifier for the AppSync Api generated by the service + ApiId *string `pulumi:"apiId"` + Dns map[string]string `pulumi:"dns"` + EventConfig *ApiEventConfig `pulumi:"eventConfig"` + Name *string `pulumi:"name"` + OwnerContact *string `pulumi:"ownerContact"` + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupApiOutput(ctx *pulumi.Context, args LookupApiOutputArgs, opts ...pulumi.InvokeOption) LookupApiResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupApiResultOutput, error) { + args := v.(LookupApiArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApiResult + secret, err := ctx.InvokePackageRaw("aws-native:appsync:getApi", args, &rv, "", opts...) + if err != nil { + return LookupApiResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupApiResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupApiResultOutput), nil + } + return output, nil + }).(LookupApiResultOutput) +} + +type LookupApiOutputArgs struct { + // The Amazon Resource Name (ARN) of the AppSync Api + ApiArn pulumi.StringInput `pulumi:"apiArn"` +} + +func (LookupApiOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApiArgs)(nil)).Elem() +} + +type LookupApiResultOutput struct{ *pulumi.OutputState } + +func (LookupApiResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApiResult)(nil)).Elem() +} + +func (o LookupApiResultOutput) ToLookupApiResultOutput() LookupApiResultOutput { + return o +} + +func (o LookupApiResultOutput) ToLookupApiResultOutputWithContext(ctx context.Context) LookupApiResultOutput { + return o +} + +// The Amazon Resource Name (ARN) of the AppSync Api +func (o LookupApiResultOutput) ApiArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApiResult) *string { return v.ApiArn }).(pulumi.StringPtrOutput) +} + +// The unique identifier for the AppSync Api generated by the service +func (o LookupApiResultOutput) ApiId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApiResult) *string { return v.ApiId }).(pulumi.StringPtrOutput) +} + +func (o LookupApiResultOutput) Dns() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupApiResult) map[string]string { return v.Dns }).(pulumi.StringMapOutput) +} + +func (o LookupApiResultOutput) EventConfig() ApiEventConfigPtrOutput { + return o.ApplyT(func(v LookupApiResult) *ApiEventConfig { return v.EventConfig }).(ApiEventConfigPtrOutput) +} + +func (o LookupApiResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApiResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o LookupApiResultOutput) OwnerContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApiResult) *string { return v.OwnerContact }).(pulumi.StringPtrOutput) +} + +func (o LookupApiResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupApiResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupApiResultOutput{}) +} diff --git a/sdk/go/aws/appsync/init.go b/sdk/go/aws/appsync/init.go index c47ee78056..e2f8f396b7 100644 --- a/sdk/go/aws/appsync/init.go +++ b/sdk/go/aws/appsync/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-native:appsync:Api": + r = &Api{} case "aws-native:appsync:DataSource": r = &DataSource{} case "aws-native:appsync:DomainName": diff --git a/sdk/go/aws/appsync/pulumiEnums.go b/sdk/go/aws/appsync/pulumiEnums.go index 04ff80efc3..5cca04dd51 100644 --- a/sdk/go/aws/appsync/pulumiEnums.go +++ b/sdk/go/aws/appsync/pulumiEnums.go @@ -10,6 +10,350 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Security configuration for your AppSync API. +type ApiAuthenticationType string + +const ( + ApiAuthenticationTypeAmazonCognitoUserPools = ApiAuthenticationType("AMAZON_COGNITO_USER_POOLS") + ApiAuthenticationTypeAwsIam = ApiAuthenticationType("AWS_IAM") + ApiAuthenticationTypeApiKey = ApiAuthenticationType("API_KEY") + ApiAuthenticationTypeOpenidConnect = ApiAuthenticationType("OPENID_CONNECT") + ApiAuthenticationTypeAwsLambda = ApiAuthenticationType("AWS_LAMBDA") +) + +func (ApiAuthenticationType) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthenticationType)(nil)).Elem() +} + +func (e ApiAuthenticationType) ToApiAuthenticationTypeOutput() ApiAuthenticationTypeOutput { + return pulumi.ToOutput(e).(ApiAuthenticationTypeOutput) +} + +func (e ApiAuthenticationType) ToApiAuthenticationTypeOutputWithContext(ctx context.Context) ApiAuthenticationTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(ApiAuthenticationTypeOutput) +} + +func (e ApiAuthenticationType) ToApiAuthenticationTypePtrOutput() ApiAuthenticationTypePtrOutput { + return e.ToApiAuthenticationTypePtrOutputWithContext(context.Background()) +} + +func (e ApiAuthenticationType) ToApiAuthenticationTypePtrOutputWithContext(ctx context.Context) ApiAuthenticationTypePtrOutput { + return ApiAuthenticationType(e).ToApiAuthenticationTypeOutputWithContext(ctx).ToApiAuthenticationTypePtrOutputWithContext(ctx) +} + +func (e ApiAuthenticationType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApiAuthenticationType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApiAuthenticationType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e ApiAuthenticationType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type ApiAuthenticationTypeOutput struct{ *pulumi.OutputState } + +func (ApiAuthenticationTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthenticationType)(nil)).Elem() +} + +func (o ApiAuthenticationTypeOutput) ToApiAuthenticationTypeOutput() ApiAuthenticationTypeOutput { + return o +} + +func (o ApiAuthenticationTypeOutput) ToApiAuthenticationTypeOutputWithContext(ctx context.Context) ApiAuthenticationTypeOutput { + return o +} + +func (o ApiAuthenticationTypeOutput) ToApiAuthenticationTypePtrOutput() ApiAuthenticationTypePtrOutput { + return o.ToApiAuthenticationTypePtrOutputWithContext(context.Background()) +} + +func (o ApiAuthenticationTypeOutput) ToApiAuthenticationTypePtrOutputWithContext(ctx context.Context) ApiAuthenticationTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiAuthenticationType) *ApiAuthenticationType { + return &v + }).(ApiAuthenticationTypePtrOutput) +} + +func (o ApiAuthenticationTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o ApiAuthenticationTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApiAuthenticationType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o ApiAuthenticationTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApiAuthenticationTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApiAuthenticationType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type ApiAuthenticationTypePtrOutput struct{ *pulumi.OutputState } + +func (ApiAuthenticationTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiAuthenticationType)(nil)).Elem() +} + +func (o ApiAuthenticationTypePtrOutput) ToApiAuthenticationTypePtrOutput() ApiAuthenticationTypePtrOutput { + return o +} + +func (o ApiAuthenticationTypePtrOutput) ToApiAuthenticationTypePtrOutputWithContext(ctx context.Context) ApiAuthenticationTypePtrOutput { + return o +} + +func (o ApiAuthenticationTypePtrOutput) Elem() ApiAuthenticationTypeOutput { + return o.ApplyT(func(v *ApiAuthenticationType) ApiAuthenticationType { + if v != nil { + return *v + } + var ret ApiAuthenticationType + return ret + }).(ApiAuthenticationTypeOutput) +} + +func (o ApiAuthenticationTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApiAuthenticationTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *ApiAuthenticationType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// ApiAuthenticationTypeInput is an input type that accepts values of the ApiAuthenticationType enum +// A concrete instance of `ApiAuthenticationTypeInput` can be one of the following: +// +// ApiAuthenticationTypeAmazonCognitoUserPools +// ApiAuthenticationTypeAwsIam +// ApiAuthenticationTypeApiKey +// ApiAuthenticationTypeOpenidConnect +// ApiAuthenticationTypeAwsLambda +type ApiAuthenticationTypeInput interface { + pulumi.Input + + ToApiAuthenticationTypeOutput() ApiAuthenticationTypeOutput + ToApiAuthenticationTypeOutputWithContext(context.Context) ApiAuthenticationTypeOutput +} + +var apiAuthenticationTypePtrType = reflect.TypeOf((**ApiAuthenticationType)(nil)).Elem() + +type ApiAuthenticationTypePtrInput interface { + pulumi.Input + + ToApiAuthenticationTypePtrOutput() ApiAuthenticationTypePtrOutput + ToApiAuthenticationTypePtrOutputWithContext(context.Context) ApiAuthenticationTypePtrOutput +} + +type apiAuthenticationTypePtr string + +func ApiAuthenticationTypePtr(v string) ApiAuthenticationTypePtrInput { + return (*apiAuthenticationTypePtr)(&v) +} + +func (*apiAuthenticationTypePtr) ElementType() reflect.Type { + return apiAuthenticationTypePtrType +} + +func (in *apiAuthenticationTypePtr) ToApiAuthenticationTypePtrOutput() ApiAuthenticationTypePtrOutput { + return pulumi.ToOutput(in).(ApiAuthenticationTypePtrOutput) +} + +func (in *apiAuthenticationTypePtr) ToApiAuthenticationTypePtrOutputWithContext(ctx context.Context) ApiAuthenticationTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(ApiAuthenticationTypePtrOutput) +} + +// Logging level for the AppSync API. +type ApiEventLogLevel string + +const ( + ApiEventLogLevelNone = ApiEventLogLevel("NONE") + ApiEventLogLevelError = ApiEventLogLevel("ERROR") + ApiEventLogLevelAll = ApiEventLogLevel("ALL") + ApiEventLogLevelInfo = ApiEventLogLevel("INFO") + ApiEventLogLevelDebug = ApiEventLogLevel("DEBUG") +) + +func (ApiEventLogLevel) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventLogLevel)(nil)).Elem() +} + +func (e ApiEventLogLevel) ToApiEventLogLevelOutput() ApiEventLogLevelOutput { + return pulumi.ToOutput(e).(ApiEventLogLevelOutput) +} + +func (e ApiEventLogLevel) ToApiEventLogLevelOutputWithContext(ctx context.Context) ApiEventLogLevelOutput { + return pulumi.ToOutputWithContext(ctx, e).(ApiEventLogLevelOutput) +} + +func (e ApiEventLogLevel) ToApiEventLogLevelPtrOutput() ApiEventLogLevelPtrOutput { + return e.ToApiEventLogLevelPtrOutputWithContext(context.Background()) +} + +func (e ApiEventLogLevel) ToApiEventLogLevelPtrOutputWithContext(ctx context.Context) ApiEventLogLevelPtrOutput { + return ApiEventLogLevel(e).ToApiEventLogLevelOutputWithContext(ctx).ToApiEventLogLevelPtrOutputWithContext(ctx) +} + +func (e ApiEventLogLevel) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApiEventLogLevel) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApiEventLogLevel) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e ApiEventLogLevel) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type ApiEventLogLevelOutput struct{ *pulumi.OutputState } + +func (ApiEventLogLevelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventLogLevel)(nil)).Elem() +} + +func (o ApiEventLogLevelOutput) ToApiEventLogLevelOutput() ApiEventLogLevelOutput { + return o +} + +func (o ApiEventLogLevelOutput) ToApiEventLogLevelOutputWithContext(ctx context.Context) ApiEventLogLevelOutput { + return o +} + +func (o ApiEventLogLevelOutput) ToApiEventLogLevelPtrOutput() ApiEventLogLevelPtrOutput { + return o.ToApiEventLogLevelPtrOutputWithContext(context.Background()) +} + +func (o ApiEventLogLevelOutput) ToApiEventLogLevelPtrOutputWithContext(ctx context.Context) ApiEventLogLevelPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiEventLogLevel) *ApiEventLogLevel { + return &v + }).(ApiEventLogLevelPtrOutput) +} + +func (o ApiEventLogLevelOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o ApiEventLogLevelOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApiEventLogLevel) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o ApiEventLogLevelOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApiEventLogLevelOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApiEventLogLevel) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type ApiEventLogLevelPtrOutput struct{ *pulumi.OutputState } + +func (ApiEventLogLevelPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiEventLogLevel)(nil)).Elem() +} + +func (o ApiEventLogLevelPtrOutput) ToApiEventLogLevelPtrOutput() ApiEventLogLevelPtrOutput { + return o +} + +func (o ApiEventLogLevelPtrOutput) ToApiEventLogLevelPtrOutputWithContext(ctx context.Context) ApiEventLogLevelPtrOutput { + return o +} + +func (o ApiEventLogLevelPtrOutput) Elem() ApiEventLogLevelOutput { + return o.ApplyT(func(v *ApiEventLogLevel) ApiEventLogLevel { + if v != nil { + return *v + } + var ret ApiEventLogLevel + return ret + }).(ApiEventLogLevelOutput) +} + +func (o ApiEventLogLevelPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApiEventLogLevelPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *ApiEventLogLevel) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// ApiEventLogLevelInput is an input type that accepts values of the ApiEventLogLevel enum +// A concrete instance of `ApiEventLogLevelInput` can be one of the following: +// +// ApiEventLogLevelNone +// ApiEventLogLevelError +// ApiEventLogLevelAll +// ApiEventLogLevelInfo +// ApiEventLogLevelDebug +type ApiEventLogLevelInput interface { + pulumi.Input + + ToApiEventLogLevelOutput() ApiEventLogLevelOutput + ToApiEventLogLevelOutputWithContext(context.Context) ApiEventLogLevelOutput +} + +var apiEventLogLevelPtrType = reflect.TypeOf((**ApiEventLogLevel)(nil)).Elem() + +type ApiEventLogLevelPtrInput interface { + pulumi.Input + + ToApiEventLogLevelPtrOutput() ApiEventLogLevelPtrOutput + ToApiEventLogLevelPtrOutputWithContext(context.Context) ApiEventLogLevelPtrOutput +} + +type apiEventLogLevelPtr string + +func ApiEventLogLevelPtr(v string) ApiEventLogLevelPtrInput { + return (*apiEventLogLevelPtr)(&v) +} + +func (*apiEventLogLevelPtr) ElementType() reflect.Type { + return apiEventLogLevelPtrType +} + +func (in *apiEventLogLevelPtr) ToApiEventLogLevelPtrOutput() ApiEventLogLevelPtrOutput { + return pulumi.ToOutput(in).(ApiEventLogLevelPtrOutput) +} + +func (in *apiEventLogLevelPtr) ToApiEventLogLevelPtrOutputWithContext(ctx context.Context) ApiEventLogLevelPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(ApiEventLogLevelPtrOutput) +} + // Enables or disables enhanced data source metrics for specified data sources. Note that `MetricsConfig` won't be used unless the `dataSourceLevelMetricsBehavior` value is set to `PER_DATA_SOURCE_METRICS` . If the `dataSourceLevelMetricsBehavior` is set to `FULL_REQUEST_DATA_SOURCE_METRICS` instead, `MetricsConfig` will be ignored. However, you can still set its value. // // `MetricsConfig` can be `ENABLED` or `DISABLED` . @@ -608,12 +952,20 @@ func (o SourceApiAssociationStatusPtrOutput) ToStringPtrOutputWithContext(ctx co } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthenticationTypeInput)(nil)).Elem(), ApiAuthenticationType("AMAZON_COGNITO_USER_POOLS")) + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthenticationTypePtrInput)(nil)).Elem(), ApiAuthenticationType("AMAZON_COGNITO_USER_POOLS")) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventLogLevelInput)(nil)).Elem(), ApiEventLogLevel("NONE")) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventLogLevelPtrInput)(nil)).Elem(), ApiEventLogLevel("NONE")) pulumi.RegisterInputType(reflect.TypeOf((*DataSourceMetricsConfigInput)(nil)).Elem(), DataSourceMetricsConfig("DISABLED")) pulumi.RegisterInputType(reflect.TypeOf((*DataSourceMetricsConfigPtrInput)(nil)).Elem(), DataSourceMetricsConfig("DISABLED")) pulumi.RegisterInputType(reflect.TypeOf((*ResolverMetricsConfigInput)(nil)).Elem(), ResolverMetricsConfig("ENABLED")) pulumi.RegisterInputType(reflect.TypeOf((*ResolverMetricsConfigPtrInput)(nil)).Elem(), ResolverMetricsConfig("ENABLED")) pulumi.RegisterInputType(reflect.TypeOf((*SourceApiAssociationConfigMergeTypeInput)(nil)).Elem(), SourceApiAssociationConfigMergeType("AUTO_MERGE")) pulumi.RegisterInputType(reflect.TypeOf((*SourceApiAssociationConfigMergeTypePtrInput)(nil)).Elem(), SourceApiAssociationConfigMergeType("AUTO_MERGE")) + pulumi.RegisterOutputType(ApiAuthenticationTypeOutput{}) + pulumi.RegisterOutputType(ApiAuthenticationTypePtrOutput{}) + pulumi.RegisterOutputType(ApiEventLogLevelOutput{}) + pulumi.RegisterOutputType(ApiEventLogLevelPtrOutput{}) pulumi.RegisterOutputType(DataSourceMetricsConfigOutput{}) pulumi.RegisterOutputType(DataSourceMetricsConfigPtrOutput{}) pulumi.RegisterOutputType(ResolverMetricsConfigOutput{}) diff --git a/sdk/go/aws/appsync/pulumiTypes.go b/sdk/go/aws/appsync/pulumiTypes.go index d085469f5e..5aef6cae62 100644 --- a/sdk/go/aws/appsync/pulumiTypes.go +++ b/sdk/go/aws/appsync/pulumiTypes.go @@ -13,6 +13,1086 @@ import ( var _ = internal.GetEnvOrDefault +// An auth mode. +type ApiAuthMode struct { + AuthType *ApiAuthenticationType `pulumi:"authType"` +} + +// ApiAuthModeInput is an input type that accepts ApiAuthModeArgs and ApiAuthModeOutput values. +// You can construct a concrete instance of `ApiAuthModeInput` via: +// +// ApiAuthModeArgs{...} +type ApiAuthModeInput interface { + pulumi.Input + + ToApiAuthModeOutput() ApiAuthModeOutput + ToApiAuthModeOutputWithContext(context.Context) ApiAuthModeOutput +} + +// An auth mode. +type ApiAuthModeArgs struct { + AuthType ApiAuthenticationTypePtrInput `pulumi:"authType"` +} + +func (ApiAuthModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthMode)(nil)).Elem() +} + +func (i ApiAuthModeArgs) ToApiAuthModeOutput() ApiAuthModeOutput { + return i.ToApiAuthModeOutputWithContext(context.Background()) +} + +func (i ApiAuthModeArgs) ToApiAuthModeOutputWithContext(ctx context.Context) ApiAuthModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiAuthModeOutput) +} + +// ApiAuthModeArrayInput is an input type that accepts ApiAuthModeArray and ApiAuthModeArrayOutput values. +// You can construct a concrete instance of `ApiAuthModeArrayInput` via: +// +// ApiAuthModeArray{ ApiAuthModeArgs{...} } +type ApiAuthModeArrayInput interface { + pulumi.Input + + ToApiAuthModeArrayOutput() ApiAuthModeArrayOutput + ToApiAuthModeArrayOutputWithContext(context.Context) ApiAuthModeArrayOutput +} + +type ApiAuthModeArray []ApiAuthModeInput + +func (ApiAuthModeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiAuthMode)(nil)).Elem() +} + +func (i ApiAuthModeArray) ToApiAuthModeArrayOutput() ApiAuthModeArrayOutput { + return i.ToApiAuthModeArrayOutputWithContext(context.Background()) +} + +func (i ApiAuthModeArray) ToApiAuthModeArrayOutputWithContext(ctx context.Context) ApiAuthModeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiAuthModeArrayOutput) +} + +// An auth mode. +type ApiAuthModeOutput struct{ *pulumi.OutputState } + +func (ApiAuthModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthMode)(nil)).Elem() +} + +func (o ApiAuthModeOutput) ToApiAuthModeOutput() ApiAuthModeOutput { + return o +} + +func (o ApiAuthModeOutput) ToApiAuthModeOutputWithContext(ctx context.Context) ApiAuthModeOutput { + return o +} + +func (o ApiAuthModeOutput) AuthType() ApiAuthenticationTypePtrOutput { + return o.ApplyT(func(v ApiAuthMode) *ApiAuthenticationType { return v.AuthType }).(ApiAuthenticationTypePtrOutput) +} + +type ApiAuthModeArrayOutput struct{ *pulumi.OutputState } + +func (ApiAuthModeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiAuthMode)(nil)).Elem() +} + +func (o ApiAuthModeArrayOutput) ToApiAuthModeArrayOutput() ApiAuthModeArrayOutput { + return o +} + +func (o ApiAuthModeArrayOutput) ToApiAuthModeArrayOutputWithContext(ctx context.Context) ApiAuthModeArrayOutput { + return o +} + +func (o ApiAuthModeArrayOutput) Index(i pulumi.IntInput) ApiAuthModeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApiAuthMode { + return vs[0].([]ApiAuthMode)[vs[1].(int)] + }).(ApiAuthModeOutput) +} + +// An auth provider for the AppSync API. +type ApiAuthProvider struct { + AuthType ApiAuthenticationType `pulumi:"authType"` + CognitoConfig *ApiCognitoConfig `pulumi:"cognitoConfig"` + LambdaAuthorizerConfig *ApiLambdaAuthorizerConfig `pulumi:"lambdaAuthorizerConfig"` + OpenIdConnectConfig *ApiOpenIdConnectConfig `pulumi:"openIdConnectConfig"` +} + +// ApiAuthProviderInput is an input type that accepts ApiAuthProviderArgs and ApiAuthProviderOutput values. +// You can construct a concrete instance of `ApiAuthProviderInput` via: +// +// ApiAuthProviderArgs{...} +type ApiAuthProviderInput interface { + pulumi.Input + + ToApiAuthProviderOutput() ApiAuthProviderOutput + ToApiAuthProviderOutputWithContext(context.Context) ApiAuthProviderOutput +} + +// An auth provider for the AppSync API. +type ApiAuthProviderArgs struct { + AuthType ApiAuthenticationTypeInput `pulumi:"authType"` + CognitoConfig ApiCognitoConfigPtrInput `pulumi:"cognitoConfig"` + LambdaAuthorizerConfig ApiLambdaAuthorizerConfigPtrInput `pulumi:"lambdaAuthorizerConfig"` + OpenIdConnectConfig ApiOpenIdConnectConfigPtrInput `pulumi:"openIdConnectConfig"` +} + +func (ApiAuthProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthProvider)(nil)).Elem() +} + +func (i ApiAuthProviderArgs) ToApiAuthProviderOutput() ApiAuthProviderOutput { + return i.ToApiAuthProviderOutputWithContext(context.Background()) +} + +func (i ApiAuthProviderArgs) ToApiAuthProviderOutputWithContext(ctx context.Context) ApiAuthProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiAuthProviderOutput) +} + +// ApiAuthProviderArrayInput is an input type that accepts ApiAuthProviderArray and ApiAuthProviderArrayOutput values. +// You can construct a concrete instance of `ApiAuthProviderArrayInput` via: +// +// ApiAuthProviderArray{ ApiAuthProviderArgs{...} } +type ApiAuthProviderArrayInput interface { + pulumi.Input + + ToApiAuthProviderArrayOutput() ApiAuthProviderArrayOutput + ToApiAuthProviderArrayOutputWithContext(context.Context) ApiAuthProviderArrayOutput +} + +type ApiAuthProviderArray []ApiAuthProviderInput + +func (ApiAuthProviderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiAuthProvider)(nil)).Elem() +} + +func (i ApiAuthProviderArray) ToApiAuthProviderArrayOutput() ApiAuthProviderArrayOutput { + return i.ToApiAuthProviderArrayOutputWithContext(context.Background()) +} + +func (i ApiAuthProviderArray) ToApiAuthProviderArrayOutputWithContext(ctx context.Context) ApiAuthProviderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiAuthProviderArrayOutput) +} + +// An auth provider for the AppSync API. +type ApiAuthProviderOutput struct{ *pulumi.OutputState } + +func (ApiAuthProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiAuthProvider)(nil)).Elem() +} + +func (o ApiAuthProviderOutput) ToApiAuthProviderOutput() ApiAuthProviderOutput { + return o +} + +func (o ApiAuthProviderOutput) ToApiAuthProviderOutputWithContext(ctx context.Context) ApiAuthProviderOutput { + return o +} + +func (o ApiAuthProviderOutput) AuthType() ApiAuthenticationTypeOutput { + return o.ApplyT(func(v ApiAuthProvider) ApiAuthenticationType { return v.AuthType }).(ApiAuthenticationTypeOutput) +} + +func (o ApiAuthProviderOutput) CognitoConfig() ApiCognitoConfigPtrOutput { + return o.ApplyT(func(v ApiAuthProvider) *ApiCognitoConfig { return v.CognitoConfig }).(ApiCognitoConfigPtrOutput) +} + +func (o ApiAuthProviderOutput) LambdaAuthorizerConfig() ApiLambdaAuthorizerConfigPtrOutput { + return o.ApplyT(func(v ApiAuthProvider) *ApiLambdaAuthorizerConfig { return v.LambdaAuthorizerConfig }).(ApiLambdaAuthorizerConfigPtrOutput) +} + +func (o ApiAuthProviderOutput) OpenIdConnectConfig() ApiOpenIdConnectConfigPtrOutput { + return o.ApplyT(func(v ApiAuthProvider) *ApiOpenIdConnectConfig { return v.OpenIdConnectConfig }).(ApiOpenIdConnectConfigPtrOutput) +} + +type ApiAuthProviderArrayOutput struct{ *pulumi.OutputState } + +func (ApiAuthProviderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApiAuthProvider)(nil)).Elem() +} + +func (o ApiAuthProviderArrayOutput) ToApiAuthProviderArrayOutput() ApiAuthProviderArrayOutput { + return o +} + +func (o ApiAuthProviderArrayOutput) ToApiAuthProviderArrayOutputWithContext(ctx context.Context) ApiAuthProviderArrayOutput { + return o +} + +func (o ApiAuthProviderArrayOutput) Index(i pulumi.IntInput) ApiAuthProviderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApiAuthProvider { + return vs[0].([]ApiAuthProvider)[vs[1].(int)] + }).(ApiAuthProviderOutput) +} + +// Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. +type ApiCognitoConfig struct { + AppIdClientRegex *string `pulumi:"appIdClientRegex"` + AwsRegion string `pulumi:"awsRegion"` + UserPoolId string `pulumi:"userPoolId"` +} + +// ApiCognitoConfigInput is an input type that accepts ApiCognitoConfigArgs and ApiCognitoConfigOutput values. +// You can construct a concrete instance of `ApiCognitoConfigInput` via: +// +// ApiCognitoConfigArgs{...} +type ApiCognitoConfigInput interface { + pulumi.Input + + ToApiCognitoConfigOutput() ApiCognitoConfigOutput + ToApiCognitoConfigOutputWithContext(context.Context) ApiCognitoConfigOutput +} + +// Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. +type ApiCognitoConfigArgs struct { + AppIdClientRegex pulumi.StringPtrInput `pulumi:"appIdClientRegex"` + AwsRegion pulumi.StringInput `pulumi:"awsRegion"` + UserPoolId pulumi.StringInput `pulumi:"userPoolId"` +} + +func (ApiCognitoConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiCognitoConfig)(nil)).Elem() +} + +func (i ApiCognitoConfigArgs) ToApiCognitoConfigOutput() ApiCognitoConfigOutput { + return i.ToApiCognitoConfigOutputWithContext(context.Background()) +} + +func (i ApiCognitoConfigArgs) ToApiCognitoConfigOutputWithContext(ctx context.Context) ApiCognitoConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiCognitoConfigOutput) +} + +func (i ApiCognitoConfigArgs) ToApiCognitoConfigPtrOutput() ApiCognitoConfigPtrOutput { + return i.ToApiCognitoConfigPtrOutputWithContext(context.Background()) +} + +func (i ApiCognitoConfigArgs) ToApiCognitoConfigPtrOutputWithContext(ctx context.Context) ApiCognitoConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiCognitoConfigOutput).ToApiCognitoConfigPtrOutputWithContext(ctx) +} + +// ApiCognitoConfigPtrInput is an input type that accepts ApiCognitoConfigArgs, ApiCognitoConfigPtr and ApiCognitoConfigPtrOutput values. +// You can construct a concrete instance of `ApiCognitoConfigPtrInput` via: +// +// ApiCognitoConfigArgs{...} +// +// or: +// +// nil +type ApiCognitoConfigPtrInput interface { + pulumi.Input + + ToApiCognitoConfigPtrOutput() ApiCognitoConfigPtrOutput + ToApiCognitoConfigPtrOutputWithContext(context.Context) ApiCognitoConfigPtrOutput +} + +type apiCognitoConfigPtrType ApiCognitoConfigArgs + +func ApiCognitoConfigPtr(v *ApiCognitoConfigArgs) ApiCognitoConfigPtrInput { + return (*apiCognitoConfigPtrType)(v) +} + +func (*apiCognitoConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApiCognitoConfig)(nil)).Elem() +} + +func (i *apiCognitoConfigPtrType) ToApiCognitoConfigPtrOutput() ApiCognitoConfigPtrOutput { + return i.ToApiCognitoConfigPtrOutputWithContext(context.Background()) +} + +func (i *apiCognitoConfigPtrType) ToApiCognitoConfigPtrOutputWithContext(ctx context.Context) ApiCognitoConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiCognitoConfigPtrOutput) +} + +// Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. +type ApiCognitoConfigOutput struct{ *pulumi.OutputState } + +func (ApiCognitoConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiCognitoConfig)(nil)).Elem() +} + +func (o ApiCognitoConfigOutput) ToApiCognitoConfigOutput() ApiCognitoConfigOutput { + return o +} + +func (o ApiCognitoConfigOutput) ToApiCognitoConfigOutputWithContext(ctx context.Context) ApiCognitoConfigOutput { + return o +} + +func (o ApiCognitoConfigOutput) ToApiCognitoConfigPtrOutput() ApiCognitoConfigPtrOutput { + return o.ToApiCognitoConfigPtrOutputWithContext(context.Background()) +} + +func (o ApiCognitoConfigOutput) ToApiCognitoConfigPtrOutputWithContext(ctx context.Context) ApiCognitoConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiCognitoConfig) *ApiCognitoConfig { + return &v + }).(ApiCognitoConfigPtrOutput) +} + +func (o ApiCognitoConfigOutput) AppIdClientRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiCognitoConfig) *string { return v.AppIdClientRegex }).(pulumi.StringPtrOutput) +} + +func (o ApiCognitoConfigOutput) AwsRegion() pulumi.StringOutput { + return o.ApplyT(func(v ApiCognitoConfig) string { return v.AwsRegion }).(pulumi.StringOutput) +} + +func (o ApiCognitoConfigOutput) UserPoolId() pulumi.StringOutput { + return o.ApplyT(func(v ApiCognitoConfig) string { return v.UserPoolId }).(pulumi.StringOutput) +} + +type ApiCognitoConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApiCognitoConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiCognitoConfig)(nil)).Elem() +} + +func (o ApiCognitoConfigPtrOutput) ToApiCognitoConfigPtrOutput() ApiCognitoConfigPtrOutput { + return o +} + +func (o ApiCognitoConfigPtrOutput) ToApiCognitoConfigPtrOutputWithContext(ctx context.Context) ApiCognitoConfigPtrOutput { + return o +} + +func (o ApiCognitoConfigPtrOutput) Elem() ApiCognitoConfigOutput { + return o.ApplyT(func(v *ApiCognitoConfig) ApiCognitoConfig { + if v != nil { + return *v + } + var ret ApiCognitoConfig + return ret + }).(ApiCognitoConfigOutput) +} + +func (o ApiCognitoConfigPtrOutput) AppIdClientRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiCognitoConfig) *string { + if v == nil { + return nil + } + return v.AppIdClientRegex + }).(pulumi.StringPtrOutput) +} + +func (o ApiCognitoConfigPtrOutput) AwsRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiCognitoConfig) *string { + if v == nil { + return nil + } + return &v.AwsRegion + }).(pulumi.StringPtrOutput) +} + +func (o ApiCognitoConfigPtrOutput) UserPoolId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiCognitoConfig) *string { + if v == nil { + return nil + } + return &v.UserPoolId + }).(pulumi.StringPtrOutput) +} + +// The configuration for an Event Api +type ApiEventConfig struct { + AuthProviders []ApiAuthProvider `pulumi:"authProviders"` + ConnectionAuthModes []ApiAuthMode `pulumi:"connectionAuthModes"` + DefaultPublishAuthModes []ApiAuthMode `pulumi:"defaultPublishAuthModes"` + DefaultSubscribeAuthModes []ApiAuthMode `pulumi:"defaultSubscribeAuthModes"` + LogConfig *ApiEventLogConfig `pulumi:"logConfig"` +} + +// ApiEventConfigInput is an input type that accepts ApiEventConfigArgs and ApiEventConfigOutput values. +// You can construct a concrete instance of `ApiEventConfigInput` via: +// +// ApiEventConfigArgs{...} +type ApiEventConfigInput interface { + pulumi.Input + + ToApiEventConfigOutput() ApiEventConfigOutput + ToApiEventConfigOutputWithContext(context.Context) ApiEventConfigOutput +} + +// The configuration for an Event Api +type ApiEventConfigArgs struct { + AuthProviders ApiAuthProviderArrayInput `pulumi:"authProviders"` + ConnectionAuthModes ApiAuthModeArrayInput `pulumi:"connectionAuthModes"` + DefaultPublishAuthModes ApiAuthModeArrayInput `pulumi:"defaultPublishAuthModes"` + DefaultSubscribeAuthModes ApiAuthModeArrayInput `pulumi:"defaultSubscribeAuthModes"` + LogConfig ApiEventLogConfigPtrInput `pulumi:"logConfig"` +} + +func (ApiEventConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventConfig)(nil)).Elem() +} + +func (i ApiEventConfigArgs) ToApiEventConfigOutput() ApiEventConfigOutput { + return i.ToApiEventConfigOutputWithContext(context.Background()) +} + +func (i ApiEventConfigArgs) ToApiEventConfigOutputWithContext(ctx context.Context) ApiEventConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventConfigOutput) +} + +func (i ApiEventConfigArgs) ToApiEventConfigPtrOutput() ApiEventConfigPtrOutput { + return i.ToApiEventConfigPtrOutputWithContext(context.Background()) +} + +func (i ApiEventConfigArgs) ToApiEventConfigPtrOutputWithContext(ctx context.Context) ApiEventConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventConfigOutput).ToApiEventConfigPtrOutputWithContext(ctx) +} + +// ApiEventConfigPtrInput is an input type that accepts ApiEventConfigArgs, ApiEventConfigPtr and ApiEventConfigPtrOutput values. +// You can construct a concrete instance of `ApiEventConfigPtrInput` via: +// +// ApiEventConfigArgs{...} +// +// or: +// +// nil +type ApiEventConfigPtrInput interface { + pulumi.Input + + ToApiEventConfigPtrOutput() ApiEventConfigPtrOutput + ToApiEventConfigPtrOutputWithContext(context.Context) ApiEventConfigPtrOutput +} + +type apiEventConfigPtrType ApiEventConfigArgs + +func ApiEventConfigPtr(v *ApiEventConfigArgs) ApiEventConfigPtrInput { + return (*apiEventConfigPtrType)(v) +} + +func (*apiEventConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApiEventConfig)(nil)).Elem() +} + +func (i *apiEventConfigPtrType) ToApiEventConfigPtrOutput() ApiEventConfigPtrOutput { + return i.ToApiEventConfigPtrOutputWithContext(context.Background()) +} + +func (i *apiEventConfigPtrType) ToApiEventConfigPtrOutputWithContext(ctx context.Context) ApiEventConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventConfigPtrOutput) +} + +// The configuration for an Event Api +type ApiEventConfigOutput struct{ *pulumi.OutputState } + +func (ApiEventConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventConfig)(nil)).Elem() +} + +func (o ApiEventConfigOutput) ToApiEventConfigOutput() ApiEventConfigOutput { + return o +} + +func (o ApiEventConfigOutput) ToApiEventConfigOutputWithContext(ctx context.Context) ApiEventConfigOutput { + return o +} + +func (o ApiEventConfigOutput) ToApiEventConfigPtrOutput() ApiEventConfigPtrOutput { + return o.ToApiEventConfigPtrOutputWithContext(context.Background()) +} + +func (o ApiEventConfigOutput) ToApiEventConfigPtrOutputWithContext(ctx context.Context) ApiEventConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiEventConfig) *ApiEventConfig { + return &v + }).(ApiEventConfigPtrOutput) +} + +func (o ApiEventConfigOutput) AuthProviders() ApiAuthProviderArrayOutput { + return o.ApplyT(func(v ApiEventConfig) []ApiAuthProvider { return v.AuthProviders }).(ApiAuthProviderArrayOutput) +} + +func (o ApiEventConfigOutput) ConnectionAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v ApiEventConfig) []ApiAuthMode { return v.ConnectionAuthModes }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigOutput) DefaultPublishAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v ApiEventConfig) []ApiAuthMode { return v.DefaultPublishAuthModes }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigOutput) DefaultSubscribeAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v ApiEventConfig) []ApiAuthMode { return v.DefaultSubscribeAuthModes }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigOutput) LogConfig() ApiEventLogConfigPtrOutput { + return o.ApplyT(func(v ApiEventConfig) *ApiEventLogConfig { return v.LogConfig }).(ApiEventLogConfigPtrOutput) +} + +type ApiEventConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApiEventConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiEventConfig)(nil)).Elem() +} + +func (o ApiEventConfigPtrOutput) ToApiEventConfigPtrOutput() ApiEventConfigPtrOutput { + return o +} + +func (o ApiEventConfigPtrOutput) ToApiEventConfigPtrOutputWithContext(ctx context.Context) ApiEventConfigPtrOutput { + return o +} + +func (o ApiEventConfigPtrOutput) Elem() ApiEventConfigOutput { + return o.ApplyT(func(v *ApiEventConfig) ApiEventConfig { + if v != nil { + return *v + } + var ret ApiEventConfig + return ret + }).(ApiEventConfigOutput) +} + +func (o ApiEventConfigPtrOutput) AuthProviders() ApiAuthProviderArrayOutput { + return o.ApplyT(func(v *ApiEventConfig) []ApiAuthProvider { + if v == nil { + return nil + } + return v.AuthProviders + }).(ApiAuthProviderArrayOutput) +} + +func (o ApiEventConfigPtrOutput) ConnectionAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v *ApiEventConfig) []ApiAuthMode { + if v == nil { + return nil + } + return v.ConnectionAuthModes + }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigPtrOutput) DefaultPublishAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v *ApiEventConfig) []ApiAuthMode { + if v == nil { + return nil + } + return v.DefaultPublishAuthModes + }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigPtrOutput) DefaultSubscribeAuthModes() ApiAuthModeArrayOutput { + return o.ApplyT(func(v *ApiEventConfig) []ApiAuthMode { + if v == nil { + return nil + } + return v.DefaultSubscribeAuthModes + }).(ApiAuthModeArrayOutput) +} + +func (o ApiEventConfigPtrOutput) LogConfig() ApiEventLogConfigPtrOutput { + return o.ApplyT(func(v *ApiEventConfig) *ApiEventLogConfig { + if v == nil { + return nil + } + return v.LogConfig + }).(ApiEventLogConfigPtrOutput) +} + +// The log config for the AppSync API. +type ApiEventLogConfig struct { + CloudWatchLogsRoleArn string `pulumi:"cloudWatchLogsRoleArn"` + LogLevel ApiEventLogLevel `pulumi:"logLevel"` +} + +// ApiEventLogConfigInput is an input type that accepts ApiEventLogConfigArgs and ApiEventLogConfigOutput values. +// You can construct a concrete instance of `ApiEventLogConfigInput` via: +// +// ApiEventLogConfigArgs{...} +type ApiEventLogConfigInput interface { + pulumi.Input + + ToApiEventLogConfigOutput() ApiEventLogConfigOutput + ToApiEventLogConfigOutputWithContext(context.Context) ApiEventLogConfigOutput +} + +// The log config for the AppSync API. +type ApiEventLogConfigArgs struct { + CloudWatchLogsRoleArn pulumi.StringInput `pulumi:"cloudWatchLogsRoleArn"` + LogLevel ApiEventLogLevelInput `pulumi:"logLevel"` +} + +func (ApiEventLogConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventLogConfig)(nil)).Elem() +} + +func (i ApiEventLogConfigArgs) ToApiEventLogConfigOutput() ApiEventLogConfigOutput { + return i.ToApiEventLogConfigOutputWithContext(context.Background()) +} + +func (i ApiEventLogConfigArgs) ToApiEventLogConfigOutputWithContext(ctx context.Context) ApiEventLogConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventLogConfigOutput) +} + +func (i ApiEventLogConfigArgs) ToApiEventLogConfigPtrOutput() ApiEventLogConfigPtrOutput { + return i.ToApiEventLogConfigPtrOutputWithContext(context.Background()) +} + +func (i ApiEventLogConfigArgs) ToApiEventLogConfigPtrOutputWithContext(ctx context.Context) ApiEventLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventLogConfigOutput).ToApiEventLogConfigPtrOutputWithContext(ctx) +} + +// ApiEventLogConfigPtrInput is an input type that accepts ApiEventLogConfigArgs, ApiEventLogConfigPtr and ApiEventLogConfigPtrOutput values. +// You can construct a concrete instance of `ApiEventLogConfigPtrInput` via: +// +// ApiEventLogConfigArgs{...} +// +// or: +// +// nil +type ApiEventLogConfigPtrInput interface { + pulumi.Input + + ToApiEventLogConfigPtrOutput() ApiEventLogConfigPtrOutput + ToApiEventLogConfigPtrOutputWithContext(context.Context) ApiEventLogConfigPtrOutput +} + +type apiEventLogConfigPtrType ApiEventLogConfigArgs + +func ApiEventLogConfigPtr(v *ApiEventLogConfigArgs) ApiEventLogConfigPtrInput { + return (*apiEventLogConfigPtrType)(v) +} + +func (*apiEventLogConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApiEventLogConfig)(nil)).Elem() +} + +func (i *apiEventLogConfigPtrType) ToApiEventLogConfigPtrOutput() ApiEventLogConfigPtrOutput { + return i.ToApiEventLogConfigPtrOutputWithContext(context.Background()) +} + +func (i *apiEventLogConfigPtrType) ToApiEventLogConfigPtrOutputWithContext(ctx context.Context) ApiEventLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiEventLogConfigPtrOutput) +} + +// The log config for the AppSync API. +type ApiEventLogConfigOutput struct{ *pulumi.OutputState } + +func (ApiEventLogConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiEventLogConfig)(nil)).Elem() +} + +func (o ApiEventLogConfigOutput) ToApiEventLogConfigOutput() ApiEventLogConfigOutput { + return o +} + +func (o ApiEventLogConfigOutput) ToApiEventLogConfigOutputWithContext(ctx context.Context) ApiEventLogConfigOutput { + return o +} + +func (o ApiEventLogConfigOutput) ToApiEventLogConfigPtrOutput() ApiEventLogConfigPtrOutput { + return o.ToApiEventLogConfigPtrOutputWithContext(context.Background()) +} + +func (o ApiEventLogConfigOutput) ToApiEventLogConfigPtrOutputWithContext(ctx context.Context) ApiEventLogConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiEventLogConfig) *ApiEventLogConfig { + return &v + }).(ApiEventLogConfigPtrOutput) +} + +func (o ApiEventLogConfigOutput) CloudWatchLogsRoleArn() pulumi.StringOutput { + return o.ApplyT(func(v ApiEventLogConfig) string { return v.CloudWatchLogsRoleArn }).(pulumi.StringOutput) +} + +func (o ApiEventLogConfigOutput) LogLevel() ApiEventLogLevelOutput { + return o.ApplyT(func(v ApiEventLogConfig) ApiEventLogLevel { return v.LogLevel }).(ApiEventLogLevelOutput) +} + +type ApiEventLogConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApiEventLogConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiEventLogConfig)(nil)).Elem() +} + +func (o ApiEventLogConfigPtrOutput) ToApiEventLogConfigPtrOutput() ApiEventLogConfigPtrOutput { + return o +} + +func (o ApiEventLogConfigPtrOutput) ToApiEventLogConfigPtrOutputWithContext(ctx context.Context) ApiEventLogConfigPtrOutput { + return o +} + +func (o ApiEventLogConfigPtrOutput) Elem() ApiEventLogConfigOutput { + return o.ApplyT(func(v *ApiEventLogConfig) ApiEventLogConfig { + if v != nil { + return *v + } + var ret ApiEventLogConfig + return ret + }).(ApiEventLogConfigOutput) +} + +func (o ApiEventLogConfigPtrOutput) CloudWatchLogsRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiEventLogConfig) *string { + if v == nil { + return nil + } + return &v.CloudWatchLogsRoleArn + }).(pulumi.StringPtrOutput) +} + +func (o ApiEventLogConfigPtrOutput) LogLevel() ApiEventLogLevelPtrOutput { + return o.ApplyT(func(v *ApiEventLogConfig) *ApiEventLogLevel { + if v == nil { + return nil + } + return &v.LogLevel + }).(ApiEventLogLevelPtrOutput) +} + +// A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. +type ApiLambdaAuthorizerConfig struct { + AuthorizerResultTtlInSeconds *int `pulumi:"authorizerResultTtlInSeconds"` + AuthorizerUri string `pulumi:"authorizerUri"` + IdentityValidationExpression *string `pulumi:"identityValidationExpression"` +} + +// ApiLambdaAuthorizerConfigInput is an input type that accepts ApiLambdaAuthorizerConfigArgs and ApiLambdaAuthorizerConfigOutput values. +// You can construct a concrete instance of `ApiLambdaAuthorizerConfigInput` via: +// +// ApiLambdaAuthorizerConfigArgs{...} +type ApiLambdaAuthorizerConfigInput interface { + pulumi.Input + + ToApiLambdaAuthorizerConfigOutput() ApiLambdaAuthorizerConfigOutput + ToApiLambdaAuthorizerConfigOutputWithContext(context.Context) ApiLambdaAuthorizerConfigOutput +} + +// A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. +type ApiLambdaAuthorizerConfigArgs struct { + AuthorizerResultTtlInSeconds pulumi.IntPtrInput `pulumi:"authorizerResultTtlInSeconds"` + AuthorizerUri pulumi.StringInput `pulumi:"authorizerUri"` + IdentityValidationExpression pulumi.StringPtrInput `pulumi:"identityValidationExpression"` +} + +func (ApiLambdaAuthorizerConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiLambdaAuthorizerConfig)(nil)).Elem() +} + +func (i ApiLambdaAuthorizerConfigArgs) ToApiLambdaAuthorizerConfigOutput() ApiLambdaAuthorizerConfigOutput { + return i.ToApiLambdaAuthorizerConfigOutputWithContext(context.Background()) +} + +func (i ApiLambdaAuthorizerConfigArgs) ToApiLambdaAuthorizerConfigOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiLambdaAuthorizerConfigOutput) +} + +func (i ApiLambdaAuthorizerConfigArgs) ToApiLambdaAuthorizerConfigPtrOutput() ApiLambdaAuthorizerConfigPtrOutput { + return i.ToApiLambdaAuthorizerConfigPtrOutputWithContext(context.Background()) +} + +func (i ApiLambdaAuthorizerConfigArgs) ToApiLambdaAuthorizerConfigPtrOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiLambdaAuthorizerConfigOutput).ToApiLambdaAuthorizerConfigPtrOutputWithContext(ctx) +} + +// ApiLambdaAuthorizerConfigPtrInput is an input type that accepts ApiLambdaAuthorizerConfigArgs, ApiLambdaAuthorizerConfigPtr and ApiLambdaAuthorizerConfigPtrOutput values. +// You can construct a concrete instance of `ApiLambdaAuthorizerConfigPtrInput` via: +// +// ApiLambdaAuthorizerConfigArgs{...} +// +// or: +// +// nil +type ApiLambdaAuthorizerConfigPtrInput interface { + pulumi.Input + + ToApiLambdaAuthorizerConfigPtrOutput() ApiLambdaAuthorizerConfigPtrOutput + ToApiLambdaAuthorizerConfigPtrOutputWithContext(context.Context) ApiLambdaAuthorizerConfigPtrOutput +} + +type apiLambdaAuthorizerConfigPtrType ApiLambdaAuthorizerConfigArgs + +func ApiLambdaAuthorizerConfigPtr(v *ApiLambdaAuthorizerConfigArgs) ApiLambdaAuthorizerConfigPtrInput { + return (*apiLambdaAuthorizerConfigPtrType)(v) +} + +func (*apiLambdaAuthorizerConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApiLambdaAuthorizerConfig)(nil)).Elem() +} + +func (i *apiLambdaAuthorizerConfigPtrType) ToApiLambdaAuthorizerConfigPtrOutput() ApiLambdaAuthorizerConfigPtrOutput { + return i.ToApiLambdaAuthorizerConfigPtrOutputWithContext(context.Background()) +} + +func (i *apiLambdaAuthorizerConfigPtrType) ToApiLambdaAuthorizerConfigPtrOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiLambdaAuthorizerConfigPtrOutput) +} + +// A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. +type ApiLambdaAuthorizerConfigOutput struct{ *pulumi.OutputState } + +func (ApiLambdaAuthorizerConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiLambdaAuthorizerConfig)(nil)).Elem() +} + +func (o ApiLambdaAuthorizerConfigOutput) ToApiLambdaAuthorizerConfigOutput() ApiLambdaAuthorizerConfigOutput { + return o +} + +func (o ApiLambdaAuthorizerConfigOutput) ToApiLambdaAuthorizerConfigOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigOutput { + return o +} + +func (o ApiLambdaAuthorizerConfigOutput) ToApiLambdaAuthorizerConfigPtrOutput() ApiLambdaAuthorizerConfigPtrOutput { + return o.ToApiLambdaAuthorizerConfigPtrOutputWithContext(context.Background()) +} + +func (o ApiLambdaAuthorizerConfigOutput) ToApiLambdaAuthorizerConfigPtrOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiLambdaAuthorizerConfig) *ApiLambdaAuthorizerConfig { + return &v + }).(ApiLambdaAuthorizerConfigPtrOutput) +} + +func (o ApiLambdaAuthorizerConfigOutput) AuthorizerResultTtlInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApiLambdaAuthorizerConfig) *int { return v.AuthorizerResultTtlInSeconds }).(pulumi.IntPtrOutput) +} + +func (o ApiLambdaAuthorizerConfigOutput) AuthorizerUri() pulumi.StringOutput { + return o.ApplyT(func(v ApiLambdaAuthorizerConfig) string { return v.AuthorizerUri }).(pulumi.StringOutput) +} + +func (o ApiLambdaAuthorizerConfigOutput) IdentityValidationExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiLambdaAuthorizerConfig) *string { return v.IdentityValidationExpression }).(pulumi.StringPtrOutput) +} + +type ApiLambdaAuthorizerConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApiLambdaAuthorizerConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiLambdaAuthorizerConfig)(nil)).Elem() +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) ToApiLambdaAuthorizerConfigPtrOutput() ApiLambdaAuthorizerConfigPtrOutput { + return o +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) ToApiLambdaAuthorizerConfigPtrOutputWithContext(ctx context.Context) ApiLambdaAuthorizerConfigPtrOutput { + return o +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) Elem() ApiLambdaAuthorizerConfigOutput { + return o.ApplyT(func(v *ApiLambdaAuthorizerConfig) ApiLambdaAuthorizerConfig { + if v != nil { + return *v + } + var ret ApiLambdaAuthorizerConfig + return ret + }).(ApiLambdaAuthorizerConfigOutput) +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) AuthorizerResultTtlInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApiLambdaAuthorizerConfig) *int { + if v == nil { + return nil + } + return v.AuthorizerResultTtlInSeconds + }).(pulumi.IntPtrOutput) +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) AuthorizerUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiLambdaAuthorizerConfig) *string { + if v == nil { + return nil + } + return &v.AuthorizerUri + }).(pulumi.StringPtrOutput) +} + +func (o ApiLambdaAuthorizerConfigPtrOutput) IdentityValidationExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiLambdaAuthorizerConfig) *string { + if v == nil { + return nil + } + return v.IdentityValidationExpression + }).(pulumi.StringPtrOutput) +} + +// The OpenID Connect configuration. +type ApiOpenIdConnectConfig struct { + AuthTtl *float64 `pulumi:"authTtl"` + ClientId *string `pulumi:"clientId"` + IatTtl *float64 `pulumi:"iatTtl"` + Issuer string `pulumi:"issuer"` +} + +// ApiOpenIdConnectConfigInput is an input type that accepts ApiOpenIdConnectConfigArgs and ApiOpenIdConnectConfigOutput values. +// You can construct a concrete instance of `ApiOpenIdConnectConfigInput` via: +// +// ApiOpenIdConnectConfigArgs{...} +type ApiOpenIdConnectConfigInput interface { + pulumi.Input + + ToApiOpenIdConnectConfigOutput() ApiOpenIdConnectConfigOutput + ToApiOpenIdConnectConfigOutputWithContext(context.Context) ApiOpenIdConnectConfigOutput +} + +// The OpenID Connect configuration. +type ApiOpenIdConnectConfigArgs struct { + AuthTtl pulumi.Float64PtrInput `pulumi:"authTtl"` + ClientId pulumi.StringPtrInput `pulumi:"clientId"` + IatTtl pulumi.Float64PtrInput `pulumi:"iatTtl"` + Issuer pulumi.StringInput `pulumi:"issuer"` +} + +func (ApiOpenIdConnectConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApiOpenIdConnectConfig)(nil)).Elem() +} + +func (i ApiOpenIdConnectConfigArgs) ToApiOpenIdConnectConfigOutput() ApiOpenIdConnectConfigOutput { + return i.ToApiOpenIdConnectConfigOutputWithContext(context.Background()) +} + +func (i ApiOpenIdConnectConfigArgs) ToApiOpenIdConnectConfigOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiOpenIdConnectConfigOutput) +} + +func (i ApiOpenIdConnectConfigArgs) ToApiOpenIdConnectConfigPtrOutput() ApiOpenIdConnectConfigPtrOutput { + return i.ToApiOpenIdConnectConfigPtrOutputWithContext(context.Background()) +} + +func (i ApiOpenIdConnectConfigArgs) ToApiOpenIdConnectConfigPtrOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiOpenIdConnectConfigOutput).ToApiOpenIdConnectConfigPtrOutputWithContext(ctx) +} + +// ApiOpenIdConnectConfigPtrInput is an input type that accepts ApiOpenIdConnectConfigArgs, ApiOpenIdConnectConfigPtr and ApiOpenIdConnectConfigPtrOutput values. +// You can construct a concrete instance of `ApiOpenIdConnectConfigPtrInput` via: +// +// ApiOpenIdConnectConfigArgs{...} +// +// or: +// +// nil +type ApiOpenIdConnectConfigPtrInput interface { + pulumi.Input + + ToApiOpenIdConnectConfigPtrOutput() ApiOpenIdConnectConfigPtrOutput + ToApiOpenIdConnectConfigPtrOutputWithContext(context.Context) ApiOpenIdConnectConfigPtrOutput +} + +type apiOpenIdConnectConfigPtrType ApiOpenIdConnectConfigArgs + +func ApiOpenIdConnectConfigPtr(v *ApiOpenIdConnectConfigArgs) ApiOpenIdConnectConfigPtrInput { + return (*apiOpenIdConnectConfigPtrType)(v) +} + +func (*apiOpenIdConnectConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApiOpenIdConnectConfig)(nil)).Elem() +} + +func (i *apiOpenIdConnectConfigPtrType) ToApiOpenIdConnectConfigPtrOutput() ApiOpenIdConnectConfigPtrOutput { + return i.ToApiOpenIdConnectConfigPtrOutputWithContext(context.Background()) +} + +func (i *apiOpenIdConnectConfigPtrType) ToApiOpenIdConnectConfigPtrOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApiOpenIdConnectConfigPtrOutput) +} + +// The OpenID Connect configuration. +type ApiOpenIdConnectConfigOutput struct{ *pulumi.OutputState } + +func (ApiOpenIdConnectConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApiOpenIdConnectConfig)(nil)).Elem() +} + +func (o ApiOpenIdConnectConfigOutput) ToApiOpenIdConnectConfigOutput() ApiOpenIdConnectConfigOutput { + return o +} + +func (o ApiOpenIdConnectConfigOutput) ToApiOpenIdConnectConfigOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigOutput { + return o +} + +func (o ApiOpenIdConnectConfigOutput) ToApiOpenIdConnectConfigPtrOutput() ApiOpenIdConnectConfigPtrOutput { + return o.ToApiOpenIdConnectConfigPtrOutputWithContext(context.Background()) +} + +func (o ApiOpenIdConnectConfigOutput) ToApiOpenIdConnectConfigPtrOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApiOpenIdConnectConfig) *ApiOpenIdConnectConfig { + return &v + }).(ApiOpenIdConnectConfigPtrOutput) +} + +func (o ApiOpenIdConnectConfigOutput) AuthTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ApiOpenIdConnectConfig) *float64 { return v.AuthTtl }).(pulumi.Float64PtrOutput) +} + +func (o ApiOpenIdConnectConfigOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApiOpenIdConnectConfig) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +func (o ApiOpenIdConnectConfigOutput) IatTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ApiOpenIdConnectConfig) *float64 { return v.IatTtl }).(pulumi.Float64PtrOutput) +} + +func (o ApiOpenIdConnectConfigOutput) Issuer() pulumi.StringOutput { + return o.ApplyT(func(v ApiOpenIdConnectConfig) string { return v.Issuer }).(pulumi.StringOutput) +} + +type ApiOpenIdConnectConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApiOpenIdConnectConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApiOpenIdConnectConfig)(nil)).Elem() +} + +func (o ApiOpenIdConnectConfigPtrOutput) ToApiOpenIdConnectConfigPtrOutput() ApiOpenIdConnectConfigPtrOutput { + return o +} + +func (o ApiOpenIdConnectConfigPtrOutput) ToApiOpenIdConnectConfigPtrOutputWithContext(ctx context.Context) ApiOpenIdConnectConfigPtrOutput { + return o +} + +func (o ApiOpenIdConnectConfigPtrOutput) Elem() ApiOpenIdConnectConfigOutput { + return o.ApplyT(func(v *ApiOpenIdConnectConfig) ApiOpenIdConnectConfig { + if v != nil { + return *v + } + var ret ApiOpenIdConnectConfig + return ret + }).(ApiOpenIdConnectConfigOutput) +} + +func (o ApiOpenIdConnectConfigPtrOutput) AuthTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *ApiOpenIdConnectConfig) *float64 { + if v == nil { + return nil + } + return v.AuthTtl + }).(pulumi.Float64PtrOutput) +} + +func (o ApiOpenIdConnectConfigPtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiOpenIdConnectConfig) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +func (o ApiOpenIdConnectConfigPtrOutput) IatTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *ApiOpenIdConnectConfig) *float64 { + if v == nil { + return nil + } + return v.IatTtl + }).(pulumi.Float64PtrOutput) +} + +func (o ApiOpenIdConnectConfigPtrOutput) Issuer() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApiOpenIdConnectConfig) *string { + if v == nil { + return nil + } + return &v.Issuer + }).(pulumi.StringPtrOutput) +} + +// An arbitrary set of tags (key-value pairs) for this AppSync API. +type ApiTag struct { + // A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. + Key string `pulumi:"key"` + // A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. + Value string `pulumi:"value"` +} + type DataSourceAuthorizationConfig struct { // The authorization type that the HTTP endpoint requires. AuthorizationType string `pulumi:"authorizationType"` @@ -4488,6 +5568,20 @@ func (o SourceApiAssociationConfigPtrOutput) MergeType() SourceApiAssociationCon } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthModeInput)(nil)).Elem(), ApiAuthModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthModeArrayInput)(nil)).Elem(), ApiAuthModeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthProviderInput)(nil)).Elem(), ApiAuthProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiAuthProviderArrayInput)(nil)).Elem(), ApiAuthProviderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiCognitoConfigInput)(nil)).Elem(), ApiCognitoConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiCognitoConfigPtrInput)(nil)).Elem(), ApiCognitoConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventConfigInput)(nil)).Elem(), ApiEventConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventConfigPtrInput)(nil)).Elem(), ApiEventConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventLogConfigInput)(nil)).Elem(), ApiEventLogConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiEventLogConfigPtrInput)(nil)).Elem(), ApiEventLogConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiLambdaAuthorizerConfigInput)(nil)).Elem(), ApiLambdaAuthorizerConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiLambdaAuthorizerConfigPtrInput)(nil)).Elem(), ApiLambdaAuthorizerConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiOpenIdConnectConfigInput)(nil)).Elem(), ApiOpenIdConnectConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApiOpenIdConnectConfigPtrInput)(nil)).Elem(), ApiOpenIdConnectConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataSourceAuthorizationConfigInput)(nil)).Elem(), DataSourceAuthorizationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataSourceAuthorizationConfigPtrInput)(nil)).Elem(), DataSourceAuthorizationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataSourceAwsIamConfigInput)(nil)).Elem(), DataSourceAwsIamConfigArgs{}) @@ -4542,6 +5636,20 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ResolverSyncConfigPtrInput)(nil)).Elem(), ResolverSyncConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceApiAssociationConfigInput)(nil)).Elem(), SourceApiAssociationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SourceApiAssociationConfigPtrInput)(nil)).Elem(), SourceApiAssociationConfigArgs{}) + pulumi.RegisterOutputType(ApiAuthModeOutput{}) + pulumi.RegisterOutputType(ApiAuthModeArrayOutput{}) + pulumi.RegisterOutputType(ApiAuthProviderOutput{}) + pulumi.RegisterOutputType(ApiAuthProviderArrayOutput{}) + pulumi.RegisterOutputType(ApiCognitoConfigOutput{}) + pulumi.RegisterOutputType(ApiCognitoConfigPtrOutput{}) + pulumi.RegisterOutputType(ApiEventConfigOutput{}) + pulumi.RegisterOutputType(ApiEventConfigPtrOutput{}) + pulumi.RegisterOutputType(ApiEventLogConfigOutput{}) + pulumi.RegisterOutputType(ApiEventLogConfigPtrOutput{}) + pulumi.RegisterOutputType(ApiLambdaAuthorizerConfigOutput{}) + pulumi.RegisterOutputType(ApiLambdaAuthorizerConfigPtrOutput{}) + pulumi.RegisterOutputType(ApiOpenIdConnectConfigOutput{}) + pulumi.RegisterOutputType(ApiOpenIdConnectConfigPtrOutput{}) pulumi.RegisterOutputType(DataSourceAuthorizationConfigOutput{}) pulumi.RegisterOutputType(DataSourceAuthorizationConfigPtrOutput{}) pulumi.RegisterOutputType(DataSourceAwsIamConfigOutput{}) diff --git a/sdk/go/aws/codepipeline/pulumiEnums.go b/sdk/go/aws/codepipeline/pulumiEnums.go index d5a66622bb..f63e2d436e 100644 --- a/sdk/go/aws/codepipeline/pulumiEnums.go +++ b/sdk/go/aws/codepipeline/pulumiEnums.go @@ -687,6 +687,7 @@ type PipelineFailureConditionsResult string const ( PipelineFailureConditionsResultRollback = PipelineFailureConditionsResult("ROLLBACK") + PipelineFailureConditionsResultRetry = PipelineFailureConditionsResult("RETRY") ) func (PipelineFailureConditionsResult) ElementType() reflect.Type { @@ -812,6 +813,7 @@ func (o PipelineFailureConditionsResultPtrOutput) ToStringPtrOutputWithContext(c // A concrete instance of `PipelineFailureConditionsResultInput` can be one of the following: // // PipelineFailureConditionsResultRollback +// PipelineFailureConditionsResultRetry type PipelineFailureConditionsResultInput interface { pulumi.Input @@ -846,6 +848,172 @@ func (in *pipelineFailureConditionsResultPtr) ToPipelineFailureConditionsResultP return pulumi.ToOutputWithContext(ctx, in).(PipelineFailureConditionsResultPtrOutput) } +// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful +type PipelineFailureConditionsRetryConfigurationPropertiesRetryMode string + +const ( + PipelineFailureConditionsRetryConfigurationPropertiesRetryModeAllActions = PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("ALL_ACTIONS") + PipelineFailureConditionsRetryConfigurationPropertiesRetryModeFailedActions = PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("FAILED_ACTIONS") +) + +func (PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ElementType() reflect.Type { + return reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesRetryMode)(nil)).Elem() +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput { + return pulumi.ToOutput(e).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput { + return pulumi.ToOutputWithContext(ctx, e).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return e.ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(context.Background()) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return PipelineFailureConditionsRetryConfigurationPropertiesRetryMode(e).ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutputWithContext(ctx).ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(ctx) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput struct{ *pulumi.OutputState } + +func (PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesRetryMode)(nil)).Elem() +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o.ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(context.Background()) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode { + return &v + }).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput struct{ *pulumi.OutputState } + +func (PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PipelineFailureConditionsRetryConfigurationPropertiesRetryMode)(nil)).Elem() +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) Elem() PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput { + return o.ApplyT(func(v *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) PipelineFailureConditionsRetryConfigurationPropertiesRetryMode { + if v != nil { + return *v + } + var ret PipelineFailureConditionsRetryConfigurationPropertiesRetryMode + return ret + }).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// PipelineFailureConditionsRetryConfigurationPropertiesRetryModeInput is an input type that accepts values of the PipelineFailureConditionsRetryConfigurationPropertiesRetryMode enum +// A concrete instance of `PipelineFailureConditionsRetryConfigurationPropertiesRetryModeInput` can be one of the following: +// +// PipelineFailureConditionsRetryConfigurationPropertiesRetryModeAllActions +// PipelineFailureConditionsRetryConfigurationPropertiesRetryModeFailedActions +type PipelineFailureConditionsRetryConfigurationPropertiesRetryModeInput interface { + pulumi.Input + + ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput + ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutputWithContext(context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput +} + +var pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrType = reflect.TypeOf((**PipelineFailureConditionsRetryConfigurationPropertiesRetryMode)(nil)).Elem() + +type PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrInput interface { + pulumi.Input + + ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput + ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput +} + +type pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr string + +func PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr(v string) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrInput { + return (*pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr)(&v) +} + +func (*pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr) ElementType() reflect.Type { + return pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrType +} + +func (in *pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return pulumi.ToOutput(in).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) +} + +func (in *pipelineFailureConditionsRetryConfigurationPropertiesRetryModePtr) ToPipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) +} + // The source provider for the event, such as connections configured for a repository with Git tags, for the specified trigger configuration. type PipelineTriggerDeclarationProviderType string @@ -1187,6 +1355,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PipelineExecutionModePtrInput)(nil)).Elem(), PipelineExecutionMode("QUEUED")) pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsResultInput)(nil)).Elem(), PipelineFailureConditionsResult("ROLLBACK")) pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsResultPtrInput)(nil)).Elem(), PipelineFailureConditionsResult("ROLLBACK")) + pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesRetryModeInput)(nil)).Elem(), PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("ALL_ACTIONS")) + pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrInput)(nil)).Elem(), PipelineFailureConditionsRetryConfigurationPropertiesRetryMode("ALL_ACTIONS")) pulumi.RegisterInputType(reflect.TypeOf((*PipelineTriggerDeclarationProviderTypeInput)(nil)).Elem(), PipelineTriggerDeclarationProviderType("CodeStarSourceConnection")) pulumi.RegisterInputType(reflect.TypeOf((*PipelineTriggerDeclarationProviderTypePtrInput)(nil)).Elem(), PipelineTriggerDeclarationProviderType("CodeStarSourceConnection")) pulumi.RegisterInputType(reflect.TypeOf((*PipelineTypeInput)(nil)).Elem(), PipelineType("V1")) @@ -1201,6 +1371,8 @@ func init() { pulumi.RegisterOutputType(PipelineExecutionModePtrOutput{}) pulumi.RegisterOutputType(PipelineFailureConditionsResultOutput{}) pulumi.RegisterOutputType(PipelineFailureConditionsResultPtrOutput{}) + pulumi.RegisterOutputType(PipelineFailureConditionsRetryConfigurationPropertiesRetryModeOutput{}) + pulumi.RegisterOutputType(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput{}) pulumi.RegisterOutputType(PipelineTriggerDeclarationProviderTypeOutput{}) pulumi.RegisterOutputType(PipelineTriggerDeclarationProviderTypePtrOutput{}) pulumi.RegisterOutputType(PipelineTypeOutput{}) diff --git a/sdk/go/aws/codepipeline/pulumiTypes.go b/sdk/go/aws/codepipeline/pulumiTypes.go index 11cb38a743..bb0967dd14 100644 --- a/sdk/go/aws/codepipeline/pulumiTypes.go +++ b/sdk/go/aws/codepipeline/pulumiTypes.go @@ -1538,6 +1538,8 @@ type PipelineFailureConditions struct { Conditions []PipelineCondition `pulumi:"conditions"` // The specified result for when the failure conditions are met, such as rolling back the stage Result *PipelineFailureConditionsResult `pulumi:"result"` + // The configuration that specifies the retry configuration for a stage + RetryConfiguration *PipelineFailureConditionsRetryConfigurationProperties `pulumi:"retryConfiguration"` } // PipelineFailureConditionsInput is an input type that accepts PipelineFailureConditionsArgs and PipelineFailureConditionsOutput values. @@ -1557,6 +1559,8 @@ type PipelineFailureConditionsArgs struct { Conditions PipelineConditionArrayInput `pulumi:"conditions"` // The specified result for when the failure conditions are met, such as rolling back the stage Result PipelineFailureConditionsResultPtrInput `pulumi:"result"` + // The configuration that specifies the retry configuration for a stage + RetryConfiguration PipelineFailureConditionsRetryConfigurationPropertiesPtrInput `pulumi:"retryConfiguration"` } func (PipelineFailureConditionsArgs) ElementType() reflect.Type { @@ -1647,6 +1651,13 @@ func (o PipelineFailureConditionsOutput) Result() PipelineFailureConditionsResul return o.ApplyT(func(v PipelineFailureConditions) *PipelineFailureConditionsResult { return v.Result }).(PipelineFailureConditionsResultPtrOutput) } +// The configuration that specifies the retry configuration for a stage +func (o PipelineFailureConditionsOutput) RetryConfiguration() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v PipelineFailureConditions) *PipelineFailureConditionsRetryConfigurationProperties { + return v.RetryConfiguration + }).(PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) +} + type PipelineFailureConditionsPtrOutput struct{ *pulumi.OutputState } func (PipelineFailureConditionsPtrOutput) ElementType() reflect.Type { @@ -1691,6 +1702,158 @@ func (o PipelineFailureConditionsPtrOutput) Result() PipelineFailureConditionsRe }).(PipelineFailureConditionsResultPtrOutput) } +// The configuration that specifies the retry configuration for a stage +func (o PipelineFailureConditionsPtrOutput) RetryConfiguration() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v *PipelineFailureConditions) *PipelineFailureConditionsRetryConfigurationProperties { + if v == nil { + return nil + } + return v.RetryConfiguration + }).(PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) +} + +// The configuration that specifies the retry configuration for a stage +type PipelineFailureConditionsRetryConfigurationProperties struct { + // The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + RetryMode *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode `pulumi:"retryMode"` +} + +// PipelineFailureConditionsRetryConfigurationPropertiesInput is an input type that accepts PipelineFailureConditionsRetryConfigurationPropertiesArgs and PipelineFailureConditionsRetryConfigurationPropertiesOutput values. +// You can construct a concrete instance of `PipelineFailureConditionsRetryConfigurationPropertiesInput` via: +// +// PipelineFailureConditionsRetryConfigurationPropertiesArgs{...} +type PipelineFailureConditionsRetryConfigurationPropertiesInput interface { + pulumi.Input + + ToPipelineFailureConditionsRetryConfigurationPropertiesOutput() PipelineFailureConditionsRetryConfigurationPropertiesOutput + ToPipelineFailureConditionsRetryConfigurationPropertiesOutputWithContext(context.Context) PipelineFailureConditionsRetryConfigurationPropertiesOutput +} + +// The configuration that specifies the retry configuration for a stage +type PipelineFailureConditionsRetryConfigurationPropertiesArgs struct { + // The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + RetryMode PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrInput `pulumi:"retryMode"` +} + +func (PipelineFailureConditionsRetryConfigurationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationProperties)(nil)).Elem() +} + +func (i PipelineFailureConditionsRetryConfigurationPropertiesArgs) ToPipelineFailureConditionsRetryConfigurationPropertiesOutput() PipelineFailureConditionsRetryConfigurationPropertiesOutput { + return i.ToPipelineFailureConditionsRetryConfigurationPropertiesOutputWithContext(context.Background()) +} + +func (i PipelineFailureConditionsRetryConfigurationPropertiesArgs) ToPipelineFailureConditionsRetryConfigurationPropertiesOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(PipelineFailureConditionsRetryConfigurationPropertiesOutput) +} + +func (i PipelineFailureConditionsRetryConfigurationPropertiesArgs) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return i.ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i PipelineFailureConditionsRetryConfigurationPropertiesArgs) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PipelineFailureConditionsRetryConfigurationPropertiesOutput).ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(ctx) +} + +// PipelineFailureConditionsRetryConfigurationPropertiesPtrInput is an input type that accepts PipelineFailureConditionsRetryConfigurationPropertiesArgs, PipelineFailureConditionsRetryConfigurationPropertiesPtr and PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput values. +// You can construct a concrete instance of `PipelineFailureConditionsRetryConfigurationPropertiesPtrInput` via: +// +// PipelineFailureConditionsRetryConfigurationPropertiesArgs{...} +// +// or: +// +// nil +type PipelineFailureConditionsRetryConfigurationPropertiesPtrInput interface { + pulumi.Input + + ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput + ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(context.Context) PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput +} + +type pipelineFailureConditionsRetryConfigurationPropertiesPtrType PipelineFailureConditionsRetryConfigurationPropertiesArgs + +func PipelineFailureConditionsRetryConfigurationPropertiesPtr(v *PipelineFailureConditionsRetryConfigurationPropertiesArgs) PipelineFailureConditionsRetryConfigurationPropertiesPtrInput { + return (*pipelineFailureConditionsRetryConfigurationPropertiesPtrType)(v) +} + +func (*pipelineFailureConditionsRetryConfigurationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PipelineFailureConditionsRetryConfigurationProperties)(nil)).Elem() +} + +func (i *pipelineFailureConditionsRetryConfigurationPropertiesPtrType) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return i.ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *pipelineFailureConditionsRetryConfigurationPropertiesPtrType) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) +} + +// The configuration that specifies the retry configuration for a stage +type PipelineFailureConditionsRetryConfigurationPropertiesOutput struct{ *pulumi.OutputState } + +func (PipelineFailureConditionsRetryConfigurationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationProperties)(nil)).Elem() +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesOutput() PipelineFailureConditionsRetryConfigurationPropertiesOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o.ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PipelineFailureConditionsRetryConfigurationProperties) *PipelineFailureConditionsRetryConfigurationProperties { + return &v + }).(PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) +} + +// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful +func (o PipelineFailureConditionsRetryConfigurationPropertiesOutput) RetryMode() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o.ApplyT(func(v PipelineFailureConditionsRetryConfigurationProperties) *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode { + return v.RetryMode + }).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) +} + +type PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PipelineFailureConditionsRetryConfigurationProperties)(nil)).Elem() +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutput() PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) ToPipelineFailureConditionsRetryConfigurationPropertiesPtrOutputWithContext(ctx context.Context) PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput { + return o +} + +func (o PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) Elem() PipelineFailureConditionsRetryConfigurationPropertiesOutput { + return o.ApplyT(func(v *PipelineFailureConditionsRetryConfigurationProperties) PipelineFailureConditionsRetryConfigurationProperties { + if v != nil { + return *v + } + var ret PipelineFailureConditionsRetryConfigurationProperties + return ret + }).(PipelineFailureConditionsRetryConfigurationPropertiesOutput) +} + +// The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful +func (o PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput) RetryMode() PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput { + return o.ApplyT(func(v *PipelineFailureConditionsRetryConfigurationProperties) *PipelineFailureConditionsRetryConfigurationPropertiesRetryMode { + if v == nil { + return nil + } + return v.RetryMode + }).(PipelineFailureConditionsRetryConfigurationPropertiesRetryModePtrOutput) +} + // The Git repository branches specified as filter criteria to start the pipeline. type PipelineGitBranchFilterCriteria struct { // The list of patterns of Git branches that, when a commit is pushed, are to be excluded from starting the pipeline. @@ -3785,6 +3948,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PipelineEncryptionKeyPtrInput)(nil)).Elem(), PipelineEncryptionKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsInput)(nil)).Elem(), PipelineFailureConditionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsPtrInput)(nil)).Elem(), PipelineFailureConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesInput)(nil)).Elem(), PipelineFailureConditionsRetryConfigurationPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PipelineFailureConditionsRetryConfigurationPropertiesPtrInput)(nil)).Elem(), PipelineFailureConditionsRetryConfigurationPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PipelineGitBranchFilterCriteriaInput)(nil)).Elem(), PipelineGitBranchFilterCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PipelineGitBranchFilterCriteriaPtrInput)(nil)).Elem(), PipelineGitBranchFilterCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PipelineGitConfigurationInput)(nil)).Elem(), PipelineGitConfigurationArgs{}) @@ -3837,6 +4002,8 @@ func init() { pulumi.RegisterOutputType(PipelineEncryptionKeyPtrOutput{}) pulumi.RegisterOutputType(PipelineFailureConditionsOutput{}) pulumi.RegisterOutputType(PipelineFailureConditionsPtrOutput{}) + pulumi.RegisterOutputType(PipelineFailureConditionsRetryConfigurationPropertiesOutput{}) + pulumi.RegisterOutputType(PipelineFailureConditionsRetryConfigurationPropertiesPtrOutput{}) pulumi.RegisterOutputType(PipelineGitBranchFilterCriteriaOutput{}) pulumi.RegisterOutputType(PipelineGitBranchFilterCriteriaPtrOutput{}) pulumi.RegisterOutputType(PipelineGitConfigurationOutput{}) diff --git a/sdk/go/aws/ec2/eip.go b/sdk/go/aws/ec2/eip.go index 087890676e..401da31716 100644 --- a/sdk/go/aws/ec2/eip.go +++ b/sdk/go/aws/ec2/eip.go @@ -19,6 +19,7 @@ import ( type Eip struct { pulumi.CustomResourceState + // Describes an Elastic IP address, or a carrier IP address. Address pulumi.StringPtrOutput `pulumi:"address"` // The ID that AWS assigns to represent the allocation of the address for use with Amazon VPC. This is returned only for VPC elastic IP addresses. For example, `eipalloc-5723d13e` . AllocationId pulumi.StringOutput `pulumi:"allocationId"` @@ -92,6 +93,7 @@ func (EipState) ElementType() reflect.Type { } type eipArgs struct { + // Describes an Elastic IP address, or a carrier IP address. Address *string `pulumi:"address"` // The network (``vpc``). // If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. @@ -115,6 +117,7 @@ type eipArgs struct { // The set of arguments for constructing a Eip resource. type EipArgs struct { + // Describes an Elastic IP address, or a carrier IP address. Address pulumi.StringPtrInput // The network (``vpc``). // If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. @@ -173,6 +176,7 @@ func (o EipOutput) ToEipOutputWithContext(ctx context.Context) EipOutput { return o } +// Describes an Elastic IP address, or a carrier IP address. func (o EipOutput) Address() pulumi.StringPtrOutput { return o.ApplyT(func(v *Eip) pulumi.StringPtrOutput { return v.Address }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/m2/application.go b/sdk/go/aws/m2/application.go index b4fc53918c..082638f20d 100644 --- a/sdk/go/aws/m2/application.go +++ b/sdk/go/aws/m2/application.go @@ -47,9 +47,6 @@ func NewApplication(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } - if args.Definition == nil { - return nil, errors.New("invalid value for required argument 'Definition'") - } if args.EngineType == nil { return nil, errors.New("invalid value for required argument 'EngineType'") } diff --git a/sdk/go/aws/m2/pulumiTypes.go b/sdk/go/aws/m2/pulumiTypes.go index ba85205f5b..9a367117f9 100644 --- a/sdk/go/aws/m2/pulumiTypes.go +++ b/sdk/go/aws/m2/pulumiTypes.go @@ -44,6 +44,47 @@ func (i ApplicationDefinition0PropertiesArgs) ToApplicationDefinition0Properties return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition0PropertiesOutput) } +func (i ApplicationDefinition0PropertiesArgs) ToApplicationDefinition0PropertiesPtrOutput() ApplicationDefinition0PropertiesPtrOutput { + return i.ToApplicationDefinition0PropertiesPtrOutputWithContext(context.Background()) +} + +func (i ApplicationDefinition0PropertiesArgs) ToApplicationDefinition0PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition0PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition0PropertiesOutput).ToApplicationDefinition0PropertiesPtrOutputWithContext(ctx) +} + +// ApplicationDefinition0PropertiesPtrInput is an input type that accepts ApplicationDefinition0PropertiesArgs, ApplicationDefinition0PropertiesPtr and ApplicationDefinition0PropertiesPtrOutput values. +// You can construct a concrete instance of `ApplicationDefinition0PropertiesPtrInput` via: +// +// ApplicationDefinition0PropertiesArgs{...} +// +// or: +// +// nil +type ApplicationDefinition0PropertiesPtrInput interface { + pulumi.Input + + ToApplicationDefinition0PropertiesPtrOutput() ApplicationDefinition0PropertiesPtrOutput + ToApplicationDefinition0PropertiesPtrOutputWithContext(context.Context) ApplicationDefinition0PropertiesPtrOutput +} + +type applicationDefinition0PropertiesPtrType ApplicationDefinition0PropertiesArgs + +func ApplicationDefinition0PropertiesPtr(v *ApplicationDefinition0PropertiesArgs) ApplicationDefinition0PropertiesPtrInput { + return (*applicationDefinition0PropertiesPtrType)(v) +} + +func (*applicationDefinition0PropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition0Properties)(nil)).Elem() +} + +func (i *applicationDefinition0PropertiesPtrType) ToApplicationDefinition0PropertiesPtrOutput() ApplicationDefinition0PropertiesPtrOutput { + return i.ToApplicationDefinition0PropertiesPtrOutputWithContext(context.Background()) +} + +func (i *applicationDefinition0PropertiesPtrType) ToApplicationDefinition0PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition0PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition0PropertiesPtrOutput) +} + type ApplicationDefinition0PropertiesOutput struct{ *pulumi.OutputState } func (ApplicationDefinition0PropertiesOutput) ElementType() reflect.Type { @@ -58,10 +99,53 @@ func (o ApplicationDefinition0PropertiesOutput) ToApplicationDefinition0Properti return o } +func (o ApplicationDefinition0PropertiesOutput) ToApplicationDefinition0PropertiesPtrOutput() ApplicationDefinition0PropertiesPtrOutput { + return o.ToApplicationDefinition0PropertiesPtrOutputWithContext(context.Background()) +} + +func (o ApplicationDefinition0PropertiesOutput) ToApplicationDefinition0PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition0PropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationDefinition0Properties) *ApplicationDefinition0Properties { + return &v + }).(ApplicationDefinition0PropertiesPtrOutput) +} + func (o ApplicationDefinition0PropertiesOutput) S3Location() pulumi.StringOutput { return o.ApplyT(func(v ApplicationDefinition0Properties) string { return v.S3Location }).(pulumi.StringOutput) } +type ApplicationDefinition0PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationDefinition0PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition0Properties)(nil)).Elem() +} + +func (o ApplicationDefinition0PropertiesPtrOutput) ToApplicationDefinition0PropertiesPtrOutput() ApplicationDefinition0PropertiesPtrOutput { + return o +} + +func (o ApplicationDefinition0PropertiesPtrOutput) ToApplicationDefinition0PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition0PropertiesPtrOutput { + return o +} + +func (o ApplicationDefinition0PropertiesPtrOutput) Elem() ApplicationDefinition0PropertiesOutput { + return o.ApplyT(func(v *ApplicationDefinition0Properties) ApplicationDefinition0Properties { + if v != nil { + return *v + } + var ret ApplicationDefinition0Properties + return ret + }).(ApplicationDefinition0PropertiesOutput) +} + +func (o ApplicationDefinition0PropertiesPtrOutput) S3Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationDefinition0Properties) *string { + if v == nil { + return nil + } + return &v.S3Location + }).(pulumi.StringPtrOutput) +} + type ApplicationDefinition1Properties struct { Content string `pulumi:"content"` } @@ -93,6 +177,47 @@ func (i ApplicationDefinition1PropertiesArgs) ToApplicationDefinition1Properties return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition1PropertiesOutput) } +func (i ApplicationDefinition1PropertiesArgs) ToApplicationDefinition1PropertiesPtrOutput() ApplicationDefinition1PropertiesPtrOutput { + return i.ToApplicationDefinition1PropertiesPtrOutputWithContext(context.Background()) +} + +func (i ApplicationDefinition1PropertiesArgs) ToApplicationDefinition1PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition1PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition1PropertiesOutput).ToApplicationDefinition1PropertiesPtrOutputWithContext(ctx) +} + +// ApplicationDefinition1PropertiesPtrInput is an input type that accepts ApplicationDefinition1PropertiesArgs, ApplicationDefinition1PropertiesPtr and ApplicationDefinition1PropertiesPtrOutput values. +// You can construct a concrete instance of `ApplicationDefinition1PropertiesPtrInput` via: +// +// ApplicationDefinition1PropertiesArgs{...} +// +// or: +// +// nil +type ApplicationDefinition1PropertiesPtrInput interface { + pulumi.Input + + ToApplicationDefinition1PropertiesPtrOutput() ApplicationDefinition1PropertiesPtrOutput + ToApplicationDefinition1PropertiesPtrOutputWithContext(context.Context) ApplicationDefinition1PropertiesPtrOutput +} + +type applicationDefinition1PropertiesPtrType ApplicationDefinition1PropertiesArgs + +func ApplicationDefinition1PropertiesPtr(v *ApplicationDefinition1PropertiesArgs) ApplicationDefinition1PropertiesPtrInput { + return (*applicationDefinition1PropertiesPtrType)(v) +} + +func (*applicationDefinition1PropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition1Properties)(nil)).Elem() +} + +func (i *applicationDefinition1PropertiesPtrType) ToApplicationDefinition1PropertiesPtrOutput() ApplicationDefinition1PropertiesPtrOutput { + return i.ToApplicationDefinition1PropertiesPtrOutputWithContext(context.Background()) +} + +func (i *applicationDefinition1PropertiesPtrType) ToApplicationDefinition1PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition1PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDefinition1PropertiesPtrOutput) +} + type ApplicationDefinition1PropertiesOutput struct{ *pulumi.OutputState } func (ApplicationDefinition1PropertiesOutput) ElementType() reflect.Type { @@ -107,10 +232,53 @@ func (o ApplicationDefinition1PropertiesOutput) ToApplicationDefinition1Properti return o } +func (o ApplicationDefinition1PropertiesOutput) ToApplicationDefinition1PropertiesPtrOutput() ApplicationDefinition1PropertiesPtrOutput { + return o.ToApplicationDefinition1PropertiesPtrOutputWithContext(context.Background()) +} + +func (o ApplicationDefinition1PropertiesOutput) ToApplicationDefinition1PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition1PropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationDefinition1Properties) *ApplicationDefinition1Properties { + return &v + }).(ApplicationDefinition1PropertiesPtrOutput) +} + func (o ApplicationDefinition1PropertiesOutput) Content() pulumi.StringOutput { return o.ApplyT(func(v ApplicationDefinition1Properties) string { return v.Content }).(pulumi.StringOutput) } +type ApplicationDefinition1PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationDefinition1PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationDefinition1Properties)(nil)).Elem() +} + +func (o ApplicationDefinition1PropertiesPtrOutput) ToApplicationDefinition1PropertiesPtrOutput() ApplicationDefinition1PropertiesPtrOutput { + return o +} + +func (o ApplicationDefinition1PropertiesPtrOutput) ToApplicationDefinition1PropertiesPtrOutputWithContext(ctx context.Context) ApplicationDefinition1PropertiesPtrOutput { + return o +} + +func (o ApplicationDefinition1PropertiesPtrOutput) Elem() ApplicationDefinition1PropertiesOutput { + return o.ApplyT(func(v *ApplicationDefinition1Properties) ApplicationDefinition1Properties { + if v != nil { + return *v + } + var ret ApplicationDefinition1Properties + return ret + }).(ApplicationDefinition1PropertiesOutput) +} + +func (o ApplicationDefinition1PropertiesPtrOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationDefinition1Properties) *string { + if v == nil { + return nil + } + return &v.Content + }).(pulumi.StringPtrOutput) +} + // Defines the details of a high availability configuration. type EnvironmentHighAvailabilityConfig struct { // The number of instances in a high availability configuration. The minimum possible value is 1 and the maximum is 100. @@ -344,13 +512,17 @@ func (o EnvironmentStorageConfigurationArrayOutput) Index(i pulumi.IntInput) Env func init() { pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinition0PropertiesInput)(nil)).Elem(), ApplicationDefinition0PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinition0PropertiesPtrInput)(nil)).Elem(), ApplicationDefinition0PropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinition1PropertiesInput)(nil)).Elem(), ApplicationDefinition1PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDefinition1PropertiesPtrInput)(nil)).Elem(), ApplicationDefinition1PropertiesArgs{}) 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((*EnvironmentStorageConfigurationArrayInput)(nil)).Elem(), EnvironmentStorageConfigurationArray{}) pulumi.RegisterOutputType(ApplicationDefinition0PropertiesOutput{}) + pulumi.RegisterOutputType(ApplicationDefinition0PropertiesPtrOutput{}) pulumi.RegisterOutputType(ApplicationDefinition1PropertiesOutput{}) + pulumi.RegisterOutputType(ApplicationDefinition1PropertiesPtrOutput{}) pulumi.RegisterOutputType(EnvironmentHighAvailabilityConfigOutput{}) pulumi.RegisterOutputType(EnvironmentHighAvailabilityConfigPtrOutput{}) pulumi.RegisterOutputType(EnvironmentStorageConfigurationOutput{}) diff --git a/sdk/go/aws/opensearchservice/application.go b/sdk/go/aws/opensearchservice/application.go new file mode 100644 index 0000000000..e1ae66557e --- /dev/null +++ b/sdk/go/aws/opensearchservice/application.go @@ -0,0 +1,191 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package opensearchservice + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Amazon OpenSearchService application resource +type Application struct { + pulumi.CustomResourceState + + // List of application configurations. + AppConfigs ApplicationAppConfigArrayOutput `pulumi:"appConfigs"` + // Amazon Resource Name (ARN) format. + Arn pulumi.StringOutput `pulumi:"arn"` + // The identifier of the application. + AwsId pulumi.StringOutput `pulumi:"awsId"` + // List of data sources. + DataSources ApplicationDataSourceArrayOutput `pulumi:"dataSources"` + // The endpoint for the application. + Endpoint pulumi.StringPtrOutput `pulumi:"endpoint"` + // Options for configuring IAM Identity Center + IamIdentityCenterOptions IamIdentityCenterOptionsPropertiesPtrOutput `pulumi:"iamIdentityCenterOptions"` + // The name of the application. + Name pulumi.StringOutput `pulumi:"name"` + // An arbitrary set of tags (key-value pairs) for this application. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// 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 { + args = &ApplicationArgs{} + } + + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "name", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Application + err := ctx.RegisterResource("aws-native:opensearchservice: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-native:opensearchservice: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 { +} + +type ApplicationState struct { +} + +func (ApplicationState) ElementType() reflect.Type { + return reflect.TypeOf((*applicationState)(nil)).Elem() +} + +type applicationArgs struct { + // List of application configurations. + AppConfigs []ApplicationAppConfig `pulumi:"appConfigs"` + // List of data sources. + DataSources []ApplicationDataSource `pulumi:"dataSources"` + // The endpoint for the application. + Endpoint *string `pulumi:"endpoint"` + // Options for configuring IAM Identity Center + IamIdentityCenterOptions *IamIdentityCenterOptionsProperties `pulumi:"iamIdentityCenterOptions"` + // The name of the application. + Name *string `pulumi:"name"` + // An arbitrary set of tags (key-value pairs) for this application. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Application resource. +type ApplicationArgs struct { + // List of application configurations. + AppConfigs ApplicationAppConfigArrayInput + // List of data sources. + DataSources ApplicationDataSourceArrayInput + // The endpoint for the application. + Endpoint pulumi.StringPtrInput + // Options for configuring IAM Identity Center + IamIdentityCenterOptions IamIdentityCenterOptionsPropertiesPtrInput + // The name of the application. + Name pulumi.StringPtrInput + // An arbitrary set of tags (key-value pairs) for this application. + Tags aws.TagArrayInput +} + +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) +} + +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 +} + +// List of application configurations. +func (o ApplicationOutput) AppConfigs() ApplicationAppConfigArrayOutput { + return o.ApplyT(func(v *Application) ApplicationAppConfigArrayOutput { return v.AppConfigs }).(ApplicationAppConfigArrayOutput) +} + +// Amazon Resource Name (ARN) format. +func (o ApplicationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The identifier of the application. +func (o ApplicationOutput) AwsId() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.AwsId }).(pulumi.StringOutput) +} + +// List of data sources. +func (o ApplicationOutput) DataSources() ApplicationDataSourceArrayOutput { + return o.ApplyT(func(v *Application) ApplicationDataSourceArrayOutput { return v.DataSources }).(ApplicationDataSourceArrayOutput) +} + +// The endpoint for the application. +func (o ApplicationOutput) Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.Endpoint }).(pulumi.StringPtrOutput) +} + +// Options for configuring IAM Identity Center +func (o ApplicationOutput) IamIdentityCenterOptions() IamIdentityCenterOptionsPropertiesPtrOutput { + return o.ApplyT(func(v *Application) IamIdentityCenterOptionsPropertiesPtrOutput { return v.IamIdentityCenterOptions }).(IamIdentityCenterOptionsPropertiesPtrOutput) +} + +// The name of the application. +func (o ApplicationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// An arbitrary set of tags (key-value pairs) for this application. +func (o ApplicationOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Application) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInput)(nil)).Elem(), &Application{}) + pulumi.RegisterOutputType(ApplicationOutput{}) +} diff --git a/sdk/go/aws/opensearchservice/getApplication.go b/sdk/go/aws/opensearchservice/getApplication.go new file mode 100644 index 0000000000..67d8411e60 --- /dev/null +++ b/sdk/go/aws/opensearchservice/getApplication.go @@ -0,0 +1,127 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package opensearchservice + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Amazon OpenSearchService application resource +func LookupApplication(ctx *pulumi.Context, args *LookupApplicationArgs, opts ...pulumi.InvokeOption) (*LookupApplicationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApplicationResult + err := ctx.Invoke("aws-native:opensearchservice:getApplication", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupApplicationArgs struct { + // The name of the application. + Name string `pulumi:"name"` +} + +type LookupApplicationResult struct { + // List of application configurations. + AppConfigs []ApplicationAppConfig `pulumi:"appConfigs"` + // Amazon Resource Name (ARN) format. + Arn *string `pulumi:"arn"` + // List of data sources. + DataSources []ApplicationDataSource `pulumi:"dataSources"` + // The endpoint for the application. + Endpoint *string `pulumi:"endpoint"` + // Options for configuring IAM Identity Center + IamIdentityCenterOptions *IamIdentityCenterOptionsProperties `pulumi:"iamIdentityCenterOptions"` + // The identifier of the application. + Id *string `pulumi:"id"` + // An arbitrary set of tags (key-value pairs) for this application. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupApplicationOutput(ctx *pulumi.Context, args LookupApplicationOutputArgs, opts ...pulumi.InvokeOption) LookupApplicationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupApplicationResultOutput, error) { + args := v.(LookupApplicationArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApplicationResult + secret, err := ctx.InvokePackageRaw("aws-native:opensearchservice:getApplication", args, &rv, "", opts...) + if err != nil { + return LookupApplicationResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupApplicationResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupApplicationResultOutput), nil + } + return output, nil + }).(LookupApplicationResultOutput) +} + +type LookupApplicationOutputArgs struct { + // The name of the application. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupApplicationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationArgs)(nil)).Elem() +} + +type LookupApplicationResultOutput struct{ *pulumi.OutputState } + +func (LookupApplicationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationResult)(nil)).Elem() +} + +func (o LookupApplicationResultOutput) ToLookupApplicationResultOutput() LookupApplicationResultOutput { + return o +} + +func (o LookupApplicationResultOutput) ToLookupApplicationResultOutputWithContext(ctx context.Context) LookupApplicationResultOutput { + return o +} + +// List of application configurations. +func (o LookupApplicationResultOutput) AppConfigs() ApplicationAppConfigArrayOutput { + return o.ApplyT(func(v LookupApplicationResult) []ApplicationAppConfig { return v.AppConfigs }).(ApplicationAppConfigArrayOutput) +} + +// Amazon Resource Name (ARN) format. +func (o LookupApplicationResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// List of data sources. +func (o LookupApplicationResultOutput) DataSources() ApplicationDataSourceArrayOutput { + return o.ApplyT(func(v LookupApplicationResult) []ApplicationDataSource { return v.DataSources }).(ApplicationDataSourceArrayOutput) +} + +// The endpoint for the application. +func (o LookupApplicationResultOutput) Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Endpoint }).(pulumi.StringPtrOutput) +} + +// Options for configuring IAM Identity Center +func (o LookupApplicationResultOutput) IamIdentityCenterOptions() IamIdentityCenterOptionsPropertiesPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *IamIdentityCenterOptionsProperties { return v.IamIdentityCenterOptions }).(IamIdentityCenterOptionsPropertiesPtrOutput) +} + +// The identifier of the application. +func (o LookupApplicationResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// An arbitrary set of tags (key-value pairs) for this application. +func (o LookupApplicationResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupApplicationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupApplicationResultOutput{}) +} diff --git a/sdk/go/aws/opensearchservice/init.go b/sdk/go/aws/opensearchservice/init.go index d020106c29..04a1da568c 100644 --- a/sdk/go/aws/opensearchservice/init.go +++ b/sdk/go/aws/opensearchservice/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-native:opensearchservice:Application": + r = &Application{} case "aws-native:opensearchservice:Domain": r = &Domain{} default: diff --git a/sdk/go/aws/opensearchservice/pulumiEnums.go b/sdk/go/aws/opensearchservice/pulumiEnums.go new file mode 100644 index 0000000000..fd5537c388 --- /dev/null +++ b/sdk/go/aws/opensearchservice/pulumiEnums.go @@ -0,0 +1,184 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package opensearchservice + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// AppConfig type values. +type ApplicationAppConfigType string + +const ( + ApplicationAppConfigTypeOpensearchDashboardsDashboardAdminUsers = ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.users") + ApplicationAppConfigTypeOpensearchDashboardsDashboardAdminGroups = ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.groups") +) + +func (ApplicationAppConfigType) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationAppConfigType)(nil)).Elem() +} + +func (e ApplicationAppConfigType) ToApplicationAppConfigTypeOutput() ApplicationAppConfigTypeOutput { + return pulumi.ToOutput(e).(ApplicationAppConfigTypeOutput) +} + +func (e ApplicationAppConfigType) ToApplicationAppConfigTypeOutputWithContext(ctx context.Context) ApplicationAppConfigTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(ApplicationAppConfigTypeOutput) +} + +func (e ApplicationAppConfigType) ToApplicationAppConfigTypePtrOutput() ApplicationAppConfigTypePtrOutput { + return e.ToApplicationAppConfigTypePtrOutputWithContext(context.Background()) +} + +func (e ApplicationAppConfigType) ToApplicationAppConfigTypePtrOutputWithContext(ctx context.Context) ApplicationAppConfigTypePtrOutput { + return ApplicationAppConfigType(e).ToApplicationAppConfigTypeOutputWithContext(ctx).ToApplicationAppConfigTypePtrOutputWithContext(ctx) +} + +func (e ApplicationAppConfigType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApplicationAppConfigType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ApplicationAppConfigType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e ApplicationAppConfigType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type ApplicationAppConfigTypeOutput struct{ *pulumi.OutputState } + +func (ApplicationAppConfigTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationAppConfigType)(nil)).Elem() +} + +func (o ApplicationAppConfigTypeOutput) ToApplicationAppConfigTypeOutput() ApplicationAppConfigTypeOutput { + return o +} + +func (o ApplicationAppConfigTypeOutput) ToApplicationAppConfigTypeOutputWithContext(ctx context.Context) ApplicationAppConfigTypeOutput { + return o +} + +func (o ApplicationAppConfigTypeOutput) ToApplicationAppConfigTypePtrOutput() ApplicationAppConfigTypePtrOutput { + return o.ToApplicationAppConfigTypePtrOutputWithContext(context.Background()) +} + +func (o ApplicationAppConfigTypeOutput) ToApplicationAppConfigTypePtrOutputWithContext(ctx context.Context) ApplicationAppConfigTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationAppConfigType) *ApplicationAppConfigType { + return &v + }).(ApplicationAppConfigTypePtrOutput) +} + +func (o ApplicationAppConfigTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o ApplicationAppConfigTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApplicationAppConfigType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o ApplicationAppConfigTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApplicationAppConfigTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ApplicationAppConfigType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type ApplicationAppConfigTypePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationAppConfigTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationAppConfigType)(nil)).Elem() +} + +func (o ApplicationAppConfigTypePtrOutput) ToApplicationAppConfigTypePtrOutput() ApplicationAppConfigTypePtrOutput { + return o +} + +func (o ApplicationAppConfigTypePtrOutput) ToApplicationAppConfigTypePtrOutputWithContext(ctx context.Context) ApplicationAppConfigTypePtrOutput { + return o +} + +func (o ApplicationAppConfigTypePtrOutput) Elem() ApplicationAppConfigTypeOutput { + return o.ApplyT(func(v *ApplicationAppConfigType) ApplicationAppConfigType { + if v != nil { + return *v + } + var ret ApplicationAppConfigType + return ret + }).(ApplicationAppConfigTypeOutput) +} + +func (o ApplicationAppConfigTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ApplicationAppConfigTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *ApplicationAppConfigType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// ApplicationAppConfigTypeInput is an input type that accepts values of the ApplicationAppConfigType enum +// A concrete instance of `ApplicationAppConfigTypeInput` can be one of the following: +// +// ApplicationAppConfigTypeOpensearchDashboardsDashboardAdminUsers +// ApplicationAppConfigTypeOpensearchDashboardsDashboardAdminGroups +type ApplicationAppConfigTypeInput interface { + pulumi.Input + + ToApplicationAppConfigTypeOutput() ApplicationAppConfigTypeOutput + ToApplicationAppConfigTypeOutputWithContext(context.Context) ApplicationAppConfigTypeOutput +} + +var applicationAppConfigTypePtrType = reflect.TypeOf((**ApplicationAppConfigType)(nil)).Elem() + +type ApplicationAppConfigTypePtrInput interface { + pulumi.Input + + ToApplicationAppConfigTypePtrOutput() ApplicationAppConfigTypePtrOutput + ToApplicationAppConfigTypePtrOutputWithContext(context.Context) ApplicationAppConfigTypePtrOutput +} + +type applicationAppConfigTypePtr string + +func ApplicationAppConfigTypePtr(v string) ApplicationAppConfigTypePtrInput { + return (*applicationAppConfigTypePtr)(&v) +} + +func (*applicationAppConfigTypePtr) ElementType() reflect.Type { + return applicationAppConfigTypePtrType +} + +func (in *applicationAppConfigTypePtr) ToApplicationAppConfigTypePtrOutput() ApplicationAppConfigTypePtrOutput { + return pulumi.ToOutput(in).(ApplicationAppConfigTypePtrOutput) +} + +func (in *applicationAppConfigTypePtr) ToApplicationAppConfigTypePtrOutputWithContext(ctx context.Context) ApplicationAppConfigTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(ApplicationAppConfigTypePtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAppConfigTypeInput)(nil)).Elem(), ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.users")) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAppConfigTypePtrInput)(nil)).Elem(), ApplicationAppConfigType("opensearchDashboards.dashboardAdmin.users")) + pulumi.RegisterOutputType(ApplicationAppConfigTypeOutput{}) + pulumi.RegisterOutputType(ApplicationAppConfigTypePtrOutput{}) +} diff --git a/sdk/go/aws/opensearchservice/pulumiTypes.go b/sdk/go/aws/opensearchservice/pulumiTypes.go index 7b8b2be616..fc8f025c0a 100644 --- a/sdk/go/aws/opensearchservice/pulumiTypes.go +++ b/sdk/go/aws/opensearchservice/pulumiTypes.go @@ -13,6 +13,232 @@ import ( var _ = internal.GetEnvOrDefault +// A key-value pair of AppConfig +type ApplicationAppConfig struct { + // The configuration key + Key ApplicationAppConfigType `pulumi:"key"` + // The configuration value. + Value string `pulumi:"value"` +} + +// ApplicationAppConfigInput is an input type that accepts ApplicationAppConfigArgs and ApplicationAppConfigOutput values. +// You can construct a concrete instance of `ApplicationAppConfigInput` via: +// +// ApplicationAppConfigArgs{...} +type ApplicationAppConfigInput interface { + pulumi.Input + + ToApplicationAppConfigOutput() ApplicationAppConfigOutput + ToApplicationAppConfigOutputWithContext(context.Context) ApplicationAppConfigOutput +} + +// A key-value pair of AppConfig +type ApplicationAppConfigArgs struct { + // The configuration key + Key ApplicationAppConfigTypeInput `pulumi:"key"` + // The configuration value. + Value pulumi.StringInput `pulumi:"value"` +} + +func (ApplicationAppConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationAppConfig)(nil)).Elem() +} + +func (i ApplicationAppConfigArgs) ToApplicationAppConfigOutput() ApplicationAppConfigOutput { + return i.ToApplicationAppConfigOutputWithContext(context.Background()) +} + +func (i ApplicationAppConfigArgs) ToApplicationAppConfigOutputWithContext(ctx context.Context) ApplicationAppConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationAppConfigOutput) +} + +// ApplicationAppConfigArrayInput is an input type that accepts ApplicationAppConfigArray and ApplicationAppConfigArrayOutput values. +// You can construct a concrete instance of `ApplicationAppConfigArrayInput` via: +// +// ApplicationAppConfigArray{ ApplicationAppConfigArgs{...} } +type ApplicationAppConfigArrayInput interface { + pulumi.Input + + ToApplicationAppConfigArrayOutput() ApplicationAppConfigArrayOutput + ToApplicationAppConfigArrayOutputWithContext(context.Context) ApplicationAppConfigArrayOutput +} + +type ApplicationAppConfigArray []ApplicationAppConfigInput + +func (ApplicationAppConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationAppConfig)(nil)).Elem() +} + +func (i ApplicationAppConfigArray) ToApplicationAppConfigArrayOutput() ApplicationAppConfigArrayOutput { + return i.ToApplicationAppConfigArrayOutputWithContext(context.Background()) +} + +func (i ApplicationAppConfigArray) ToApplicationAppConfigArrayOutputWithContext(ctx context.Context) ApplicationAppConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationAppConfigArrayOutput) +} + +// A key-value pair of AppConfig +type ApplicationAppConfigOutput struct{ *pulumi.OutputState } + +func (ApplicationAppConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationAppConfig)(nil)).Elem() +} + +func (o ApplicationAppConfigOutput) ToApplicationAppConfigOutput() ApplicationAppConfigOutput { + return o +} + +func (o ApplicationAppConfigOutput) ToApplicationAppConfigOutputWithContext(ctx context.Context) ApplicationAppConfigOutput { + return o +} + +// The configuration key +func (o ApplicationAppConfigOutput) Key() ApplicationAppConfigTypeOutput { + return o.ApplyT(func(v ApplicationAppConfig) ApplicationAppConfigType { return v.Key }).(ApplicationAppConfigTypeOutput) +} + +// The configuration value. +func (o ApplicationAppConfigOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationAppConfig) string { return v.Value }).(pulumi.StringOutput) +} + +type ApplicationAppConfigArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationAppConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationAppConfig)(nil)).Elem() +} + +func (o ApplicationAppConfigArrayOutput) ToApplicationAppConfigArrayOutput() ApplicationAppConfigArrayOutput { + return o +} + +func (o ApplicationAppConfigArrayOutput) ToApplicationAppConfigArrayOutputWithContext(ctx context.Context) ApplicationAppConfigArrayOutput { + return o +} + +func (o ApplicationAppConfigArrayOutput) Index(i pulumi.IntInput) ApplicationAppConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationAppConfig { + return vs[0].([]ApplicationAppConfig)[vs[1].(int)] + }).(ApplicationAppConfigOutput) +} + +// Datasource arn and description +type ApplicationDataSource struct { + // The ARN of the data source. + DataSourceArn interface{} `pulumi:"dataSourceArn"` + // Description of the data source. + DataSourceDescription *string `pulumi:"dataSourceDescription"` +} + +// ApplicationDataSourceInput is an input type that accepts ApplicationDataSourceArgs and ApplicationDataSourceOutput values. +// You can construct a concrete instance of `ApplicationDataSourceInput` via: +// +// ApplicationDataSourceArgs{...} +type ApplicationDataSourceInput interface { + pulumi.Input + + ToApplicationDataSourceOutput() ApplicationDataSourceOutput + ToApplicationDataSourceOutputWithContext(context.Context) ApplicationDataSourceOutput +} + +// Datasource arn and description +type ApplicationDataSourceArgs struct { + // The ARN of the data source. + DataSourceArn pulumi.Input `pulumi:"dataSourceArn"` + // Description of the data source. + DataSourceDescription pulumi.StringPtrInput `pulumi:"dataSourceDescription"` +} + +func (ApplicationDataSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationDataSource)(nil)).Elem() +} + +func (i ApplicationDataSourceArgs) ToApplicationDataSourceOutput() ApplicationDataSourceOutput { + return i.ToApplicationDataSourceOutputWithContext(context.Background()) +} + +func (i ApplicationDataSourceArgs) ToApplicationDataSourceOutputWithContext(ctx context.Context) ApplicationDataSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDataSourceOutput) +} + +// ApplicationDataSourceArrayInput is an input type that accepts ApplicationDataSourceArray and ApplicationDataSourceArrayOutput values. +// You can construct a concrete instance of `ApplicationDataSourceArrayInput` via: +// +// ApplicationDataSourceArray{ ApplicationDataSourceArgs{...} } +type ApplicationDataSourceArrayInput interface { + pulumi.Input + + ToApplicationDataSourceArrayOutput() ApplicationDataSourceArrayOutput + ToApplicationDataSourceArrayOutputWithContext(context.Context) ApplicationDataSourceArrayOutput +} + +type ApplicationDataSourceArray []ApplicationDataSourceInput + +func (ApplicationDataSourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationDataSource)(nil)).Elem() +} + +func (i ApplicationDataSourceArray) ToApplicationDataSourceArrayOutput() ApplicationDataSourceArrayOutput { + return i.ToApplicationDataSourceArrayOutputWithContext(context.Background()) +} + +func (i ApplicationDataSourceArray) ToApplicationDataSourceArrayOutputWithContext(ctx context.Context) ApplicationDataSourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationDataSourceArrayOutput) +} + +// Datasource arn and description +type ApplicationDataSourceOutput struct{ *pulumi.OutputState } + +func (ApplicationDataSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationDataSource)(nil)).Elem() +} + +func (o ApplicationDataSourceOutput) ToApplicationDataSourceOutput() ApplicationDataSourceOutput { + return o +} + +func (o ApplicationDataSourceOutput) ToApplicationDataSourceOutputWithContext(ctx context.Context) ApplicationDataSourceOutput { + return o +} + +// The ARN of the data source. +func (o ApplicationDataSourceOutput) DataSourceArn() pulumi.AnyOutput { + return o.ApplyT(func(v ApplicationDataSource) interface{} { return v.DataSourceArn }).(pulumi.AnyOutput) +} + +// Description of the data source. +func (o ApplicationDataSourceOutput) DataSourceDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationDataSource) *string { return v.DataSourceDescription }).(pulumi.StringPtrOutput) +} + +type ApplicationDataSourceArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationDataSourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationDataSource)(nil)).Elem() +} + +func (o ApplicationDataSourceArrayOutput) ToApplicationDataSourceArrayOutput() ApplicationDataSourceArrayOutput { + return o +} + +func (o ApplicationDataSourceArrayOutput) ToApplicationDataSourceArrayOutputWithContext(ctx context.Context) ApplicationDataSourceArrayOutput { + return o +} + +func (o ApplicationDataSourceArrayOutput) Index(i pulumi.IntInput) ApplicationDataSourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationDataSource { + return vs[0].([]ApplicationDataSource)[vs[1].(int)] + }).(ApplicationDataSourceOutput) +} + +// A key-value pair metadata associated with resource +type ApplicationTag struct { + // The key in the key-value pair + Key string `pulumi:"key"` + // The value in the key-value pair + Value string `pulumi:"value"` +} + type DomainAdvancedSecurityOptionsInput struct { // Date and time when the migration period will be disabled. Only necessary when [enabling fine-grained access control on an existing domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing) . AnonymousAuthDisableDate *string `pulumi:"anonymousAuthDisableDate"` @@ -3816,7 +4042,189 @@ func (o DomainZoneAwarenessConfigPtrOutput) AvailabilityZoneCount() pulumi.IntPt }).(pulumi.IntPtrOutput) } +// Options for configuring IAM Identity Center +type IamIdentityCenterOptionsProperties struct { + // Whether IAM Identity Center is enabled. + Enabled *bool `pulumi:"enabled"` + // The ARN of the IAM Identity Center instance. + IamIdentityCenterInstanceArn interface{} `pulumi:"iamIdentityCenterInstanceArn"` + // The ARN of the IAM role for Identity Center application. + IamRoleForIdentityCenterApplicationArn *string `pulumi:"iamRoleForIdentityCenterApplicationArn"` +} + +// IamIdentityCenterOptionsPropertiesInput is an input type that accepts IamIdentityCenterOptionsPropertiesArgs and IamIdentityCenterOptionsPropertiesOutput values. +// You can construct a concrete instance of `IamIdentityCenterOptionsPropertiesInput` via: +// +// IamIdentityCenterOptionsPropertiesArgs{...} +type IamIdentityCenterOptionsPropertiesInput interface { + pulumi.Input + + ToIamIdentityCenterOptionsPropertiesOutput() IamIdentityCenterOptionsPropertiesOutput + ToIamIdentityCenterOptionsPropertiesOutputWithContext(context.Context) IamIdentityCenterOptionsPropertiesOutput +} + +// Options for configuring IAM Identity Center +type IamIdentityCenterOptionsPropertiesArgs struct { + // Whether IAM Identity Center is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The ARN of the IAM Identity Center instance. + IamIdentityCenterInstanceArn pulumi.Input `pulumi:"iamIdentityCenterInstanceArn"` + // The ARN of the IAM role for Identity Center application. + IamRoleForIdentityCenterApplicationArn pulumi.StringPtrInput `pulumi:"iamRoleForIdentityCenterApplicationArn"` +} + +func (IamIdentityCenterOptionsPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IamIdentityCenterOptionsProperties)(nil)).Elem() +} + +func (i IamIdentityCenterOptionsPropertiesArgs) ToIamIdentityCenterOptionsPropertiesOutput() IamIdentityCenterOptionsPropertiesOutput { + return i.ToIamIdentityCenterOptionsPropertiesOutputWithContext(context.Background()) +} + +func (i IamIdentityCenterOptionsPropertiesArgs) ToIamIdentityCenterOptionsPropertiesOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(IamIdentityCenterOptionsPropertiesOutput) +} + +func (i IamIdentityCenterOptionsPropertiesArgs) ToIamIdentityCenterOptionsPropertiesPtrOutput() IamIdentityCenterOptionsPropertiesPtrOutput { + return i.ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(context.Background()) +} + +func (i IamIdentityCenterOptionsPropertiesArgs) ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IamIdentityCenterOptionsPropertiesOutput).ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(ctx) +} + +// IamIdentityCenterOptionsPropertiesPtrInput is an input type that accepts IamIdentityCenterOptionsPropertiesArgs, IamIdentityCenterOptionsPropertiesPtr and IamIdentityCenterOptionsPropertiesPtrOutput values. +// You can construct a concrete instance of `IamIdentityCenterOptionsPropertiesPtrInput` via: +// +// IamIdentityCenterOptionsPropertiesArgs{...} +// +// or: +// +// nil +type IamIdentityCenterOptionsPropertiesPtrInput interface { + pulumi.Input + + ToIamIdentityCenterOptionsPropertiesPtrOutput() IamIdentityCenterOptionsPropertiesPtrOutput + ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(context.Context) IamIdentityCenterOptionsPropertiesPtrOutput +} + +type iamIdentityCenterOptionsPropertiesPtrType IamIdentityCenterOptionsPropertiesArgs + +func IamIdentityCenterOptionsPropertiesPtr(v *IamIdentityCenterOptionsPropertiesArgs) IamIdentityCenterOptionsPropertiesPtrInput { + return (*iamIdentityCenterOptionsPropertiesPtrType)(v) +} + +func (*iamIdentityCenterOptionsPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**IamIdentityCenterOptionsProperties)(nil)).Elem() +} + +func (i *iamIdentityCenterOptionsPropertiesPtrType) ToIamIdentityCenterOptionsPropertiesPtrOutput() IamIdentityCenterOptionsPropertiesPtrOutput { + return i.ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *iamIdentityCenterOptionsPropertiesPtrType) ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IamIdentityCenterOptionsPropertiesPtrOutput) +} + +// Options for configuring IAM Identity Center +type IamIdentityCenterOptionsPropertiesOutput struct{ *pulumi.OutputState } + +func (IamIdentityCenterOptionsPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IamIdentityCenterOptionsProperties)(nil)).Elem() +} + +func (o IamIdentityCenterOptionsPropertiesOutput) ToIamIdentityCenterOptionsPropertiesOutput() IamIdentityCenterOptionsPropertiesOutput { + return o +} + +func (o IamIdentityCenterOptionsPropertiesOutput) ToIamIdentityCenterOptionsPropertiesOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesOutput { + return o +} + +func (o IamIdentityCenterOptionsPropertiesOutput) ToIamIdentityCenterOptionsPropertiesPtrOutput() IamIdentityCenterOptionsPropertiesPtrOutput { + return o.ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(context.Background()) +} + +func (o IamIdentityCenterOptionsPropertiesOutput) ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IamIdentityCenterOptionsProperties) *IamIdentityCenterOptionsProperties { + return &v + }).(IamIdentityCenterOptionsPropertiesPtrOutput) +} + +// Whether IAM Identity Center is enabled. +func (o IamIdentityCenterOptionsPropertiesOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IamIdentityCenterOptionsProperties) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The ARN of the IAM Identity Center instance. +func (o IamIdentityCenterOptionsPropertiesOutput) IamIdentityCenterInstanceArn() pulumi.AnyOutput { + return o.ApplyT(func(v IamIdentityCenterOptionsProperties) interface{} { return v.IamIdentityCenterInstanceArn }).(pulumi.AnyOutput) +} + +// The ARN of the IAM role for Identity Center application. +func (o IamIdentityCenterOptionsPropertiesOutput) IamRoleForIdentityCenterApplicationArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v IamIdentityCenterOptionsProperties) *string { return v.IamRoleForIdentityCenterApplicationArn }).(pulumi.StringPtrOutput) +} + +type IamIdentityCenterOptionsPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (IamIdentityCenterOptionsPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IamIdentityCenterOptionsProperties)(nil)).Elem() +} + +func (o IamIdentityCenterOptionsPropertiesPtrOutput) ToIamIdentityCenterOptionsPropertiesPtrOutput() IamIdentityCenterOptionsPropertiesPtrOutput { + return o +} + +func (o IamIdentityCenterOptionsPropertiesPtrOutput) ToIamIdentityCenterOptionsPropertiesPtrOutputWithContext(ctx context.Context) IamIdentityCenterOptionsPropertiesPtrOutput { + return o +} + +func (o IamIdentityCenterOptionsPropertiesPtrOutput) Elem() IamIdentityCenterOptionsPropertiesOutput { + return o.ApplyT(func(v *IamIdentityCenterOptionsProperties) IamIdentityCenterOptionsProperties { + if v != nil { + return *v + } + var ret IamIdentityCenterOptionsProperties + return ret + }).(IamIdentityCenterOptionsPropertiesOutput) +} + +// Whether IAM Identity Center is enabled. +func (o IamIdentityCenterOptionsPropertiesPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *IamIdentityCenterOptionsProperties) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The ARN of the IAM Identity Center instance. +func (o IamIdentityCenterOptionsPropertiesPtrOutput) IamIdentityCenterInstanceArn() pulumi.AnyOutput { + return o.ApplyT(func(v *IamIdentityCenterOptionsProperties) interface{} { + if v == nil { + return nil + } + return v.IamIdentityCenterInstanceArn + }).(pulumi.AnyOutput) +} + +// The ARN of the IAM role for Identity Center application. +func (o IamIdentityCenterOptionsPropertiesPtrOutput) IamRoleForIdentityCenterApplicationArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IamIdentityCenterOptionsProperties) *string { + if v == nil { + return nil + } + return v.IamRoleForIdentityCenterApplicationArn + }).(pulumi.StringPtrOutput) +} + func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAppConfigInput)(nil)).Elem(), ApplicationAppConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationAppConfigArrayInput)(nil)).Elem(), ApplicationAppConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDataSourceInput)(nil)).Elem(), ApplicationDataSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationDataSourceArrayInput)(nil)).Elem(), ApplicationDataSourceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainAdvancedSecurityOptionsInputInput)(nil)).Elem(), DomainAdvancedSecurityOptionsInputArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainAdvancedSecurityOptionsInputPtrInput)(nil)).Elem(), DomainAdvancedSecurityOptionsInputArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainClusterConfigInput)(nil)).Elem(), DomainClusterConfigArgs{}) @@ -3857,6 +4265,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DomainWindowStartTimePtrInput)(nil)).Elem(), DomainWindowStartTimeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainZoneAwarenessConfigInput)(nil)).Elem(), DomainZoneAwarenessConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DomainZoneAwarenessConfigPtrInput)(nil)).Elem(), DomainZoneAwarenessConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IamIdentityCenterOptionsPropertiesInput)(nil)).Elem(), IamIdentityCenterOptionsPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*IamIdentityCenterOptionsPropertiesPtrInput)(nil)).Elem(), IamIdentityCenterOptionsPropertiesArgs{}) + pulumi.RegisterOutputType(ApplicationAppConfigOutput{}) + pulumi.RegisterOutputType(ApplicationAppConfigArrayOutput{}) + pulumi.RegisterOutputType(ApplicationDataSourceOutput{}) + pulumi.RegisterOutputType(ApplicationDataSourceArrayOutput{}) pulumi.RegisterOutputType(DomainAdvancedSecurityOptionsInputOutput{}) pulumi.RegisterOutputType(DomainAdvancedSecurityOptionsInputPtrOutput{}) pulumi.RegisterOutputType(DomainClusterConfigOutput{}) @@ -3899,4 +4313,6 @@ func init() { pulumi.RegisterOutputType(DomainWindowStartTimePtrOutput{}) pulumi.RegisterOutputType(DomainZoneAwarenessConfigOutput{}) pulumi.RegisterOutputType(DomainZoneAwarenessConfigPtrOutput{}) + pulumi.RegisterOutputType(IamIdentityCenterOptionsPropertiesOutput{}) + pulumi.RegisterOutputType(IamIdentityCenterOptionsPropertiesPtrOutput{}) } diff --git a/sdk/go/aws/sagemaker/getSpace.go b/sdk/go/aws/sagemaker/getSpace.go index 37fa2518c5..588e0cc7a0 100644 --- a/sdk/go/aws/sagemaker/getSpace.go +++ b/sdk/go/aws/sagemaker/getSpace.go @@ -7,6 +7,7 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -34,6 +35,8 @@ type LookupSpaceResult struct { SpaceArn *string `pulumi:"spaceArn"` // The name of the space that appears in the Studio UI. SpaceDisplayName *string `pulumi:"spaceDisplayName"` + // A list of tags to apply to the space. + Tags []aws.Tag `pulumi:"tags"` // Returns the URL of the space. If the space is created with AWS IAM Identity Center (Successor to AWS Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through AWS IAM Identity Center. // // The following application types are supported: @@ -98,6 +101,11 @@ func (o LookupSpaceResultOutput) SpaceDisplayName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSpaceResult) *string { return v.SpaceDisplayName }).(pulumi.StringPtrOutput) } +// A list of tags to apply to the space. +func (o LookupSpaceResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupSpaceResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + // Returns the URL of the space. If the space is created with AWS IAM Identity Center (Successor to AWS Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through AWS IAM Identity Center. // // The following application types are supported: diff --git a/sdk/go/aws/sagemaker/studioLifecycleConfig.go b/sdk/go/aws/sagemaker/studioLifecycleConfig.go index a7a6ecf552..6c6280d5d5 100644 --- a/sdk/go/aws/sagemaker/studioLifecycleConfig.go +++ b/sdk/go/aws/sagemaker/studioLifecycleConfig.go @@ -21,11 +21,11 @@ type StudioLifecycleConfig struct { StudioLifecycleConfigAppType StudioLifecycleConfigAppTypeOutput `pulumi:"studioLifecycleConfigAppType"` // The Amazon Resource Name (ARN) of the Lifecycle Configuration. StudioLifecycleConfigArn pulumi.StringOutput `pulumi:"studioLifecycleConfigArn"` - // The content of your Amazon SageMaker Studio Lifecycle Configuration script. + // The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. StudioLifecycleConfigContent pulumi.StringOutput `pulumi:"studioLifecycleConfigContent"` // The name of the Amazon SageMaker Studio Lifecycle Configuration. StudioLifecycleConfigName pulumi.StringOutput `pulumi:"studioLifecycleConfigName"` - // Tags to be associated with the Lifecycle Configuration. + // Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. Tags aws.CreateOnlyTagArrayOutput `pulumi:"tags"` } @@ -84,11 +84,11 @@ func (StudioLifecycleConfigState) ElementType() reflect.Type { type studioLifecycleConfigArgs struct { // The App type that the Lifecycle Configuration is attached to. StudioLifecycleConfigAppType StudioLifecycleConfigAppType `pulumi:"studioLifecycleConfigAppType"` - // The content of your Amazon SageMaker Studio Lifecycle Configuration script. + // The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. StudioLifecycleConfigContent string `pulumi:"studioLifecycleConfigContent"` // The name of the Amazon SageMaker Studio Lifecycle Configuration. StudioLifecycleConfigName *string `pulumi:"studioLifecycleConfigName"` - // Tags to be associated with the Lifecycle Configuration. + // Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. Tags []aws.CreateOnlyTag `pulumi:"tags"` } @@ -96,11 +96,11 @@ type studioLifecycleConfigArgs struct { type StudioLifecycleConfigArgs struct { // The App type that the Lifecycle Configuration is attached to. StudioLifecycleConfigAppType StudioLifecycleConfigAppTypeInput - // The content of your Amazon SageMaker Studio Lifecycle Configuration script. + // The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. StudioLifecycleConfigContent pulumi.StringInput // The name of the Amazon SageMaker Studio Lifecycle Configuration. StudioLifecycleConfigName pulumi.StringPtrInput - // Tags to be associated with the Lifecycle Configuration. + // Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. Tags aws.CreateOnlyTagArrayInput } @@ -153,7 +153,7 @@ func (o StudioLifecycleConfigOutput) StudioLifecycleConfigArn() pulumi.StringOut return o.ApplyT(func(v *StudioLifecycleConfig) pulumi.StringOutput { return v.StudioLifecycleConfigArn }).(pulumi.StringOutput) } -// The content of your Amazon SageMaker Studio Lifecycle Configuration script. +// The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. func (o StudioLifecycleConfigOutput) StudioLifecycleConfigContent() pulumi.StringOutput { return o.ApplyT(func(v *StudioLifecycleConfig) pulumi.StringOutput { return v.StudioLifecycleConfigContent }).(pulumi.StringOutput) } @@ -163,7 +163,7 @@ func (o StudioLifecycleConfigOutput) StudioLifecycleConfigName() pulumi.StringOu return o.ApplyT(func(v *StudioLifecycleConfig) pulumi.StringOutput { return v.StudioLifecycleConfigName }).(pulumi.StringOutput) } -// Tags to be associated with the Lifecycle Configuration. +// Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. func (o StudioLifecycleConfigOutput) Tags() aws.CreateOnlyTagArrayOutput { return o.ApplyT(func(v *StudioLifecycleConfig) aws.CreateOnlyTagArrayOutput { return v.Tags }).(aws.CreateOnlyTagArrayOutput) } diff --git a/sdk/go/aws/secretsmanager/getRotationSchedule.go b/sdk/go/aws/secretsmanager/getRotationSchedule.go new file mode 100644 index 0000000000..e8404a4837 --- /dev/null +++ b/sdk/go/aws/secretsmanager/getRotationSchedule.go @@ -0,0 +1,98 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package secretsmanager + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecretsManager::RotationSchedule +func LookupRotationSchedule(ctx *pulumi.Context, args *LookupRotationScheduleArgs, opts ...pulumi.InvokeOption) (*LookupRotationScheduleResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupRotationScheduleResult + err := ctx.Invoke("aws-native:secretsmanager:getRotationSchedule", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupRotationScheduleArgs struct { + // The ARN of the secret. + Id string `pulumi:"id"` +} + +type LookupRotationScheduleResult struct { + // The ARN of the secret. + Id *string `pulumi:"id"` + // The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + RotationLambdaArn *string `pulumi:"rotationLambdaArn"` + // A structure that defines the rotation configuration for this secret. + RotationRules *RotationScheduleRotationRules `pulumi:"rotationRules"` +} + +func LookupRotationScheduleOutput(ctx *pulumi.Context, args LookupRotationScheduleOutputArgs, opts ...pulumi.InvokeOption) LookupRotationScheduleResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupRotationScheduleResultOutput, error) { + args := v.(LookupRotationScheduleArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupRotationScheduleResult + secret, err := ctx.InvokePackageRaw("aws-native:secretsmanager:getRotationSchedule", args, &rv, "", opts...) + if err != nil { + return LookupRotationScheduleResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupRotationScheduleResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupRotationScheduleResultOutput), nil + } + return output, nil + }).(LookupRotationScheduleResultOutput) +} + +type LookupRotationScheduleOutputArgs struct { + // The ARN of the secret. + Id pulumi.StringInput `pulumi:"id"` +} + +func (LookupRotationScheduleOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRotationScheduleArgs)(nil)).Elem() +} + +type LookupRotationScheduleResultOutput struct{ *pulumi.OutputState } + +func (LookupRotationScheduleResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRotationScheduleResult)(nil)).Elem() +} + +func (o LookupRotationScheduleResultOutput) ToLookupRotationScheduleResultOutput() LookupRotationScheduleResultOutput { + return o +} + +func (o LookupRotationScheduleResultOutput) ToLookupRotationScheduleResultOutputWithContext(ctx context.Context) LookupRotationScheduleResultOutput { + return o +} + +// The ARN of the secret. +func (o LookupRotationScheduleResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupRotationScheduleResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. +func (o LookupRotationScheduleResultOutput) RotationLambdaArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupRotationScheduleResult) *string { return v.RotationLambdaArn }).(pulumi.StringPtrOutput) +} + +// A structure that defines the rotation configuration for this secret. +func (o LookupRotationScheduleResultOutput) RotationRules() RotationScheduleRotationRulesPtrOutput { + return o.ApplyT(func(v LookupRotationScheduleResult) *RotationScheduleRotationRules { return v.RotationRules }).(RotationScheduleRotationRulesPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupRotationScheduleResultOutput{}) +} diff --git a/sdk/go/aws/secretsmanager/getSecretTargetAttachment.go b/sdk/go/aws/secretsmanager/getSecretTargetAttachment.go index 0142aeaa74..325cc99530 100644 --- a/sdk/go/aws/secretsmanager/getSecretTargetAttachment.go +++ b/sdk/go/aws/secretsmanager/getSecretTargetAttachment.go @@ -28,8 +28,6 @@ type LookupSecretTargetAttachmentArgs struct { type LookupSecretTargetAttachmentResult struct { Id *string `pulumi:"id"` - // The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition. - SecretId *string `pulumi:"secretId"` // The ID of the database or cluster. TargetId *string `pulumi:"targetId"` // A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: @@ -89,11 +87,6 @@ func (o LookupSecretTargetAttachmentResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSecretTargetAttachmentResult) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition. -func (o LookupSecretTargetAttachmentResultOutput) SecretId() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecretTargetAttachmentResult) *string { return v.SecretId }).(pulumi.StringPtrOutput) -} - // The ID of the database or cluster. func (o LookupSecretTargetAttachmentResultOutput) TargetId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSecretTargetAttachmentResult) *string { return v.TargetId }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/secretsmanager/init.go b/sdk/go/aws/secretsmanager/init.go index 459c16b2e0..f7570270f8 100644 --- a/sdk/go/aws/secretsmanager/init.go +++ b/sdk/go/aws/secretsmanager/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:secretsmanager:ResourcePolicy": r = &ResourcePolicy{} + case "aws-native:secretsmanager:RotationSchedule": + r = &RotationSchedule{} case "aws-native:secretsmanager:Secret": r = &Secret{} case "aws-native:secretsmanager:SecretTargetAttachment": diff --git a/sdk/go/aws/secretsmanager/pulumiTypes.go b/sdk/go/aws/secretsmanager/pulumiTypes.go index 71c8894212..25482be0bf 100644 --- a/sdk/go/aws/secretsmanager/pulumiTypes.go +++ b/sdk/go/aws/secretsmanager/pulumiTypes.go @@ -13,6 +13,508 @@ import ( var _ = internal.GetEnvOrDefault +type RotationScheduleHostedRotationLambda struct { + // A string of the characters that you don't want in the password. + ExcludeCharacters *string `pulumi:"excludeCharacters"` + // The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + KmsKeyArn *string `pulumi:"kmsKeyArn"` + // The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + MasterSecretArn *string `pulumi:"masterSecretArn"` + // The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + MasterSecretKmsKeyArn *string `pulumi:"masterSecretKmsKeyArn"` + // The name of the Lambda rotation function. + RotationLambdaName *string `pulumi:"rotationLambdaName"` + // The type of rotation template to use + RotationType string `pulumi:"rotationType"` + // The python runtime associated with the Lambda function + Runtime *string `pulumi:"runtime"` + // The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + SuperuserSecretArn *string `pulumi:"superuserSecretArn"` + // The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + SuperuserSecretKmsKeyArn *string `pulumi:"superuserSecretKmsKeyArn"` + // A comma-separated list of security group IDs applied to the target database. + VpcSecurityGroupIds *string `pulumi:"vpcSecurityGroupIds"` + // A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + VpcSubnetIds *string `pulumi:"vpcSubnetIds"` +} + +// RotationScheduleHostedRotationLambdaInput is an input type that accepts RotationScheduleHostedRotationLambdaArgs and RotationScheduleHostedRotationLambdaOutput values. +// You can construct a concrete instance of `RotationScheduleHostedRotationLambdaInput` via: +// +// RotationScheduleHostedRotationLambdaArgs{...} +type RotationScheduleHostedRotationLambdaInput interface { + pulumi.Input + + ToRotationScheduleHostedRotationLambdaOutput() RotationScheduleHostedRotationLambdaOutput + ToRotationScheduleHostedRotationLambdaOutputWithContext(context.Context) RotationScheduleHostedRotationLambdaOutput +} + +type RotationScheduleHostedRotationLambdaArgs struct { + // A string of the characters that you don't want in the password. + ExcludeCharacters pulumi.StringPtrInput `pulumi:"excludeCharacters"` + // The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + KmsKeyArn pulumi.StringPtrInput `pulumi:"kmsKeyArn"` + // The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + MasterSecretArn pulumi.StringPtrInput `pulumi:"masterSecretArn"` + // The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + MasterSecretKmsKeyArn pulumi.StringPtrInput `pulumi:"masterSecretKmsKeyArn"` + // The name of the Lambda rotation function. + RotationLambdaName pulumi.StringPtrInput `pulumi:"rotationLambdaName"` + // The type of rotation template to use + RotationType pulumi.StringInput `pulumi:"rotationType"` + // The python runtime associated with the Lambda function + Runtime pulumi.StringPtrInput `pulumi:"runtime"` + // The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + SuperuserSecretArn pulumi.StringPtrInput `pulumi:"superuserSecretArn"` + // The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + SuperuserSecretKmsKeyArn pulumi.StringPtrInput `pulumi:"superuserSecretKmsKeyArn"` + // A comma-separated list of security group IDs applied to the target database. + VpcSecurityGroupIds pulumi.StringPtrInput `pulumi:"vpcSecurityGroupIds"` + // A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + VpcSubnetIds pulumi.StringPtrInput `pulumi:"vpcSubnetIds"` +} + +func (RotationScheduleHostedRotationLambdaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RotationScheduleHostedRotationLambda)(nil)).Elem() +} + +func (i RotationScheduleHostedRotationLambdaArgs) ToRotationScheduleHostedRotationLambdaOutput() RotationScheduleHostedRotationLambdaOutput { + return i.ToRotationScheduleHostedRotationLambdaOutputWithContext(context.Background()) +} + +func (i RotationScheduleHostedRotationLambdaArgs) ToRotationScheduleHostedRotationLambdaOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleHostedRotationLambdaOutput) +} + +func (i RotationScheduleHostedRotationLambdaArgs) ToRotationScheduleHostedRotationLambdaPtrOutput() RotationScheduleHostedRotationLambdaPtrOutput { + return i.ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(context.Background()) +} + +func (i RotationScheduleHostedRotationLambdaArgs) ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleHostedRotationLambdaOutput).ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(ctx) +} + +// RotationScheduleHostedRotationLambdaPtrInput is an input type that accepts RotationScheduleHostedRotationLambdaArgs, RotationScheduleHostedRotationLambdaPtr and RotationScheduleHostedRotationLambdaPtrOutput values. +// You can construct a concrete instance of `RotationScheduleHostedRotationLambdaPtrInput` via: +// +// RotationScheduleHostedRotationLambdaArgs{...} +// +// or: +// +// nil +type RotationScheduleHostedRotationLambdaPtrInput interface { + pulumi.Input + + ToRotationScheduleHostedRotationLambdaPtrOutput() RotationScheduleHostedRotationLambdaPtrOutput + ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(context.Context) RotationScheduleHostedRotationLambdaPtrOutput +} + +type rotationScheduleHostedRotationLambdaPtrType RotationScheduleHostedRotationLambdaArgs + +func RotationScheduleHostedRotationLambdaPtr(v *RotationScheduleHostedRotationLambdaArgs) RotationScheduleHostedRotationLambdaPtrInput { + return (*rotationScheduleHostedRotationLambdaPtrType)(v) +} + +func (*rotationScheduleHostedRotationLambdaPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RotationScheduleHostedRotationLambda)(nil)).Elem() +} + +func (i *rotationScheduleHostedRotationLambdaPtrType) ToRotationScheduleHostedRotationLambdaPtrOutput() RotationScheduleHostedRotationLambdaPtrOutput { + return i.ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(context.Background()) +} + +func (i *rotationScheduleHostedRotationLambdaPtrType) ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleHostedRotationLambdaPtrOutput) +} + +type RotationScheduleHostedRotationLambdaOutput struct{ *pulumi.OutputState } + +func (RotationScheduleHostedRotationLambdaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RotationScheduleHostedRotationLambda)(nil)).Elem() +} + +func (o RotationScheduleHostedRotationLambdaOutput) ToRotationScheduleHostedRotationLambdaOutput() RotationScheduleHostedRotationLambdaOutput { + return o +} + +func (o RotationScheduleHostedRotationLambdaOutput) ToRotationScheduleHostedRotationLambdaOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaOutput { + return o +} + +func (o RotationScheduleHostedRotationLambdaOutput) ToRotationScheduleHostedRotationLambdaPtrOutput() RotationScheduleHostedRotationLambdaPtrOutput { + return o.ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(context.Background()) +} + +func (o RotationScheduleHostedRotationLambdaOutput) ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RotationScheduleHostedRotationLambda) *RotationScheduleHostedRotationLambda { + return &v + }).(RotationScheduleHostedRotationLambdaPtrOutput) +} + +// A string of the characters that you don't want in the password. +func (o RotationScheduleHostedRotationLambdaOutput) ExcludeCharacters() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.ExcludeCharacters }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. +func (o RotationScheduleHostedRotationLambdaOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.KmsKeyArn }).(pulumi.StringPtrOutput) +} + +// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. +func (o RotationScheduleHostedRotationLambdaOutput) MasterSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.MasterSecretArn }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. +func (o RotationScheduleHostedRotationLambdaOutput) MasterSecretKmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.MasterSecretKmsKeyArn }).(pulumi.StringPtrOutput) +} + +// The name of the Lambda rotation function. +func (o RotationScheduleHostedRotationLambdaOutput) RotationLambdaName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.RotationLambdaName }).(pulumi.StringPtrOutput) +} + +// The type of rotation template to use +func (o RotationScheduleHostedRotationLambdaOutput) RotationType() pulumi.StringOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) string { return v.RotationType }).(pulumi.StringOutput) +} + +// The python runtime associated with the Lambda function +func (o RotationScheduleHostedRotationLambdaOutput) Runtime() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.Runtime }).(pulumi.StringPtrOutput) +} + +// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. +func (o RotationScheduleHostedRotationLambdaOutput) SuperuserSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.SuperuserSecretArn }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. +func (o RotationScheduleHostedRotationLambdaOutput) SuperuserSecretKmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.SuperuserSecretKmsKeyArn }).(pulumi.StringPtrOutput) +} + +// A comma-separated list of security group IDs applied to the target database. +func (o RotationScheduleHostedRotationLambdaOutput) VpcSecurityGroupIds() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.VpcSecurityGroupIds }).(pulumi.StringPtrOutput) +} + +// A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. +func (o RotationScheduleHostedRotationLambdaOutput) VpcSubnetIds() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleHostedRotationLambda) *string { return v.VpcSubnetIds }).(pulumi.StringPtrOutput) +} + +type RotationScheduleHostedRotationLambdaPtrOutput struct{ *pulumi.OutputState } + +func (RotationScheduleHostedRotationLambdaPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RotationScheduleHostedRotationLambda)(nil)).Elem() +} + +func (o RotationScheduleHostedRotationLambdaPtrOutput) ToRotationScheduleHostedRotationLambdaPtrOutput() RotationScheduleHostedRotationLambdaPtrOutput { + return o +} + +func (o RotationScheduleHostedRotationLambdaPtrOutput) ToRotationScheduleHostedRotationLambdaPtrOutputWithContext(ctx context.Context) RotationScheduleHostedRotationLambdaPtrOutput { + return o +} + +func (o RotationScheduleHostedRotationLambdaPtrOutput) Elem() RotationScheduleHostedRotationLambdaOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) RotationScheduleHostedRotationLambda { + if v != nil { + return *v + } + var ret RotationScheduleHostedRotationLambda + return ret + }).(RotationScheduleHostedRotationLambdaOutput) +} + +// A string of the characters that you don't want in the password. +func (o RotationScheduleHostedRotationLambdaPtrOutput) ExcludeCharacters() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.ExcludeCharacters + }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. +func (o RotationScheduleHostedRotationLambdaPtrOutput) KmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.KmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. +func (o RotationScheduleHostedRotationLambdaPtrOutput) MasterSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.MasterSecretArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. +func (o RotationScheduleHostedRotationLambdaPtrOutput) MasterSecretKmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.MasterSecretKmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// The name of the Lambda rotation function. +func (o RotationScheduleHostedRotationLambdaPtrOutput) RotationLambdaName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.RotationLambdaName + }).(pulumi.StringPtrOutput) +} + +// The type of rotation template to use +func (o RotationScheduleHostedRotationLambdaPtrOutput) RotationType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return &v.RotationType + }).(pulumi.StringPtrOutput) +} + +// The python runtime associated with the Lambda function +func (o RotationScheduleHostedRotationLambdaPtrOutput) Runtime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.Runtime + }).(pulumi.StringPtrOutput) +} + +// The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. +func (o RotationScheduleHostedRotationLambdaPtrOutput) SuperuserSecretArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.SuperuserSecretArn + }).(pulumi.StringPtrOutput) +} + +// The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. +func (o RotationScheduleHostedRotationLambdaPtrOutput) SuperuserSecretKmsKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.SuperuserSecretKmsKeyArn + }).(pulumi.StringPtrOutput) +} + +// A comma-separated list of security group IDs applied to the target database. +func (o RotationScheduleHostedRotationLambdaPtrOutput) VpcSecurityGroupIds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.VpcSecurityGroupIds + }).(pulumi.StringPtrOutput) +} + +// A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. +func (o RotationScheduleHostedRotationLambdaPtrOutput) VpcSubnetIds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleHostedRotationLambda) *string { + if v == nil { + return nil + } + return v.VpcSubnetIds + }).(pulumi.StringPtrOutput) +} + +type RotationScheduleRotationRules struct { + // The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + AutomaticallyAfterDays *int `pulumi:"automaticallyAfterDays"` + // The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + Duration *string `pulumi:"duration"` + // A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + ScheduleExpression *string `pulumi:"scheduleExpression"` +} + +// RotationScheduleRotationRulesInput is an input type that accepts RotationScheduleRotationRulesArgs and RotationScheduleRotationRulesOutput values. +// You can construct a concrete instance of `RotationScheduleRotationRulesInput` via: +// +// RotationScheduleRotationRulesArgs{...} +type RotationScheduleRotationRulesInput interface { + pulumi.Input + + ToRotationScheduleRotationRulesOutput() RotationScheduleRotationRulesOutput + ToRotationScheduleRotationRulesOutputWithContext(context.Context) RotationScheduleRotationRulesOutput +} + +type RotationScheduleRotationRulesArgs struct { + // The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + AutomaticallyAfterDays pulumi.IntPtrInput `pulumi:"automaticallyAfterDays"` + // The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + Duration pulumi.StringPtrInput `pulumi:"duration"` + // A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + ScheduleExpression pulumi.StringPtrInput `pulumi:"scheduleExpression"` +} + +func (RotationScheduleRotationRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RotationScheduleRotationRules)(nil)).Elem() +} + +func (i RotationScheduleRotationRulesArgs) ToRotationScheduleRotationRulesOutput() RotationScheduleRotationRulesOutput { + return i.ToRotationScheduleRotationRulesOutputWithContext(context.Background()) +} + +func (i RotationScheduleRotationRulesArgs) ToRotationScheduleRotationRulesOutputWithContext(ctx context.Context) RotationScheduleRotationRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleRotationRulesOutput) +} + +func (i RotationScheduleRotationRulesArgs) ToRotationScheduleRotationRulesPtrOutput() RotationScheduleRotationRulesPtrOutput { + return i.ToRotationScheduleRotationRulesPtrOutputWithContext(context.Background()) +} + +func (i RotationScheduleRotationRulesArgs) ToRotationScheduleRotationRulesPtrOutputWithContext(ctx context.Context) RotationScheduleRotationRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleRotationRulesOutput).ToRotationScheduleRotationRulesPtrOutputWithContext(ctx) +} + +// RotationScheduleRotationRulesPtrInput is an input type that accepts RotationScheduleRotationRulesArgs, RotationScheduleRotationRulesPtr and RotationScheduleRotationRulesPtrOutput values. +// You can construct a concrete instance of `RotationScheduleRotationRulesPtrInput` via: +// +// RotationScheduleRotationRulesArgs{...} +// +// or: +// +// nil +type RotationScheduleRotationRulesPtrInput interface { + pulumi.Input + + ToRotationScheduleRotationRulesPtrOutput() RotationScheduleRotationRulesPtrOutput + ToRotationScheduleRotationRulesPtrOutputWithContext(context.Context) RotationScheduleRotationRulesPtrOutput +} + +type rotationScheduleRotationRulesPtrType RotationScheduleRotationRulesArgs + +func RotationScheduleRotationRulesPtr(v *RotationScheduleRotationRulesArgs) RotationScheduleRotationRulesPtrInput { + return (*rotationScheduleRotationRulesPtrType)(v) +} + +func (*rotationScheduleRotationRulesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RotationScheduleRotationRules)(nil)).Elem() +} + +func (i *rotationScheduleRotationRulesPtrType) ToRotationScheduleRotationRulesPtrOutput() RotationScheduleRotationRulesPtrOutput { + return i.ToRotationScheduleRotationRulesPtrOutputWithContext(context.Background()) +} + +func (i *rotationScheduleRotationRulesPtrType) ToRotationScheduleRotationRulesPtrOutputWithContext(ctx context.Context) RotationScheduleRotationRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleRotationRulesPtrOutput) +} + +type RotationScheduleRotationRulesOutput struct{ *pulumi.OutputState } + +func (RotationScheduleRotationRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RotationScheduleRotationRules)(nil)).Elem() +} + +func (o RotationScheduleRotationRulesOutput) ToRotationScheduleRotationRulesOutput() RotationScheduleRotationRulesOutput { + return o +} + +func (o RotationScheduleRotationRulesOutput) ToRotationScheduleRotationRulesOutputWithContext(ctx context.Context) RotationScheduleRotationRulesOutput { + return o +} + +func (o RotationScheduleRotationRulesOutput) ToRotationScheduleRotationRulesPtrOutput() RotationScheduleRotationRulesPtrOutput { + return o.ToRotationScheduleRotationRulesPtrOutputWithContext(context.Background()) +} + +func (o RotationScheduleRotationRulesOutput) ToRotationScheduleRotationRulesPtrOutputWithContext(ctx context.Context) RotationScheduleRotationRulesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RotationScheduleRotationRules) *RotationScheduleRotationRules { + return &v + }).(RotationScheduleRotationRulesPtrOutput) +} + +// The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. +func (o RotationScheduleRotationRulesOutput) AutomaticallyAfterDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v RotationScheduleRotationRules) *int { return v.AutomaticallyAfterDays }).(pulumi.IntPtrOutput) +} + +// The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. +func (o RotationScheduleRotationRulesOutput) Duration() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleRotationRules) *string { return v.Duration }).(pulumi.StringPtrOutput) +} + +// A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. +func (o RotationScheduleRotationRulesOutput) ScheduleExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v RotationScheduleRotationRules) *string { return v.ScheduleExpression }).(pulumi.StringPtrOutput) +} + +type RotationScheduleRotationRulesPtrOutput struct{ *pulumi.OutputState } + +func (RotationScheduleRotationRulesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RotationScheduleRotationRules)(nil)).Elem() +} + +func (o RotationScheduleRotationRulesPtrOutput) ToRotationScheduleRotationRulesPtrOutput() RotationScheduleRotationRulesPtrOutput { + return o +} + +func (o RotationScheduleRotationRulesPtrOutput) ToRotationScheduleRotationRulesPtrOutputWithContext(ctx context.Context) RotationScheduleRotationRulesPtrOutput { + return o +} + +func (o RotationScheduleRotationRulesPtrOutput) Elem() RotationScheduleRotationRulesOutput { + return o.ApplyT(func(v *RotationScheduleRotationRules) RotationScheduleRotationRules { + if v != nil { + return *v + } + var ret RotationScheduleRotationRules + return ret + }).(RotationScheduleRotationRulesOutput) +} + +// The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. +func (o RotationScheduleRotationRulesPtrOutput) AutomaticallyAfterDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RotationScheduleRotationRules) *int { + if v == nil { + return nil + } + return v.AutomaticallyAfterDays + }).(pulumi.IntPtrOutput) +} + +// The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. +func (o RotationScheduleRotationRulesPtrOutput) Duration() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleRotationRules) *string { + if v == nil { + return nil + } + return v.Duration + }).(pulumi.StringPtrOutput) +} + +// A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. +func (o RotationScheduleRotationRulesPtrOutput) ScheduleExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationScheduleRotationRules) *string { + if v == nil { + return nil + } + return v.ScheduleExpression + }).(pulumi.StringPtrOutput) +} + // Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. // // *Required permissions:* ``secretsmanager:GetRandomPassword``. For more information, see [IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-actions-as-permissions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). @@ -448,10 +950,18 @@ type SecretTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RotationScheduleHostedRotationLambdaInput)(nil)).Elem(), RotationScheduleHostedRotationLambdaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RotationScheduleHostedRotationLambdaPtrInput)(nil)).Elem(), RotationScheduleHostedRotationLambdaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RotationScheduleRotationRulesInput)(nil)).Elem(), RotationScheduleRotationRulesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RotationScheduleRotationRulesPtrInput)(nil)).Elem(), RotationScheduleRotationRulesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretGenerateSecretStringInput)(nil)).Elem(), SecretGenerateSecretStringArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretGenerateSecretStringPtrInput)(nil)).Elem(), SecretGenerateSecretStringArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretReplicaRegionInput)(nil)).Elem(), SecretReplicaRegionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecretReplicaRegionArrayInput)(nil)).Elem(), SecretReplicaRegionArray{}) + pulumi.RegisterOutputType(RotationScheduleHostedRotationLambdaOutput{}) + pulumi.RegisterOutputType(RotationScheduleHostedRotationLambdaPtrOutput{}) + pulumi.RegisterOutputType(RotationScheduleRotationRulesOutput{}) + pulumi.RegisterOutputType(RotationScheduleRotationRulesPtrOutput{}) pulumi.RegisterOutputType(SecretGenerateSecretStringOutput{}) pulumi.RegisterOutputType(SecretGenerateSecretStringPtrOutput{}) pulumi.RegisterOutputType(SecretReplicaRegionOutput{}) diff --git a/sdk/go/aws/secretsmanager/rotationSchedule.go b/sdk/go/aws/secretsmanager/rotationSchedule.go new file mode 100644 index 0000000000..3f164ceba7 --- /dev/null +++ b/sdk/go/aws/secretsmanager/rotationSchedule.go @@ -0,0 +1,176 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package secretsmanager + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecretsManager::RotationSchedule +type RotationSchedule struct { + pulumi.CustomResourceState + + // The ARN of the secret. + AwsId pulumi.StringOutput `pulumi:"awsId"` + // Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + HostedRotationLambda RotationScheduleHostedRotationLambdaPtrOutput `pulumi:"hostedRotationLambda"` + // Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + RotateImmediatelyOnUpdate pulumi.BoolPtrOutput `pulumi:"rotateImmediatelyOnUpdate"` + // The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + RotationLambdaArn pulumi.StringPtrOutput `pulumi:"rotationLambdaArn"` + // A structure that defines the rotation configuration for this secret. + RotationRules RotationScheduleRotationRulesPtrOutput `pulumi:"rotationRules"` + // The ARN or name of the secret to rotate. + SecretId pulumi.StringOutput `pulumi:"secretId"` +} + +// NewRotationSchedule registers a new resource with the given unique name, arguments, and options. +func NewRotationSchedule(ctx *pulumi.Context, + name string, args *RotationScheduleArgs, opts ...pulumi.ResourceOption) (*RotationSchedule, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SecretId == nil { + return nil, errors.New("invalid value for required argument 'SecretId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "secretId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource RotationSchedule + err := ctx.RegisterResource("aws-native:secretsmanager:RotationSchedule", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRotationSchedule gets an existing RotationSchedule 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 GetRotationSchedule(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RotationScheduleState, opts ...pulumi.ResourceOption) (*RotationSchedule, error) { + var resource RotationSchedule + err := ctx.ReadResource("aws-native:secretsmanager:RotationSchedule", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RotationSchedule resources. +type rotationScheduleState struct { +} + +type RotationScheduleState struct { +} + +func (RotationScheduleState) ElementType() reflect.Type { + return reflect.TypeOf((*rotationScheduleState)(nil)).Elem() +} + +type rotationScheduleArgs struct { + // Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + HostedRotationLambda *RotationScheduleHostedRotationLambda `pulumi:"hostedRotationLambda"` + // Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + RotateImmediatelyOnUpdate *bool `pulumi:"rotateImmediatelyOnUpdate"` + // The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + RotationLambdaArn *string `pulumi:"rotationLambdaArn"` + // A structure that defines the rotation configuration for this secret. + RotationRules *RotationScheduleRotationRules `pulumi:"rotationRules"` + // The ARN or name of the secret to rotate. + SecretId string `pulumi:"secretId"` +} + +// The set of arguments for constructing a RotationSchedule resource. +type RotationScheduleArgs struct { + // Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + HostedRotationLambda RotationScheduleHostedRotationLambdaPtrInput + // Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + RotateImmediatelyOnUpdate pulumi.BoolPtrInput + // The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + RotationLambdaArn pulumi.StringPtrInput + // A structure that defines the rotation configuration for this secret. + RotationRules RotationScheduleRotationRulesPtrInput + // The ARN or name of the secret to rotate. + SecretId pulumi.StringInput +} + +func (RotationScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*rotationScheduleArgs)(nil)).Elem() +} + +type RotationScheduleInput interface { + pulumi.Input + + ToRotationScheduleOutput() RotationScheduleOutput + ToRotationScheduleOutputWithContext(ctx context.Context) RotationScheduleOutput +} + +func (*RotationSchedule) ElementType() reflect.Type { + return reflect.TypeOf((**RotationSchedule)(nil)).Elem() +} + +func (i *RotationSchedule) ToRotationScheduleOutput() RotationScheduleOutput { + return i.ToRotationScheduleOutputWithContext(context.Background()) +} + +func (i *RotationSchedule) ToRotationScheduleOutputWithContext(ctx context.Context) RotationScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RotationScheduleOutput) +} + +type RotationScheduleOutput struct{ *pulumi.OutputState } + +func (RotationScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RotationSchedule)(nil)).Elem() +} + +func (o RotationScheduleOutput) ToRotationScheduleOutput() RotationScheduleOutput { + return o +} + +func (o RotationScheduleOutput) ToRotationScheduleOutputWithContext(ctx context.Context) RotationScheduleOutput { + return o +} + +// The ARN of the secret. +func (o RotationScheduleOutput) AwsId() pulumi.StringOutput { + return o.ApplyT(func(v *RotationSchedule) pulumi.StringOutput { return v.AwsId }).(pulumi.StringOutput) +} + +// Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. +func (o RotationScheduleOutput) HostedRotationLambda() RotationScheduleHostedRotationLambdaPtrOutput { + return o.ApplyT(func(v *RotationSchedule) RotationScheduleHostedRotationLambdaPtrOutput { return v.HostedRotationLambda }).(RotationScheduleHostedRotationLambdaPtrOutput) +} + +// Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. +func (o RotationScheduleOutput) RotateImmediatelyOnUpdate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RotationSchedule) pulumi.BoolPtrOutput { return v.RotateImmediatelyOnUpdate }).(pulumi.BoolPtrOutput) +} + +// The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. +func (o RotationScheduleOutput) RotationLambdaArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RotationSchedule) pulumi.StringPtrOutput { return v.RotationLambdaArn }).(pulumi.StringPtrOutput) +} + +// A structure that defines the rotation configuration for this secret. +func (o RotationScheduleOutput) RotationRules() RotationScheduleRotationRulesPtrOutput { + return o.ApplyT(func(v *RotationSchedule) RotationScheduleRotationRulesPtrOutput { return v.RotationRules }).(RotationScheduleRotationRulesPtrOutput) +} + +// The ARN or name of the secret to rotate. +func (o RotationScheduleOutput) SecretId() pulumi.StringOutput { + return o.ApplyT(func(v *RotationSchedule) pulumi.StringOutput { return v.SecretId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RotationScheduleInput)(nil)).Elem(), &RotationSchedule{}) + pulumi.RegisterOutputType(RotationScheduleOutput{}) +} diff --git a/sdk/go/aws/secretsmanager/secretTargetAttachment.go b/sdk/go/aws/secretsmanager/secretTargetAttachment.go index 0d8810f754..cf23aa6845 100644 --- a/sdk/go/aws/secretsmanager/secretTargetAttachment.go +++ b/sdk/go/aws/secretsmanager/secretTargetAttachment.go @@ -49,6 +49,10 @@ func NewSecretTargetAttachment(ctx *pulumi.Context, if args.TargetType == nil { return nil, errors.New("invalid value for required argument 'TargetType'") } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "secretId", + }) + opts = append(opts, replaceOnChanges) opts = internal.PkgResourceDefaultOpts(opts) var resource SecretTargetAttachment err := ctx.RegisterResource("aws-native:secretsmanager:SecretTargetAttachment", name, args, &resource, opts...) diff --git a/sdk/go/aws/wisdom/aiPromptVersion.go b/sdk/go/aws/wisdom/aiPromptVersion.go new file mode 100644 index 0000000000..fd27094836 --- /dev/null +++ b/sdk/go/aws/wisdom/aiPromptVersion.go @@ -0,0 +1,160 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package wisdom + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Wisdom::AIPromptVersion Resource Type +type AiPromptVersion struct { + pulumi.CustomResourceState + + AiPromptArn pulumi.StringOutput `pulumi:"aiPromptArn"` + AiPromptId pulumi.StringOutput `pulumi:"aiPromptId"` + AiPromptVersionId pulumi.StringOutput `pulumi:"aiPromptVersionId"` + AssistantArn pulumi.StringOutput `pulumi:"assistantArn"` + AssistantId pulumi.StringOutput `pulumi:"assistantId"` + ModifiedTimeSeconds pulumi.Float64PtrOutput `pulumi:"modifiedTimeSeconds"` + VersionNumber pulumi.Float64Output `pulumi:"versionNumber"` +} + +// NewAiPromptVersion registers a new resource with the given unique name, arguments, and options. +func NewAiPromptVersion(ctx *pulumi.Context, + name string, args *AiPromptVersionArgs, opts ...pulumi.ResourceOption) (*AiPromptVersion, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AiPromptId == nil { + return nil, errors.New("invalid value for required argument 'AiPromptId'") + } + if args.AssistantId == nil { + return nil, errors.New("invalid value for required argument 'AssistantId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "aiPromptId", + "assistantId", + "modifiedTimeSeconds", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource AiPromptVersion + err := ctx.RegisterResource("aws-native:wisdom:AiPromptVersion", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAiPromptVersion gets an existing AiPromptVersion 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 GetAiPromptVersion(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AiPromptVersionState, opts ...pulumi.ResourceOption) (*AiPromptVersion, error) { + var resource AiPromptVersion + err := ctx.ReadResource("aws-native:wisdom:AiPromptVersion", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AiPromptVersion resources. +type aiPromptVersionState struct { +} + +type AiPromptVersionState struct { +} + +func (AiPromptVersionState) ElementType() reflect.Type { + return reflect.TypeOf((*aiPromptVersionState)(nil)).Elem() +} + +type aiPromptVersionArgs struct { + AiPromptId string `pulumi:"aiPromptId"` + AssistantId string `pulumi:"assistantId"` + ModifiedTimeSeconds *float64 `pulumi:"modifiedTimeSeconds"` +} + +// The set of arguments for constructing a AiPromptVersion resource. +type AiPromptVersionArgs struct { + AiPromptId pulumi.StringInput + AssistantId pulumi.StringInput + ModifiedTimeSeconds pulumi.Float64PtrInput +} + +func (AiPromptVersionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*aiPromptVersionArgs)(nil)).Elem() +} + +type AiPromptVersionInput interface { + pulumi.Input + + ToAiPromptVersionOutput() AiPromptVersionOutput + ToAiPromptVersionOutputWithContext(ctx context.Context) AiPromptVersionOutput +} + +func (*AiPromptVersion) ElementType() reflect.Type { + return reflect.TypeOf((**AiPromptVersion)(nil)).Elem() +} + +func (i *AiPromptVersion) ToAiPromptVersionOutput() AiPromptVersionOutput { + return i.ToAiPromptVersionOutputWithContext(context.Background()) +} + +func (i *AiPromptVersion) ToAiPromptVersionOutputWithContext(ctx context.Context) AiPromptVersionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AiPromptVersionOutput) +} + +type AiPromptVersionOutput struct{ *pulumi.OutputState } + +func (AiPromptVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AiPromptVersion)(nil)).Elem() +} + +func (o AiPromptVersionOutput) ToAiPromptVersionOutput() AiPromptVersionOutput { + return o +} + +func (o AiPromptVersionOutput) ToAiPromptVersionOutputWithContext(ctx context.Context) AiPromptVersionOutput { + return o +} + +func (o AiPromptVersionOutput) AiPromptArn() pulumi.StringOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.StringOutput { return v.AiPromptArn }).(pulumi.StringOutput) +} + +func (o AiPromptVersionOutput) AiPromptId() pulumi.StringOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.StringOutput { return v.AiPromptId }).(pulumi.StringOutput) +} + +func (o AiPromptVersionOutput) AiPromptVersionId() pulumi.StringOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.StringOutput { return v.AiPromptVersionId }).(pulumi.StringOutput) +} + +func (o AiPromptVersionOutput) AssistantArn() pulumi.StringOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.StringOutput { return v.AssistantArn }).(pulumi.StringOutput) +} + +func (o AiPromptVersionOutput) AssistantId() pulumi.StringOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.StringOutput { return v.AssistantId }).(pulumi.StringOutput) +} + +func (o AiPromptVersionOutput) ModifiedTimeSeconds() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AiPromptVersion) pulumi.Float64PtrOutput { return v.ModifiedTimeSeconds }).(pulumi.Float64PtrOutput) +} + +func (o AiPromptVersionOutput) VersionNumber() pulumi.Float64Output { + return o.ApplyT(func(v *AiPromptVersion) pulumi.Float64Output { return v.VersionNumber }).(pulumi.Float64Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AiPromptVersionInput)(nil)).Elem(), &AiPromptVersion{}) + pulumi.RegisterOutputType(AiPromptVersionOutput{}) +} diff --git a/sdk/go/aws/wisdom/getAiPromptVersion.go b/sdk/go/aws/wisdom/getAiPromptVersion.go new file mode 100644 index 0000000000..8efc42102c --- /dev/null +++ b/sdk/go/aws/wisdom/getAiPromptVersion.go @@ -0,0 +1,99 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package wisdom + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Wisdom::AIPromptVersion Resource Type +func LookupAiPromptVersion(ctx *pulumi.Context, args *LookupAiPromptVersionArgs, opts ...pulumi.InvokeOption) (*LookupAiPromptVersionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAiPromptVersionResult + err := ctx.Invoke("aws-native:wisdom:getAiPromptVersion", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupAiPromptVersionArgs struct { + AiPromptId string `pulumi:"aiPromptId"` + AssistantId string `pulumi:"assistantId"` + VersionNumber float64 `pulumi:"versionNumber"` +} + +type LookupAiPromptVersionResult struct { + AiPromptArn *string `pulumi:"aiPromptArn"` + AiPromptVersionId *string `pulumi:"aiPromptVersionId"` + AssistantArn *string `pulumi:"assistantArn"` + VersionNumber *float64 `pulumi:"versionNumber"` +} + +func LookupAiPromptVersionOutput(ctx *pulumi.Context, args LookupAiPromptVersionOutputArgs, opts ...pulumi.InvokeOption) LookupAiPromptVersionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAiPromptVersionResultOutput, error) { + args := v.(LookupAiPromptVersionArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAiPromptVersionResult + secret, err := ctx.InvokePackageRaw("aws-native:wisdom:getAiPromptVersion", args, &rv, "", opts...) + if err != nil { + return LookupAiPromptVersionResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupAiPromptVersionResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupAiPromptVersionResultOutput), nil + } + return output, nil + }).(LookupAiPromptVersionResultOutput) +} + +type LookupAiPromptVersionOutputArgs struct { + AiPromptId pulumi.StringInput `pulumi:"aiPromptId"` + AssistantId pulumi.StringInput `pulumi:"assistantId"` + VersionNumber pulumi.Float64Input `pulumi:"versionNumber"` +} + +func (LookupAiPromptVersionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAiPromptVersionArgs)(nil)).Elem() +} + +type LookupAiPromptVersionResultOutput struct{ *pulumi.OutputState } + +func (LookupAiPromptVersionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAiPromptVersionResult)(nil)).Elem() +} + +func (o LookupAiPromptVersionResultOutput) ToLookupAiPromptVersionResultOutput() LookupAiPromptVersionResultOutput { + return o +} + +func (o LookupAiPromptVersionResultOutput) ToLookupAiPromptVersionResultOutputWithContext(ctx context.Context) LookupAiPromptVersionResultOutput { + return o +} + +func (o LookupAiPromptVersionResultOutput) AiPromptArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAiPromptVersionResult) *string { return v.AiPromptArn }).(pulumi.StringPtrOutput) +} + +func (o LookupAiPromptVersionResultOutput) AiPromptVersionId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAiPromptVersionResult) *string { return v.AiPromptVersionId }).(pulumi.StringPtrOutput) +} + +func (o LookupAiPromptVersionResultOutput) AssistantArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAiPromptVersionResult) *string { return v.AssistantArn }).(pulumi.StringPtrOutput) +} + +func (o LookupAiPromptVersionResultOutput) VersionNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupAiPromptVersionResult) *float64 { return v.VersionNumber }).(pulumi.Float64PtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAiPromptVersionResultOutput{}) +} diff --git a/sdk/go/aws/wisdom/init.go b/sdk/go/aws/wisdom/init.go index 2ff48e87ab..3491dbf010 100644 --- a/sdk/go/aws/wisdom/init.go +++ b/sdk/go/aws/wisdom/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:wisdom:AiPrompt": r = &AiPrompt{} + case "aws-native:wisdom:AiPromptVersion": + r = &AiPromptVersion{} case "aws-native:wisdom:Assistant": r = &Assistant{} case "aws-native:wisdom:AssistantAssociation": diff --git a/sdk/nodejs/appsync/api.ts b/sdk/nodejs/appsync/api.ts new file mode 100644 index 0000000000..ca4cda16ea --- /dev/null +++ b/sdk/nodejs/appsync/api.ts @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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 schema for AppSync Api + */ +export class Api extends pulumi.CustomResource { + /** + * Get an existing Api 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 opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Api { + return new Api(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:appsync:Api'; + + /** + * Returns true if the given object is an instance of Api. 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 Api { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Api.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) of the AppSync Api + */ + public /*out*/ readonly apiArn!: pulumi.Output; + /** + * The unique identifier for the AppSync Api generated by the service + */ + public /*out*/ readonly apiId!: pulumi.Output; + public /*out*/ readonly dns!: pulumi.Output<{[key: string]: string}>; + public readonly eventConfig!: pulumi.Output; + public readonly name!: pulumi.Output; + public readonly ownerContact!: pulumi.Output; + public readonly tags!: pulumi.Output; + + /** + * Create a Api 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?: ApiArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["eventConfig"] = args ? args.eventConfig : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["ownerContact"] = args ? args.ownerContact : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["apiArn"] = undefined /*out*/; + resourceInputs["apiId"] = undefined /*out*/; + resourceInputs["dns"] = undefined /*out*/; + } else { + resourceInputs["apiArn"] = undefined /*out*/; + resourceInputs["apiId"] = undefined /*out*/; + resourceInputs["dns"] = undefined /*out*/; + resourceInputs["eventConfig"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["ownerContact"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Api.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Api resource. + */ +export interface ApiArgs { + eventConfig?: pulumi.Input; + name?: pulumi.Input; + ownerContact?: pulumi.Input; + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/appsync/getApi.ts b/sdk/nodejs/appsync/getApi.ts new file mode 100644 index 0000000000..6cd4f4bb8e --- /dev/null +++ b/sdk/nodejs/appsync/getApi.ts @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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 schema for AppSync Api + */ +export function getApi(args: GetApiArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:appsync:getApi", { + "apiArn": args.apiArn, + }, opts); +} + +export interface GetApiArgs { + /** + * The Amazon Resource Name (ARN) of the AppSync Api + */ + apiArn: string; +} + +export interface GetApiResult { + /** + * The Amazon Resource Name (ARN) of the AppSync Api + */ + readonly apiArn?: string; + /** + * The unique identifier for the AppSync Api generated by the service + */ + readonly apiId?: string; + readonly dns?: {[key: string]: string}; + readonly eventConfig?: outputs.appsync.ApiEventConfig; + readonly name?: string; + readonly ownerContact?: string; + readonly tags?: outputs.Tag[]; +} +/** + * Resource schema for AppSync Api + */ +export function getApiOutput(args: GetApiOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:appsync:getApi", { + "apiArn": args.apiArn, + }, opts); +} + +export interface GetApiOutputArgs { + /** + * The Amazon Resource Name (ARN) of the AppSync Api + */ + apiArn: pulumi.Input; +} diff --git a/sdk/nodejs/appsync/index.ts b/sdk/nodejs/appsync/index.ts index f1d3e63878..cbe37c694d 100644 --- a/sdk/nodejs/appsync/index.ts +++ b/sdk/nodejs/appsync/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { ApiArgs } from "./api"; +export type Api = import("./api").Api; +export const Api: typeof import("./api").Api = null as any; +utilities.lazyLoad(exports, ["Api"], () => require("./api")); + export { DataSourceArgs } from "./dataSource"; export type DataSource = import("./dataSource").DataSource; export const DataSource: typeof import("./dataSource").DataSource = null as any; @@ -25,6 +30,11 @@ export type FunctionConfiguration = import("./functionConfiguration").FunctionCo export const FunctionConfiguration: typeof import("./functionConfiguration").FunctionConfiguration = null as any; utilities.lazyLoad(exports, ["FunctionConfiguration"], () => require("./functionConfiguration")); +export { GetApiArgs, GetApiResult, GetApiOutputArgs } from "./getApi"; +export const getApi: typeof import("./getApi").getApi = null as any; +export const getApiOutput: typeof import("./getApi").getApiOutput = null as any; +utilities.lazyLoad(exports, ["getApi","getApiOutput"], () => require("./getApi")); + export { GetDataSourceArgs, GetDataSourceResult, GetDataSourceOutputArgs } from "./getDataSource"; export const getDataSource: typeof import("./getDataSource").getDataSource = null as any; export const getDataSourceOutput: typeof import("./getDataSource").getDataSourceOutput = null as any; @@ -83,6 +93,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws-native:appsync:Api": + return new Api(name, undefined, { urn }) case "aws-native:appsync:DataSource": return new DataSource(name, undefined, { urn }) case "aws-native:appsync:DomainName": diff --git a/sdk/nodejs/ec2/eip.ts b/sdk/nodejs/ec2/eip.ts index acc98681ee..9f99337c8e 100644 --- a/sdk/nodejs/ec2/eip.ts +++ b/sdk/nodejs/ec2/eip.ts @@ -39,6 +39,9 @@ export class Eip extends pulumi.CustomResource { return obj['__pulumiType'] === Eip.__pulumiType; } + /** + * Describes an Elastic IP address, or a carrier IP address. + */ public readonly address!: pulumi.Output; /** * The ID that AWS assigns to represent the allocation of the address for use with Amazon VPC. This is returned only for VPC elastic IP addresses. For example, `eipalloc-5723d13e` . @@ -123,6 +126,9 @@ export class Eip extends pulumi.CustomResource { * The set of arguments for constructing a Eip resource. */ export interface EipArgs { + /** + * Describes an Elastic IP address, or a carrier IP address. + */ address?: pulumi.Input; /** * The network (``vpc``). diff --git a/sdk/nodejs/m2/application.ts b/sdk/nodejs/m2/application.ts index 20cec335a8..08a883f53e 100644 --- a/sdk/nodejs/m2/application.ts +++ b/sdk/nodejs/m2/application.ts @@ -50,7 +50,7 @@ export class Application extends pulumi.CustomResource { * * For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . */ - public readonly definition!: pulumi.Output; + public readonly definition!: pulumi.Output; /** * The description of the application. */ @@ -89,9 +89,6 @@ export class Application extends pulumi.CustomResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; if (!opts.id) { - if ((!args || args.definition === undefined) && !opts.urn) { - throw new Error("Missing required property 'definition'"); - } if ((!args || args.engineType === undefined) && !opts.urn) { throw new Error("Missing required property 'engineType'"); } @@ -131,7 +128,7 @@ export interface ApplicationArgs { * * For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . */ - definition: pulumi.Input; + definition?: pulumi.Input; /** * The description of the application. */ diff --git a/sdk/nodejs/opensearchservice/application.ts b/sdk/nodejs/opensearchservice/application.ts new file mode 100644 index 0000000000..3e3179164f --- /dev/null +++ b/sdk/nodejs/opensearchservice/application.ts @@ -0,0 +1,137 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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"; + +/** + * Amazon OpenSearchService application resource + */ +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 opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Application { + return new Application(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:opensearchservice: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; + } + + /** + * List of application configurations. + */ + public readonly appConfigs!: pulumi.Output; + /** + * Amazon Resource Name (ARN) format. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The identifier of the application. + */ + public /*out*/ readonly awsId!: pulumi.Output; + /** + * List of data sources. + */ + public readonly dataSources!: pulumi.Output; + /** + * The endpoint for the application. + */ + public readonly endpoint!: pulumi.Output; + /** + * Options for configuring IAM Identity Center + */ + public readonly iamIdentityCenterOptions!: pulumi.Output; + /** + * The name of the application. + */ + public readonly name!: pulumi.Output; + /** + * An arbitrary set of tags (key-value pairs) for this application. + */ + public readonly tags!: 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) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["appConfigs"] = args ? args.appConfigs : undefined; + resourceInputs["dataSources"] = args ? args.dataSources : undefined; + resourceInputs["endpoint"] = args ? args.endpoint : undefined; + resourceInputs["iamIdentityCenterOptions"] = args ? args.iamIdentityCenterOptions : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["awsId"] = undefined /*out*/; + } else { + resourceInputs["appConfigs"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["awsId"] = undefined /*out*/; + resourceInputs["dataSources"] = undefined /*out*/; + resourceInputs["endpoint"] = undefined /*out*/; + resourceInputs["iamIdentityCenterOptions"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["name"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Application.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Application resource. + */ +export interface ApplicationArgs { + /** + * List of application configurations. + */ + appConfigs?: pulumi.Input[]>; + /** + * List of data sources. + */ + dataSources?: pulumi.Input[]>; + /** + * The endpoint for the application. + */ + endpoint?: pulumi.Input; + /** + * Options for configuring IAM Identity Center + */ + iamIdentityCenterOptions?: pulumi.Input; + /** + * The name of the application. + */ + name?: pulumi.Input; + /** + * An arbitrary set of tags (key-value pairs) for this application. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/opensearchservice/getApplication.ts b/sdk/nodejs/opensearchservice/getApplication.ts new file mode 100644 index 0000000000..3d22a1d666 --- /dev/null +++ b/sdk/nodejs/opensearchservice/getApplication.ts @@ -0,0 +1,72 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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"; + +/** + * Amazon OpenSearchService application resource + */ +export function getApplication(args: GetApplicationArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:opensearchservice:getApplication", { + "name": args.name, + }, opts); +} + +export interface GetApplicationArgs { + /** + * The name of the application. + */ + name: string; +} + +export interface GetApplicationResult { + /** + * List of application configurations. + */ + readonly appConfigs?: outputs.opensearchservice.ApplicationAppConfig[]; + /** + * Amazon Resource Name (ARN) format. + */ + readonly arn?: string; + /** + * List of data sources. + */ + readonly dataSources?: outputs.opensearchservice.ApplicationDataSource[]; + /** + * The endpoint for the application. + */ + readonly endpoint?: string; + /** + * Options for configuring IAM Identity Center + */ + readonly iamIdentityCenterOptions?: outputs.opensearchservice.IamIdentityCenterOptionsProperties; + /** + * The identifier of the application. + */ + readonly id?: string; + /** + * An arbitrary set of tags (key-value pairs) for this application. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Amazon OpenSearchService application resource + */ +export function getApplicationOutput(args: GetApplicationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:opensearchservice:getApplication", { + "name": args.name, + }, opts); +} + +export interface GetApplicationOutputArgs { + /** + * The name of the application. + */ + name: pulumi.Input; +} diff --git a/sdk/nodejs/opensearchservice/index.ts b/sdk/nodejs/opensearchservice/index.ts index 53407d083c..0cfc376032 100644 --- a/sdk/nodejs/opensearchservice/index.ts +++ b/sdk/nodejs/opensearchservice/index.ts @@ -5,21 +5,36 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { ApplicationArgs } 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 { DomainArgs } from "./domain"; export type Domain = import("./domain").Domain; export const Domain: typeof import("./domain").Domain = null as any; utilities.lazyLoad(exports, ["Domain"], () => require("./domain")); +export { GetApplicationArgs, GetApplicationResult, GetApplicationOutputArgs } from "./getApplication"; +export const getApplication: typeof import("./getApplication").getApplication = null as any; +export const getApplicationOutput: typeof import("./getApplication").getApplicationOutput = null as any; +utilities.lazyLoad(exports, ["getApplication","getApplicationOutput"], () => require("./getApplication")); + export { GetDomainArgs, GetDomainResult, GetDomainOutputArgs } from "./getDomain"; export const getDomain: typeof import("./getDomain").getDomain = null as any; export const getDomainOutput: typeof import("./getDomain").getDomainOutput = null as any; utilities.lazyLoad(exports, ["getDomain","getDomainOutput"], () => require("./getDomain")); +// Export enums: +export * from "../types/enums/opensearchservice"; + const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws-native:opensearchservice:Application": + return new Application(name, undefined, { urn }) case "aws-native:opensearchservice:Domain": return new Domain(name, undefined, { urn }) default: diff --git a/sdk/nodejs/sagemaker/getSpace.ts b/sdk/nodejs/sagemaker/getSpace.ts index 1bb1959be7..00cd57bf88 100644 --- a/sdk/nodejs/sagemaker/getSpace.ts +++ b/sdk/nodejs/sagemaker/getSpace.ts @@ -2,6 +2,9 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -35,6 +38,10 @@ export interface GetSpaceResult { * The name of the space that appears in the Studio UI. */ readonly spaceDisplayName?: string; + /** + * A list of tags to apply to the space. + */ + readonly tags?: outputs.Tag[]; /** * Returns the URL of the space. If the space is created with AWS IAM Identity Center (Successor to AWS Single Sign-On) authentication, users can navigate to the URL after appending the respective redirect parameter for the application type to be federated through AWS IAM Identity Center. * diff --git a/sdk/nodejs/sagemaker/studioLifecycleConfig.ts b/sdk/nodejs/sagemaker/studioLifecycleConfig.ts index 46c1d82f20..d3de25295e 100644 --- a/sdk/nodejs/sagemaker/studioLifecycleConfig.ts +++ b/sdk/nodejs/sagemaker/studioLifecycleConfig.ts @@ -46,7 +46,7 @@ export class StudioLifecycleConfig extends pulumi.CustomResource { */ public /*out*/ readonly studioLifecycleConfigArn!: pulumi.Output; /** - * The content of your Amazon SageMaker Studio Lifecycle Configuration script. + * The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. */ public readonly studioLifecycleConfigContent!: pulumi.Output; /** @@ -54,7 +54,7 @@ export class StudioLifecycleConfig extends pulumi.CustomResource { */ public readonly studioLifecycleConfigName!: pulumi.Output; /** - * Tags to be associated with the Lifecycle Configuration. + * Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. */ public readonly tags!: pulumi.Output; @@ -103,7 +103,7 @@ export interface StudioLifecycleConfigArgs { */ studioLifecycleConfigAppType: pulumi.Input; /** - * The content of your Amazon SageMaker Studio Lifecycle Configuration script. + * The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. */ studioLifecycleConfigContent: pulumi.Input; /** @@ -111,7 +111,7 @@ export interface StudioLifecycleConfigArgs { */ studioLifecycleConfigName?: pulumi.Input; /** - * Tags to be associated with the Lifecycle Configuration. + * Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. */ tags?: pulumi.Input[]>; } diff --git a/sdk/nodejs/secretsmanager/getRotationSchedule.ts b/sdk/nodejs/secretsmanager/getRotationSchedule.ts new file mode 100644 index 0000000000..a2ca323ad2 --- /dev/null +++ b/sdk/nodejs/secretsmanager/getRotationSchedule.ts @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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 Type definition for AWS::SecretsManager::RotationSchedule + */ +export function getRotationSchedule(args: GetRotationScheduleArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:secretsmanager:getRotationSchedule", { + "id": args.id, + }, opts); +} + +export interface GetRotationScheduleArgs { + /** + * The ARN of the secret. + */ + id: string; +} + +export interface GetRotationScheduleResult { + /** + * The ARN of the secret. + */ + readonly id?: string; + /** + * The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + */ + readonly rotationLambdaArn?: string; + /** + * A structure that defines the rotation configuration for this secret. + */ + readonly rotationRules?: outputs.secretsmanager.RotationScheduleRotationRules; +} +/** + * Resource Type definition for AWS::SecretsManager::RotationSchedule + */ +export function getRotationScheduleOutput(args: GetRotationScheduleOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:secretsmanager:getRotationSchedule", { + "id": args.id, + }, opts); +} + +export interface GetRotationScheduleOutputArgs { + /** + * The ARN of the secret. + */ + id: pulumi.Input; +} diff --git a/sdk/nodejs/secretsmanager/getSecretTargetAttachment.ts b/sdk/nodejs/secretsmanager/getSecretTargetAttachment.ts index ebeeac5a53..5debaca83c 100644 --- a/sdk/nodejs/secretsmanager/getSecretTargetAttachment.ts +++ b/sdk/nodejs/secretsmanager/getSecretTargetAttachment.ts @@ -20,10 +20,6 @@ export interface GetSecretTargetAttachmentArgs { export interface GetSecretTargetAttachmentResult { readonly id?: string; - /** - * The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition. - */ - readonly secretId?: string; /** * The ID of the database or cluster. */ diff --git a/sdk/nodejs/secretsmanager/index.ts b/sdk/nodejs/secretsmanager/index.ts index 03416cb618..87c5447106 100644 --- a/sdk/nodejs/secretsmanager/index.ts +++ b/sdk/nodejs/secretsmanager/index.ts @@ -10,6 +10,11 @@ export const getResourcePolicy: typeof import("./getResourcePolicy").getResource export const getResourcePolicyOutput: typeof import("./getResourcePolicy").getResourcePolicyOutput = null as any; utilities.lazyLoad(exports, ["getResourcePolicy","getResourcePolicyOutput"], () => require("./getResourcePolicy")); +export { GetRotationScheduleArgs, GetRotationScheduleResult, GetRotationScheduleOutputArgs } from "./getRotationSchedule"; +export const getRotationSchedule: typeof import("./getRotationSchedule").getRotationSchedule = null as any; +export const getRotationScheduleOutput: typeof import("./getRotationSchedule").getRotationScheduleOutput = null as any; +utilities.lazyLoad(exports, ["getRotationSchedule","getRotationScheduleOutput"], () => require("./getRotationSchedule")); + export { GetSecretArgs, GetSecretResult, GetSecretOutputArgs } from "./getSecret"; export const getSecret: typeof import("./getSecret").getSecret = null as any; export const getSecretOutput: typeof import("./getSecret").getSecretOutput = null as any; @@ -25,6 +30,11 @@ export type ResourcePolicy = import("./resourcePolicy").ResourcePolicy; export const ResourcePolicy: typeof import("./resourcePolicy").ResourcePolicy = null as any; utilities.lazyLoad(exports, ["ResourcePolicy"], () => require("./resourcePolicy")); +export { RotationScheduleArgs } from "./rotationSchedule"; +export type RotationSchedule = import("./rotationSchedule").RotationSchedule; +export const RotationSchedule: typeof import("./rotationSchedule").RotationSchedule = null as any; +utilities.lazyLoad(exports, ["RotationSchedule"], () => require("./rotationSchedule")); + export { SecretArgs } from "./secret"; export type Secret = import("./secret").Secret; export const Secret: typeof import("./secret").Secret = null as any; @@ -42,6 +52,8 @@ const _module = { switch (type) { case "aws-native:secretsmanager:ResourcePolicy": return new ResourcePolicy(name, undefined, { urn }) + case "aws-native:secretsmanager:RotationSchedule": + return new RotationSchedule(name, undefined, { urn }) case "aws-native:secretsmanager:Secret": return new Secret(name, undefined, { urn }) case "aws-native:secretsmanager:SecretTargetAttachment": diff --git a/sdk/nodejs/secretsmanager/rotationSchedule.ts b/sdk/nodejs/secretsmanager/rotationSchedule.ts new file mode 100644 index 0000000000..e3142c77bb --- /dev/null +++ b/sdk/nodejs/secretsmanager/rotationSchedule.ts @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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 Type definition for AWS::SecretsManager::RotationSchedule + */ +export class RotationSchedule extends pulumi.CustomResource { + /** + * Get an existing RotationSchedule 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 opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): RotationSchedule { + return new RotationSchedule(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:secretsmanager:RotationSchedule'; + + /** + * Returns true if the given object is an instance of RotationSchedule. 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 RotationSchedule { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === RotationSchedule.__pulumiType; + } + + /** + * The ARN of the secret. + */ + public /*out*/ readonly awsId!: pulumi.Output; + /** + * Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + */ + public readonly hostedRotationLambda!: pulumi.Output; + /** + * Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + */ + public readonly rotateImmediatelyOnUpdate!: pulumi.Output; + /** + * The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + */ + public readonly rotationLambdaArn!: pulumi.Output; + /** + * A structure that defines the rotation configuration for this secret. + */ + public readonly rotationRules!: pulumi.Output; + /** + * The ARN or name of the secret to rotate. + */ + public readonly secretId!: pulumi.Output; + + /** + * Create a RotationSchedule 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: RotationScheduleArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.secretId === undefined) && !opts.urn) { + throw new Error("Missing required property 'secretId'"); + } + resourceInputs["hostedRotationLambda"] = args ? args.hostedRotationLambda : undefined; + resourceInputs["rotateImmediatelyOnUpdate"] = args ? args.rotateImmediatelyOnUpdate : undefined; + resourceInputs["rotationLambdaArn"] = args ? args.rotationLambdaArn : undefined; + resourceInputs["rotationRules"] = args ? args.rotationRules : undefined; + resourceInputs["secretId"] = args ? args.secretId : undefined; + resourceInputs["awsId"] = undefined /*out*/; + } else { + resourceInputs["awsId"] = undefined /*out*/; + resourceInputs["hostedRotationLambda"] = undefined /*out*/; + resourceInputs["rotateImmediatelyOnUpdate"] = undefined /*out*/; + resourceInputs["rotationLambdaArn"] = undefined /*out*/; + resourceInputs["rotationRules"] = undefined /*out*/; + resourceInputs["secretId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["secretId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(RotationSchedule.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a RotationSchedule resource. + */ +export interface RotationScheduleArgs { + /** + * Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + */ + hostedRotationLambda?: pulumi.Input; + /** + * Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + */ + rotateImmediatelyOnUpdate?: pulumi.Input; + /** + * The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + */ + rotationLambdaArn?: pulumi.Input; + /** + * A structure that defines the rotation configuration for this secret. + */ + rotationRules?: pulumi.Input; + /** + * The ARN or name of the secret to rotate. + */ + secretId: pulumi.Input; +} diff --git a/sdk/nodejs/secretsmanager/secretTargetAttachment.ts b/sdk/nodejs/secretsmanager/secretTargetAttachment.ts index b28da6d6e8..8684a474ef 100644 --- a/sdk/nodejs/secretsmanager/secretTargetAttachment.ts +++ b/sdk/nodejs/secretsmanager/secretTargetAttachment.ts @@ -87,6 +87,8 @@ export class SecretTargetAttachment extends pulumi.CustomResource { resourceInputs["targetType"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["secretId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); super(SecretTargetAttachment.__pulumiType, name, resourceInputs, opts); } } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 0d2edadf24..04f130409f 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -169,10 +169,12 @@ "appstream/getImageBuilder.ts", "appstream/imageBuilder.ts", "appstream/index.ts", + "appsync/api.ts", "appsync/dataSource.ts", "appsync/domainName.ts", "appsync/domainNameApiAssociation.ts", "appsync/functionConfiguration.ts", + "appsync/getApi.ts", "appsync/getDataSource.ts", "appsync/getDomainName.ts", "appsync/getDomainNameApiAssociation.ts", @@ -1682,7 +1684,9 @@ "opensearchserverless/securityConfig.ts", "opensearchserverless/securityPolicy.ts", "opensearchserverless/vpcEndpoint.ts", + "opensearchservice/application.ts", "opensearchservice/domain.ts", + "opensearchservice/getApplication.ts", "opensearchservice/getDomain.ts", "opensearchservice/index.ts", "opsworkscm/getServer.ts", @@ -2046,10 +2050,12 @@ "scheduler/schedule.ts", "scheduler/scheduleGroup.ts", "secretsmanager/getResourcePolicy.ts", + "secretsmanager/getRotationSchedule.ts", "secretsmanager/getSecret.ts", "secretsmanager/getSecretTargetAttachment.ts", "secretsmanager/index.ts", "secretsmanager/resourcePolicy.ts", + "secretsmanager/rotationSchedule.ts", "secretsmanager/secret.ts", "secretsmanager/secretTargetAttachment.ts", "securityhub/automationRule.ts", @@ -2356,6 +2362,7 @@ "types/enums/oam/index.ts", "types/enums/omics/index.ts", "types/enums/opensearchserverless/index.ts", + "types/enums/opensearchservice/index.ts", "types/enums/organizations/index.ts", "types/enums/osis/index.ts", "types/enums/panorama/index.ts", @@ -2462,9 +2469,11 @@ "wafv2/webAcl.ts", "wafv2/webAclAssociation.ts", "wisdom/aiPrompt.ts", + "wisdom/aiPromptVersion.ts", "wisdom/assistant.ts", "wisdom/assistantAssociation.ts", "wisdom/getAiPrompt.ts", + "wisdom/getAiPromptVersion.ts", "wisdom/getAssistant.ts", "wisdom/getAssistantAssociation.ts", "wisdom/getKnowledgeBase.ts", diff --git a/sdk/nodejs/types/enums/appsync/index.ts b/sdk/nodejs/types/enums/appsync/index.ts index 0f1545b2d5..192a7381a9 100644 --- a/sdk/nodejs/types/enums/appsync/index.ts +++ b/sdk/nodejs/types/enums/appsync/index.ts @@ -2,6 +2,32 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** +export const ApiAuthenticationType = { + AmazonCognitoUserPools: "AMAZON_COGNITO_USER_POOLS", + AwsIam: "AWS_IAM", + ApiKey: "API_KEY", + OpenidConnect: "OPENID_CONNECT", + AwsLambda: "AWS_LAMBDA", +} as const; + +/** + * Security configuration for your AppSync API. + */ +export type ApiAuthenticationType = (typeof ApiAuthenticationType)[keyof typeof ApiAuthenticationType]; + +export const ApiEventLogLevel = { + None: "NONE", + Error: "ERROR", + All: "ALL", + Info: "INFO", + Debug: "DEBUG", +} as const; + +/** + * Logging level for the AppSync API. + */ +export type ApiEventLogLevel = (typeof ApiEventLogLevel)[keyof typeof ApiEventLogLevel]; + export const DataSourceMetricsConfig = { Disabled: "DISABLED", Enabled: "ENABLED", diff --git a/sdk/nodejs/types/enums/codepipeline/index.ts b/sdk/nodejs/types/enums/codepipeline/index.ts index 122bf44e0e..b18f76aaf1 100644 --- a/sdk/nodejs/types/enums/codepipeline/index.ts +++ b/sdk/nodejs/types/enums/codepipeline/index.ts @@ -48,6 +48,7 @@ export type PipelineExecutionMode = (typeof PipelineExecutionMode)[keyof typeof export const PipelineFailureConditionsResult = { Rollback: "ROLLBACK", + Retry: "RETRY", } as const; /** @@ -55,6 +56,16 @@ export const PipelineFailureConditionsResult = { */ export type PipelineFailureConditionsResult = (typeof PipelineFailureConditionsResult)[keyof typeof PipelineFailureConditionsResult]; +export const PipelineFailureConditionsRetryConfigurationPropertiesRetryMode = { + AllActions: "ALL_ACTIONS", + FailedActions: "FAILED_ACTIONS", +} as const; + +/** + * The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + */ +export type PipelineFailureConditionsRetryConfigurationPropertiesRetryMode = (typeof PipelineFailureConditionsRetryConfigurationPropertiesRetryMode)[keyof typeof PipelineFailureConditionsRetryConfigurationPropertiesRetryMode]; + export const PipelineTriggerDeclarationProviderType = { CodeStarSourceConnection: "CodeStarSourceConnection", } as const; diff --git a/sdk/nodejs/types/enums/index.ts b/sdk/nodejs/types/enums/index.ts index 4afcebcbd3..24d5fdb819 100644 --- a/sdk/nodejs/types/enums/index.ts +++ b/sdk/nodejs/types/enums/index.ts @@ -113,6 +113,7 @@ import * as nimblestudio from "./nimblestudio"; import * as oam from "./oam"; import * as omics from "./omics"; import * as opensearchserverless from "./opensearchserverless"; +import * as opensearchservice from "./opensearchservice"; import * as organizations from "./organizations"; import * as osis from "./osis"; import * as panorama from "./panorama"; @@ -282,6 +283,7 @@ export { oam, omics, opensearchserverless, + opensearchservice, organizations, osis, panorama, diff --git a/sdk/nodejs/types/enums/opensearchservice/index.ts b/sdk/nodejs/types/enums/opensearchservice/index.ts new file mode 100644 index 0000000000..866280e734 --- /dev/null +++ b/sdk/nodejs/types/enums/opensearchservice/index.ts @@ -0,0 +1,13 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + + +export const ApplicationAppConfigType = { + OpensearchDashboardsDashboardAdminUsers: "opensearchDashboards.dashboardAdmin.users", + OpensearchDashboardsDashboardAdminGroups: "opensearchDashboards.dashboardAdmin.groups", +} as const; + +/** + * AppConfig type values. + */ +export type ApplicationAppConfigType = (typeof ApplicationAppConfigType)[keyof typeof ApplicationAppConfigType]; diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 326c7cb803..8f34c6abf0 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -5443,6 +5443,70 @@ export namespace appstream { } export namespace appsync { + /** + * An auth mode. + */ + export interface ApiAuthModeArgs { + authType?: pulumi.Input; + } + + /** + * An auth provider for the AppSync API. + */ + export interface ApiAuthProviderArgs { + authType: pulumi.Input; + cognitoConfig?: pulumi.Input; + lambdaAuthorizerConfig?: pulumi.Input; + openIdConnectConfig?: pulumi.Input; + } + + /** + * Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + */ + export interface ApiCognitoConfigArgs { + appIdClientRegex?: pulumi.Input; + awsRegion: pulumi.Input; + userPoolId: pulumi.Input; + } + + /** + * The configuration for an Event Api + */ + export interface ApiEventConfigArgs { + authProviders: pulumi.Input[]>; + connectionAuthModes: pulumi.Input[]>; + defaultPublishAuthModes: pulumi.Input[]>; + defaultSubscribeAuthModes: pulumi.Input[]>; + logConfig?: pulumi.Input; + } + + /** + * The log config for the AppSync API. + */ + export interface ApiEventLogConfigArgs { + cloudWatchLogsRoleArn: pulumi.Input; + logLevel: pulumi.Input; + } + + /** + * A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + */ + export interface ApiLambdaAuthorizerConfigArgs { + authorizerResultTtlInSeconds?: pulumi.Input; + authorizerUri: pulumi.Input; + identityValidationExpression?: pulumi.Input; + } + + /** + * The OpenID Connect configuration. + */ + export interface ApiOpenIdConnectConfigArgs { + authTtl?: pulumi.Input; + clientId?: pulumi.Input; + iatTtl?: pulumi.Input; + issuer: pulumi.Input; + } + export interface DataSourceAuthorizationConfigArgs { /** * The authorization type that the HTTP endpoint requires. @@ -14254,6 +14318,20 @@ export namespace codepipeline { * The specified result for when the failure conditions are met, such as rolling back the stage */ result?: pulumi.Input; + /** + * The configuration that specifies the retry configuration for a stage + */ + retryConfiguration?: pulumi.Input; + } + + /** + * The configuration that specifies the retry configuration for a stage + */ + export interface PipelineFailureConditionsRetryConfigurationPropertiesArgs { + /** + * The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + */ + retryMode?: pulumi.Input; } /** @@ -48585,6 +48663,34 @@ export namespace opensearchserverless { } export namespace opensearchservice { + /** + * A key-value pair of AppConfig + */ + export interface ApplicationAppConfigArgs { + /** + * The configuration key + */ + key: pulumi.Input; + /** + * The configuration value. + */ + value: pulumi.Input; + } + + /** + * Datasource arn and description + */ + export interface ApplicationDataSourceArgs { + /** + * The ARN of the data source. + */ + dataSourceArn: any; + /** + * Description of the data source. + */ + dataSourceDescription?: pulumi.Input; + } + export interface DomainAdvancedSecurityOptionsInputArgs { /** * Date and time when the migration period will be disabled. Only necessary when [enabling fine-grained access control on an existing domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing) . @@ -48910,6 +49016,24 @@ export namespace opensearchservice { */ availabilityZoneCount?: pulumi.Input; } + + /** + * Options for configuring IAM Identity Center + */ + export interface IamIdentityCenterOptionsPropertiesArgs { + /** + * Whether IAM Identity Center is enabled. + */ + enabled?: pulumi.Input; + /** + * The ARN of the IAM Identity Center instance. + */ + iamIdentityCenterInstanceArn?: any; + /** + * The ARN of the IAM role for Identity Center application. + */ + iamRoleForIdentityCenterApplicationArn?: pulumi.Input; + } } export namespace opsworkscm { @@ -86315,6 +86439,68 @@ export namespace scheduler { } export namespace secretsmanager { + export interface RotationScheduleHostedRotationLambdaArgs { + /** + * A string of the characters that you don't want in the password. + */ + excludeCharacters?: pulumi.Input; + /** + * The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + */ + kmsKeyArn?: pulumi.Input; + /** + * The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + */ + masterSecretArn?: pulumi.Input; + /** + * The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + */ + masterSecretKmsKeyArn?: pulumi.Input; + /** + * The name of the Lambda rotation function. + */ + rotationLambdaName?: pulumi.Input; + /** + * The type of rotation template to use + */ + rotationType: pulumi.Input; + /** + * The python runtime associated with the Lambda function + */ + runtime?: pulumi.Input; + /** + * The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + */ + superuserSecretArn?: pulumi.Input; + /** + * The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + */ + superuserSecretKmsKeyArn?: pulumi.Input; + /** + * A comma-separated list of security group IDs applied to the target database. + */ + vpcSecurityGroupIds?: pulumi.Input; + /** + * A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + */ + vpcSubnetIds?: pulumi.Input; + } + + export interface RotationScheduleRotationRulesArgs { + /** + * The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + */ + automaticallyAfterDays?: pulumi.Input; + /** + * The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + */ + duration?: pulumi.Input; + /** + * A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + */ + scheduleExpression?: pulumi.Input; + } + /** * Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. * *Required permissions:* ``secretsmanager:GetRandomPassword``. For more information, see [IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-actions-as-permissions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index f1d67b320d..fbe9224967 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -5368,6 +5368,70 @@ export namespace appstream { } export namespace appsync { + /** + * An auth mode. + */ + export interface ApiAuthMode { + authType?: enums.appsync.ApiAuthenticationType; + } + + /** + * An auth provider for the AppSync API. + */ + export interface ApiAuthProvider { + authType: enums.appsync.ApiAuthenticationType; + cognitoConfig?: outputs.appsync.ApiCognitoConfig; + lambdaAuthorizerConfig?: outputs.appsync.ApiLambdaAuthorizerConfig; + openIdConnectConfig?: outputs.appsync.ApiOpenIdConnectConfig; + } + + /** + * Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + */ + export interface ApiCognitoConfig { + appIdClientRegex?: string; + awsRegion: string; + userPoolId: string; + } + + /** + * The configuration for an Event Api + */ + export interface ApiEventConfig { + authProviders: outputs.appsync.ApiAuthProvider[]; + connectionAuthModes: outputs.appsync.ApiAuthMode[]; + defaultPublishAuthModes: outputs.appsync.ApiAuthMode[]; + defaultSubscribeAuthModes: outputs.appsync.ApiAuthMode[]; + logConfig?: outputs.appsync.ApiEventLogConfig; + } + + /** + * The log config for the AppSync API. + */ + export interface ApiEventLogConfig { + cloudWatchLogsRoleArn: string; + logLevel: enums.appsync.ApiEventLogLevel; + } + + /** + * A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + */ + export interface ApiLambdaAuthorizerConfig { + authorizerResultTtlInSeconds?: number; + authorizerUri: string; + identityValidationExpression?: string; + } + + /** + * The OpenID Connect configuration. + */ + export interface ApiOpenIdConnectConfig { + authTtl?: number; + clientId?: string; + iatTtl?: number; + issuer: string; + } + export interface DataSourceAuthorizationConfig { /** * The authorization type that the HTTP endpoint requires. @@ -14849,6 +14913,20 @@ export namespace codepipeline { * The specified result for when the failure conditions are met, such as rolling back the stage */ result?: enums.codepipeline.PipelineFailureConditionsResult; + /** + * The configuration that specifies the retry configuration for a stage + */ + retryConfiguration?: outputs.codepipeline.PipelineFailureConditionsRetryConfigurationProperties; + } + + /** + * The configuration that specifies the retry configuration for a stage + */ + export interface PipelineFailureConditionsRetryConfigurationProperties { + /** + * The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + */ + retryMode?: enums.codepipeline.PipelineFailureConditionsRetryConfigurationPropertiesRetryMode; } /** @@ -50248,6 +50326,34 @@ export namespace opensearchserverless { } export namespace opensearchservice { + /** + * A key-value pair of AppConfig + */ + export interface ApplicationAppConfig { + /** + * The configuration key + */ + key: enums.opensearchservice.ApplicationAppConfigType; + /** + * The configuration value. + */ + value: string; + } + + /** + * Datasource arn and description + */ + export interface ApplicationDataSource { + /** + * The ARN of the data source. + */ + dataSourceArn: any; + /** + * Description of the data source. + */ + dataSourceDescription?: string; + } + export interface DomainAdvancedSecurityOptionsInput { /** * Date and time when the migration period will be disabled. Only necessary when [enabling fine-grained access control on an existing domain](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-enabling-existing) . @@ -50609,6 +50715,24 @@ export namespace opensearchservice { availabilityZoneCount?: number; } + /** + * Options for configuring IAM Identity Center + */ + export interface IamIdentityCenterOptionsProperties { + /** + * Whether IAM Identity Center is enabled. + */ + enabled?: boolean; + /** + * The ARN of the IAM Identity Center instance. + */ + iamIdentityCenterInstanceArn?: any; + /** + * The ARN of the IAM role for Identity Center application. + */ + iamRoleForIdentityCenterApplicationArn?: string; + } + } export namespace opsworkscm { @@ -88696,6 +88820,68 @@ export namespace scheduler { } export namespace secretsmanager { + export interface RotationScheduleHostedRotationLambda { + /** + * A string of the characters that you don't want in the password. + */ + excludeCharacters?: string; + /** + * The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + */ + kmsKeyArn?: string; + /** + * The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + */ + masterSecretArn?: string; + /** + * The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + */ + masterSecretKmsKeyArn?: string; + /** + * The name of the Lambda rotation function. + */ + rotationLambdaName?: string; + /** + * The type of rotation template to use + */ + rotationType: string; + /** + * The python runtime associated with the Lambda function + */ + runtime?: string; + /** + * The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + */ + superuserSecretArn?: string; + /** + * The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + */ + superuserSecretKmsKeyArn?: string; + /** + * A comma-separated list of security group IDs applied to the target database. + */ + vpcSecurityGroupIds?: string; + /** + * A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + */ + vpcSubnetIds?: string; + } + + export interface RotationScheduleRotationRules { + /** + * The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + */ + automaticallyAfterDays?: number; + /** + * The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + */ + duration?: string; + /** + * A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + */ + scheduleExpression?: string; + } + /** * Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. * *Required permissions:* ``secretsmanager:GetRandomPassword``. For more information, see [IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-actions-as-permissions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). diff --git a/sdk/nodejs/wisdom/aiPromptVersion.ts b/sdk/nodejs/wisdom/aiPromptVersion.ts new file mode 100644 index 0000000000..8d3e0a27ff --- /dev/null +++ b/sdk/nodejs/wisdom/aiPromptVersion.ts @@ -0,0 +1,92 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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"; + +/** + * Definition of AWS::Wisdom::AIPromptVersion Resource Type + */ +export class AiPromptVersion extends pulumi.CustomResource { + /** + * Get an existing AiPromptVersion 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 opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): AiPromptVersion { + return new AiPromptVersion(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:wisdom:AiPromptVersion'; + + /** + * Returns true if the given object is an instance of AiPromptVersion. 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 AiPromptVersion { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AiPromptVersion.__pulumiType; + } + + public /*out*/ readonly aiPromptArn!: pulumi.Output; + public readonly aiPromptId!: pulumi.Output; + public /*out*/ readonly aiPromptVersionId!: pulumi.Output; + public /*out*/ readonly assistantArn!: pulumi.Output; + public readonly assistantId!: pulumi.Output; + public readonly modifiedTimeSeconds!: pulumi.Output; + public /*out*/ readonly versionNumber!: pulumi.Output; + + /** + * Create a AiPromptVersion 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: AiPromptVersionArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.aiPromptId === undefined) && !opts.urn) { + throw new Error("Missing required property 'aiPromptId'"); + } + if ((!args || args.assistantId === undefined) && !opts.urn) { + throw new Error("Missing required property 'assistantId'"); + } + resourceInputs["aiPromptId"] = args ? args.aiPromptId : undefined; + resourceInputs["assistantId"] = args ? args.assistantId : undefined; + resourceInputs["modifiedTimeSeconds"] = args ? args.modifiedTimeSeconds : undefined; + resourceInputs["aiPromptArn"] = undefined /*out*/; + resourceInputs["aiPromptVersionId"] = undefined /*out*/; + resourceInputs["assistantArn"] = undefined /*out*/; + resourceInputs["versionNumber"] = undefined /*out*/; + } else { + resourceInputs["aiPromptArn"] = undefined /*out*/; + resourceInputs["aiPromptId"] = undefined /*out*/; + resourceInputs["aiPromptVersionId"] = undefined /*out*/; + resourceInputs["assistantArn"] = undefined /*out*/; + resourceInputs["assistantId"] = undefined /*out*/; + resourceInputs["modifiedTimeSeconds"] = undefined /*out*/; + resourceInputs["versionNumber"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["aiPromptId", "assistantId", "modifiedTimeSeconds"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(AiPromptVersion.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a AiPromptVersion resource. + */ +export interface AiPromptVersionArgs { + aiPromptId: pulumi.Input; + assistantId: pulumi.Input; + modifiedTimeSeconds?: pulumi.Input; +} diff --git a/sdk/nodejs/wisdom/getAiPromptVersion.ts b/sdk/nodejs/wisdom/getAiPromptVersion.ts new file mode 100644 index 0000000000..a00fd2e1f6 --- /dev/null +++ b/sdk/nodejs/wisdom/getAiPromptVersion.ts @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** 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"; + +/** + * Definition of AWS::Wisdom::AIPromptVersion Resource Type + */ +export function getAiPromptVersion(args: GetAiPromptVersionArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:wisdom:getAiPromptVersion", { + "aiPromptId": args.aiPromptId, + "assistantId": args.assistantId, + "versionNumber": args.versionNumber, + }, opts); +} + +export interface GetAiPromptVersionArgs { + aiPromptId: string; + assistantId: string; + versionNumber: number; +} + +export interface GetAiPromptVersionResult { + readonly aiPromptArn?: string; + readonly aiPromptVersionId?: string; + readonly assistantArn?: string; + readonly versionNumber?: number; +} +/** + * Definition of AWS::Wisdom::AIPromptVersion Resource Type + */ +export function getAiPromptVersionOutput(args: GetAiPromptVersionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:wisdom:getAiPromptVersion", { + "aiPromptId": args.aiPromptId, + "assistantId": args.assistantId, + "versionNumber": args.versionNumber, + }, opts); +} + +export interface GetAiPromptVersionOutputArgs { + aiPromptId: pulumi.Input; + assistantId: pulumi.Input; + versionNumber: pulumi.Input; +} diff --git a/sdk/nodejs/wisdom/index.ts b/sdk/nodejs/wisdom/index.ts index 7071d908af..527717a660 100644 --- a/sdk/nodejs/wisdom/index.ts +++ b/sdk/nodejs/wisdom/index.ts @@ -10,6 +10,11 @@ export type AiPrompt = import("./aiPrompt").AiPrompt; export const AiPrompt: typeof import("./aiPrompt").AiPrompt = null as any; utilities.lazyLoad(exports, ["AiPrompt"], () => require("./aiPrompt")); +export { AiPromptVersionArgs } from "./aiPromptVersion"; +export type AiPromptVersion = import("./aiPromptVersion").AiPromptVersion; +export const AiPromptVersion: typeof import("./aiPromptVersion").AiPromptVersion = null as any; +utilities.lazyLoad(exports, ["AiPromptVersion"], () => require("./aiPromptVersion")); + export { AssistantArgs } from "./assistant"; export type Assistant = import("./assistant").Assistant; export const Assistant: typeof import("./assistant").Assistant = null as any; @@ -25,6 +30,11 @@ export const getAiPrompt: typeof import("./getAiPrompt").getAiPrompt = null as a export const getAiPromptOutput: typeof import("./getAiPrompt").getAiPromptOutput = null as any; utilities.lazyLoad(exports, ["getAiPrompt","getAiPromptOutput"], () => require("./getAiPrompt")); +export { GetAiPromptVersionArgs, GetAiPromptVersionResult, GetAiPromptVersionOutputArgs } from "./getAiPromptVersion"; +export const getAiPromptVersion: typeof import("./getAiPromptVersion").getAiPromptVersion = null as any; +export const getAiPromptVersionOutput: typeof import("./getAiPromptVersion").getAiPromptVersionOutput = null as any; +utilities.lazyLoad(exports, ["getAiPromptVersion","getAiPromptVersionOutput"], () => require("./getAiPromptVersion")); + export { GetAssistantArgs, GetAssistantResult, GetAssistantOutputArgs } from "./getAssistant"; export const getAssistant: typeof import("./getAssistant").getAssistant = null as any; export const getAssistantOutput: typeof import("./getAssistant").getAssistantOutput = null as any; @@ -55,6 +65,8 @@ const _module = { switch (type) { case "aws-native:wisdom:AiPrompt": return new AiPrompt(name, undefined, { urn }) + case "aws-native:wisdom:AiPromptVersion": + return new AiPromptVersion(name, undefined, { urn }) case "aws-native:wisdom:Assistant": return new Assistant(name, undefined, { urn }) case "aws-native:wisdom:AssistantAssociation": diff --git a/sdk/python/pulumi_aws_native/__init__.py b/sdk/python/pulumi_aws_native/__init__.py index 31ddb59ece..f88fff6fb0 100644 --- a/sdk/python/pulumi_aws_native/__init__.py +++ b/sdk/python/pulumi_aws_native/__init__.py @@ -860,6 +860,7 @@ "mod": "appsync", "fqn": "pulumi_aws_native.appsync", "classes": { + "aws-native:appsync:Api": "Api", "aws-native:appsync:DataSource": "DataSource", "aws-native:appsync:DomainName": "DomainName", "aws-native:appsync:DomainNameApiAssociation": "DomainNameApiAssociation", @@ -2489,6 +2490,7 @@ "mod": "opensearchservice", "fqn": "pulumi_aws_native.opensearchservice", "classes": { + "aws-native:opensearchservice:Application": "Application", "aws-native:opensearchservice:Domain": "Domain" } }, @@ -2921,6 +2923,7 @@ "fqn": "pulumi_aws_native.secretsmanager", "classes": { "aws-native:secretsmanager:ResourcePolicy": "ResourcePolicy", + "aws-native:secretsmanager:RotationSchedule": "RotationSchedule", "aws-native:secretsmanager:Secret": "Secret", "aws-native:secretsmanager:SecretTargetAttachment": "SecretTargetAttachment" } @@ -3215,6 +3218,7 @@ "fqn": "pulumi_aws_native.wisdom", "classes": { "aws-native:wisdom:AiPrompt": "AiPrompt", + "aws-native:wisdom:AiPromptVersion": "AiPromptVersion", "aws-native:wisdom:Assistant": "Assistant", "aws-native:wisdom:AssistantAssociation": "AssistantAssociation", "aws-native:wisdom:KnowledgeBase": "KnowledgeBase" diff --git a/sdk/python/pulumi_aws_native/appsync/__init__.py b/sdk/python/pulumi_aws_native/appsync/__init__.py index c8fd125c6b..d8866feee0 100644 --- a/sdk/python/pulumi_aws_native/appsync/__init__.py +++ b/sdk/python/pulumi_aws_native/appsync/__init__.py @@ -6,10 +6,12 @@ import typing # Export this package's modules as members: from ._enums import * +from .api import * from .data_source import * from .domain_name import * from .domain_name_api_association import * from .function_configuration import * +from .get_api import * from .get_data_source import * from .get_domain_name import * from .get_domain_name_api_association import * diff --git a/sdk/python/pulumi_aws_native/appsync/_enums.py b/sdk/python/pulumi_aws_native/appsync/_enums.py index 28f7324d92..79dbb85792 100644 --- a/sdk/python/pulumi_aws_native/appsync/_enums.py +++ b/sdk/python/pulumi_aws_native/appsync/_enums.py @@ -5,6 +5,8 @@ from enum import Enum __all__ = [ + 'ApiAuthenticationType', + 'ApiEventLogLevel', 'DataSourceMetricsConfig', 'ResolverMetricsConfig', 'SourceApiAssociationConfigMergeType', @@ -12,6 +14,28 @@ ] +class ApiAuthenticationType(str, Enum): + """ + Security configuration for your AppSync API. + """ + AMAZON_COGNITO_USER_POOLS = "AMAZON_COGNITO_USER_POOLS" + AWS_IAM = "AWS_IAM" + API_KEY = "API_KEY" + OPENID_CONNECT = "OPENID_CONNECT" + AWS_LAMBDA = "AWS_LAMBDA" + + +class ApiEventLogLevel(str, Enum): + """ + Logging level for the AppSync API. + """ + NONE = "NONE" + ERROR = "ERROR" + ALL = "ALL" + INFO = "INFO" + DEBUG = "DEBUG" + + class DataSourceMetricsConfig(str, Enum): """ Enables or disables enhanced data source metrics for specified data sources. Note that `MetricsConfig` won't be used unless the `dataSourceLevelMetricsBehavior` value is set to `PER_DATA_SOURCE_METRICS` . If the `dataSourceLevelMetricsBehavior` is set to `FULL_REQUEST_DATA_SOURCE_METRICS` instead, `MetricsConfig` will be ignored. However, you can still set its value. diff --git a/sdk/python/pulumi_aws_native/appsync/_inputs.py b/sdk/python/pulumi_aws_native/appsync/_inputs.py index 5ee911e96f..8f1ebc5aa1 100644 --- a/sdk/python/pulumi_aws_native/appsync/_inputs.py +++ b/sdk/python/pulumi_aws_native/appsync/_inputs.py @@ -16,6 +16,20 @@ from ._enums import * __all__ = [ + 'ApiAuthModeArgs', + 'ApiAuthModeArgsDict', + 'ApiAuthProviderArgs', + 'ApiAuthProviderArgsDict', + 'ApiCognitoConfigArgs', + 'ApiCognitoConfigArgsDict', + 'ApiEventConfigArgs', + 'ApiEventConfigArgsDict', + 'ApiEventLogConfigArgs', + 'ApiEventLogConfigArgsDict', + 'ApiLambdaAuthorizerConfigArgs', + 'ApiLambdaAuthorizerConfigArgsDict', + 'ApiOpenIdConnectConfigArgs', + 'ApiOpenIdConnectConfigArgsDict', 'DataSourceAuthorizationConfigArgs', 'DataSourceAuthorizationConfigArgsDict', 'DataSourceAwsIamConfigArgs', @@ -74,6 +88,393 @@ MYPY = False +if not MYPY: + class ApiAuthModeArgsDict(TypedDict): + """ + An auth mode. + """ + auth_type: NotRequired[pulumi.Input['ApiAuthenticationType']] +elif False: + ApiAuthModeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiAuthModeArgs: + def __init__(__self__, *, + auth_type: Optional[pulumi.Input['ApiAuthenticationType']] = None): + """ + An auth mode. + """ + if auth_type is not None: + pulumi.set(__self__, "auth_type", auth_type) + + @property + @pulumi.getter(name="authType") + def auth_type(self) -> Optional[pulumi.Input['ApiAuthenticationType']]: + return pulumi.get(self, "auth_type") + + @auth_type.setter + def auth_type(self, value: Optional[pulumi.Input['ApiAuthenticationType']]): + pulumi.set(self, "auth_type", value) + + +if not MYPY: + class ApiAuthProviderArgsDict(TypedDict): + """ + An auth provider for the AppSync API. + """ + auth_type: pulumi.Input['ApiAuthenticationType'] + cognito_config: NotRequired[pulumi.Input['ApiCognitoConfigArgsDict']] + lambda_authorizer_config: NotRequired[pulumi.Input['ApiLambdaAuthorizerConfigArgsDict']] + open_id_connect_config: NotRequired[pulumi.Input['ApiOpenIdConnectConfigArgsDict']] +elif False: + ApiAuthProviderArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiAuthProviderArgs: + def __init__(__self__, *, + auth_type: pulumi.Input['ApiAuthenticationType'], + cognito_config: Optional[pulumi.Input['ApiCognitoConfigArgs']] = None, + lambda_authorizer_config: Optional[pulumi.Input['ApiLambdaAuthorizerConfigArgs']] = None, + open_id_connect_config: Optional[pulumi.Input['ApiOpenIdConnectConfigArgs']] = None): + """ + An auth provider for the AppSync API. + """ + pulumi.set(__self__, "auth_type", auth_type) + if cognito_config is not None: + pulumi.set(__self__, "cognito_config", cognito_config) + if lambda_authorizer_config is not None: + pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + if open_id_connect_config is not None: + pulumi.set(__self__, "open_id_connect_config", open_id_connect_config) + + @property + @pulumi.getter(name="authType") + def auth_type(self) -> pulumi.Input['ApiAuthenticationType']: + return pulumi.get(self, "auth_type") + + @auth_type.setter + def auth_type(self, value: pulumi.Input['ApiAuthenticationType']): + pulumi.set(self, "auth_type", value) + + @property + @pulumi.getter(name="cognitoConfig") + def cognito_config(self) -> Optional[pulumi.Input['ApiCognitoConfigArgs']]: + return pulumi.get(self, "cognito_config") + + @cognito_config.setter + def cognito_config(self, value: Optional[pulumi.Input['ApiCognitoConfigArgs']]): + pulumi.set(self, "cognito_config", value) + + @property + @pulumi.getter(name="lambdaAuthorizerConfig") + def lambda_authorizer_config(self) -> Optional[pulumi.Input['ApiLambdaAuthorizerConfigArgs']]: + return pulumi.get(self, "lambda_authorizer_config") + + @lambda_authorizer_config.setter + def lambda_authorizer_config(self, value: Optional[pulumi.Input['ApiLambdaAuthorizerConfigArgs']]): + pulumi.set(self, "lambda_authorizer_config", value) + + @property + @pulumi.getter(name="openIdConnectConfig") + def open_id_connect_config(self) -> Optional[pulumi.Input['ApiOpenIdConnectConfigArgs']]: + return pulumi.get(self, "open_id_connect_config") + + @open_id_connect_config.setter + def open_id_connect_config(self, value: Optional[pulumi.Input['ApiOpenIdConnectConfigArgs']]): + pulumi.set(self, "open_id_connect_config", value) + + +if not MYPY: + class ApiCognitoConfigArgsDict(TypedDict): + """ + Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + """ + aws_region: pulumi.Input[str] + user_pool_id: pulumi.Input[str] + app_id_client_regex: NotRequired[pulumi.Input[str]] +elif False: + ApiCognitoConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiCognitoConfigArgs: + def __init__(__self__, *, + aws_region: pulumi.Input[str], + user_pool_id: pulumi.Input[str], + app_id_client_regex: Optional[pulumi.Input[str]] = None): + """ + Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + """ + pulumi.set(__self__, "aws_region", aws_region) + pulumi.set(__self__, "user_pool_id", user_pool_id) + if app_id_client_regex is not None: + pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + + @property + @pulumi.getter(name="awsRegion") + def aws_region(self) -> pulumi.Input[str]: + return pulumi.get(self, "aws_region") + + @aws_region.setter + def aws_region(self, value: pulumi.Input[str]): + pulumi.set(self, "aws_region", value) + + @property + @pulumi.getter(name="userPoolId") + def user_pool_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "user_pool_id") + + @user_pool_id.setter + def user_pool_id(self, value: pulumi.Input[str]): + pulumi.set(self, "user_pool_id", value) + + @property + @pulumi.getter(name="appIdClientRegex") + def app_id_client_regex(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "app_id_client_regex") + + @app_id_client_regex.setter + def app_id_client_regex(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "app_id_client_regex", value) + + +if not MYPY: + class ApiEventConfigArgsDict(TypedDict): + """ + The configuration for an Event Api + """ + auth_providers: pulumi.Input[Sequence[pulumi.Input['ApiAuthProviderArgsDict']]] + connection_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgsDict']]] + default_publish_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgsDict']]] + default_subscribe_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgsDict']]] + log_config: NotRequired[pulumi.Input['ApiEventLogConfigArgsDict']] +elif False: + ApiEventConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiEventConfigArgs: + def __init__(__self__, *, + auth_providers: pulumi.Input[Sequence[pulumi.Input['ApiAuthProviderArgs']]], + connection_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]], + default_publish_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]], + default_subscribe_auth_modes: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]], + log_config: Optional[pulumi.Input['ApiEventLogConfigArgs']] = None): + """ + The configuration for an Event Api + """ + pulumi.set(__self__, "auth_providers", auth_providers) + pulumi.set(__self__, "connection_auth_modes", connection_auth_modes) + pulumi.set(__self__, "default_publish_auth_modes", default_publish_auth_modes) + pulumi.set(__self__, "default_subscribe_auth_modes", default_subscribe_auth_modes) + if log_config is not None: + pulumi.set(__self__, "log_config", log_config) + + @property + @pulumi.getter(name="authProviders") + def auth_providers(self) -> pulumi.Input[Sequence[pulumi.Input['ApiAuthProviderArgs']]]: + return pulumi.get(self, "auth_providers") + + @auth_providers.setter + def auth_providers(self, value: pulumi.Input[Sequence[pulumi.Input['ApiAuthProviderArgs']]]): + pulumi.set(self, "auth_providers", value) + + @property + @pulumi.getter(name="connectionAuthModes") + def connection_auth_modes(self) -> pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]: + return pulumi.get(self, "connection_auth_modes") + + @connection_auth_modes.setter + def connection_auth_modes(self, value: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]): + pulumi.set(self, "connection_auth_modes", value) + + @property + @pulumi.getter(name="defaultPublishAuthModes") + def default_publish_auth_modes(self) -> pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]: + return pulumi.get(self, "default_publish_auth_modes") + + @default_publish_auth_modes.setter + def default_publish_auth_modes(self, value: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]): + pulumi.set(self, "default_publish_auth_modes", value) + + @property + @pulumi.getter(name="defaultSubscribeAuthModes") + def default_subscribe_auth_modes(self) -> pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]: + return pulumi.get(self, "default_subscribe_auth_modes") + + @default_subscribe_auth_modes.setter + def default_subscribe_auth_modes(self, value: pulumi.Input[Sequence[pulumi.Input['ApiAuthModeArgs']]]): + pulumi.set(self, "default_subscribe_auth_modes", value) + + @property + @pulumi.getter(name="logConfig") + def log_config(self) -> Optional[pulumi.Input['ApiEventLogConfigArgs']]: + return pulumi.get(self, "log_config") + + @log_config.setter + def log_config(self, value: Optional[pulumi.Input['ApiEventLogConfigArgs']]): + pulumi.set(self, "log_config", value) + + +if not MYPY: + class ApiEventLogConfigArgsDict(TypedDict): + """ + The log config for the AppSync API. + """ + cloud_watch_logs_role_arn: pulumi.Input[str] + log_level: pulumi.Input['ApiEventLogLevel'] +elif False: + ApiEventLogConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiEventLogConfigArgs: + def __init__(__self__, *, + cloud_watch_logs_role_arn: pulumi.Input[str], + log_level: pulumi.Input['ApiEventLogLevel']): + """ + The log config for the AppSync API. + """ + pulumi.set(__self__, "cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) + pulumi.set(__self__, "log_level", log_level) + + @property + @pulumi.getter(name="cloudWatchLogsRoleArn") + def cloud_watch_logs_role_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "cloud_watch_logs_role_arn") + + @cloud_watch_logs_role_arn.setter + def cloud_watch_logs_role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "cloud_watch_logs_role_arn", value) + + @property + @pulumi.getter(name="logLevel") + def log_level(self) -> pulumi.Input['ApiEventLogLevel']: + return pulumi.get(self, "log_level") + + @log_level.setter + def log_level(self, value: pulumi.Input['ApiEventLogLevel']): + pulumi.set(self, "log_level", value) + + +if not MYPY: + class ApiLambdaAuthorizerConfigArgsDict(TypedDict): + """ + A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + """ + authorizer_uri: pulumi.Input[str] + authorizer_result_ttl_in_seconds: NotRequired[pulumi.Input[int]] + identity_validation_expression: NotRequired[pulumi.Input[str]] +elif False: + ApiLambdaAuthorizerConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiLambdaAuthorizerConfigArgs: + def __init__(__self__, *, + authorizer_uri: pulumi.Input[str], + authorizer_result_ttl_in_seconds: Optional[pulumi.Input[int]] = None, + identity_validation_expression: Optional[pulumi.Input[str]] = None): + """ + A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + """ + pulumi.set(__self__, "authorizer_uri", authorizer_uri) + if authorizer_result_ttl_in_seconds is not None: + pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + if identity_validation_expression is not None: + pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + + @property + @pulumi.getter(name="authorizerUri") + def authorizer_uri(self) -> pulumi.Input[str]: + return pulumi.get(self, "authorizer_uri") + + @authorizer_uri.setter + def authorizer_uri(self, value: pulumi.Input[str]): + pulumi.set(self, "authorizer_uri", value) + + @property + @pulumi.getter(name="authorizerResultTtlInSeconds") + def authorizer_result_ttl_in_seconds(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "authorizer_result_ttl_in_seconds") + + @authorizer_result_ttl_in_seconds.setter + def authorizer_result_ttl_in_seconds(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "authorizer_result_ttl_in_seconds", value) + + @property + @pulumi.getter(name="identityValidationExpression") + def identity_validation_expression(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "identity_validation_expression") + + @identity_validation_expression.setter + def identity_validation_expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "identity_validation_expression", value) + + +if not MYPY: + class ApiOpenIdConnectConfigArgsDict(TypedDict): + """ + The OpenID Connect configuration. + """ + issuer: pulumi.Input[str] + auth_ttl: NotRequired[pulumi.Input[float]] + client_id: NotRequired[pulumi.Input[str]] + iat_ttl: NotRequired[pulumi.Input[float]] +elif False: + ApiOpenIdConnectConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApiOpenIdConnectConfigArgs: + def __init__(__self__, *, + issuer: pulumi.Input[str], + auth_ttl: Optional[pulumi.Input[float]] = None, + client_id: Optional[pulumi.Input[str]] = None, + iat_ttl: Optional[pulumi.Input[float]] = None): + """ + The OpenID Connect configuration. + """ + pulumi.set(__self__, "issuer", issuer) + if auth_ttl is not None: + pulumi.set(__self__, "auth_ttl", auth_ttl) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) + if iat_ttl is not None: + pulumi.set(__self__, "iat_ttl", iat_ttl) + + @property + @pulumi.getter + def issuer(self) -> pulumi.Input[str]: + return pulumi.get(self, "issuer") + + @issuer.setter + def issuer(self, value: pulumi.Input[str]): + pulumi.set(self, "issuer", value) + + @property + @pulumi.getter(name="authTtl") + def auth_ttl(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "auth_ttl") + + @auth_ttl.setter + def auth_ttl(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "auth_ttl", value) + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_id", value) + + @property + @pulumi.getter(name="iatTtl") + def iat_ttl(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "iat_ttl") + + @iat_ttl.setter + def iat_ttl(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "iat_ttl", value) + + if not MYPY: class DataSourceAuthorizationConfigArgsDict(TypedDict): authorization_type: pulumi.Input[str] diff --git a/sdk/python/pulumi_aws_native/appsync/api.py b/sdk/python/pulumi_aws_native/appsync/api.py new file mode 100644 index 0000000000..3b9467fa8e --- /dev/null +++ b/sdk/python/pulumi_aws_native/appsync/api.py @@ -0,0 +1,211 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._enums import * +from ._inputs import * + +__all__ = ['ApiArgs', 'Api'] + +@pulumi.input_type +class ApiArgs: + def __init__(__self__, *, + event_config: Optional[pulumi.Input['ApiEventConfigArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + owner_contact: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Api resource. + """ + if event_config is not None: + pulumi.set(__self__, "event_config", event_config) + if name is not None: + pulumi.set(__self__, "name", name) + if owner_contact is not None: + pulumi.set(__self__, "owner_contact", owner_contact) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="eventConfig") + def event_config(self) -> Optional[pulumi.Input['ApiEventConfigArgs']]: + return pulumi.get(self, "event_config") + + @event_config.setter + def event_config(self, value: Optional[pulumi.Input['ApiEventConfigArgs']]): + pulumi.set(self, "event_config", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="ownerContact") + def owner_contact(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "owner_contact") + + @owner_contact.setter + def owner_contact(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "owner_contact", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): + pulumi.set(self, "tags", value) + + +class Api(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + event_config: Optional[pulumi.Input[Union['ApiEventConfigArgs', 'ApiEventConfigArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_contact: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + """ + Resource schema for AppSync Api + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ApiArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource schema for AppSync Api + + :param str resource_name: The name of the resource. + :param ApiArgs 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(ApiArgs, 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, + event_config: Optional[pulumi.Input[Union['ApiEventConfigArgs', 'ApiEventConfigArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + owner_contact: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = 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__ = ApiArgs.__new__(ApiArgs) + + __props__.__dict__["event_config"] = event_config + __props__.__dict__["name"] = name + __props__.__dict__["owner_contact"] = owner_contact + __props__.__dict__["tags"] = tags + __props__.__dict__["api_arn"] = None + __props__.__dict__["api_id"] = None + __props__.__dict__["dns"] = None + super(Api, __self__).__init__( + 'aws-native:appsync:Api', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Api': + """ + Get an existing Api 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ApiArgs.__new__(ApiArgs) + + __props__.__dict__["api_arn"] = None + __props__.__dict__["api_id"] = None + __props__.__dict__["dns"] = None + __props__.__dict__["event_config"] = None + __props__.__dict__["name"] = None + __props__.__dict__["owner_contact"] = None + __props__.__dict__["tags"] = None + return Api(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="apiArn") + def api_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the AppSync Api + """ + return pulumi.get(self, "api_arn") + + @property + @pulumi.getter(name="apiId") + def api_id(self) -> pulumi.Output[str]: + """ + The unique identifier for the AppSync Api generated by the service + """ + return pulumi.get(self, "api_id") + + @property + @pulumi.getter + def dns(self) -> pulumi.Output[Mapping[str, str]]: + return pulumi.get(self, "dns") + + @property + @pulumi.getter(name="eventConfig") + def event_config(self) -> pulumi.Output[Optional['outputs.ApiEventConfig']]: + return pulumi.get(self, "event_config") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="ownerContact") + def owner_contact(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "owner_contact") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/appsync/get_api.py b/sdk/python/pulumi_aws_native/appsync/get_api.py new file mode 100644 index 0000000000..f0345c366d --- /dev/null +++ b/sdk/python/pulumi_aws_native/appsync/get_api.py @@ -0,0 +1,149 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs +from ._enums import * + +__all__ = [ + 'GetApiResult', + 'AwaitableGetApiResult', + 'get_api', + 'get_api_output', +] + +@pulumi.output_type +class GetApiResult: + def __init__(__self__, api_arn=None, api_id=None, dns=None, event_config=None, name=None, owner_contact=None, tags=None): + if api_arn and not isinstance(api_arn, str): + raise TypeError("Expected argument 'api_arn' to be a str") + pulumi.set(__self__, "api_arn", api_arn) + if api_id and not isinstance(api_id, str): + raise TypeError("Expected argument 'api_id' to be a str") + pulumi.set(__self__, "api_id", api_id) + if dns and not isinstance(dns, dict): + raise TypeError("Expected argument 'dns' to be a dict") + pulumi.set(__self__, "dns", dns) + if event_config and not isinstance(event_config, dict): + raise TypeError("Expected argument 'event_config' to be a dict") + pulumi.set(__self__, "event_config", event_config) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if owner_contact and not isinstance(owner_contact, str): + raise TypeError("Expected argument 'owner_contact' to be a str") + pulumi.set(__self__, "owner_contact", owner_contact) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="apiArn") + def api_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the AppSync Api + """ + return pulumi.get(self, "api_arn") + + @property + @pulumi.getter(name="apiId") + def api_id(self) -> Optional[str]: + """ + The unique identifier for the AppSync Api generated by the service + """ + return pulumi.get(self, "api_id") + + @property + @pulumi.getter + def dns(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "dns") + + @property + @pulumi.getter(name="eventConfig") + def event_config(self) -> Optional['outputs.ApiEventConfig']: + return pulumi.get(self, "event_config") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="ownerContact") + def owner_contact(self) -> Optional[str]: + return pulumi.get(self, "owner_contact") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + + +class AwaitableGetApiResult(GetApiResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetApiResult( + api_arn=self.api_arn, + api_id=self.api_id, + dns=self.dns, + event_config=self.event_config, + name=self.name, + owner_contact=self.owner_contact, + tags=self.tags) + + +def get_api(api_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApiResult: + """ + Resource schema for AppSync Api + + + :param str api_arn: The Amazon Resource Name (ARN) of the AppSync Api + """ + __args__ = dict() + __args__['apiArn'] = api_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:appsync:getApi', __args__, opts=opts, typ=GetApiResult).value + + return AwaitableGetApiResult( + api_arn=pulumi.get(__ret__, 'api_arn'), + api_id=pulumi.get(__ret__, 'api_id'), + dns=pulumi.get(__ret__, 'dns'), + event_config=pulumi.get(__ret__, 'event_config'), + name=pulumi.get(__ret__, 'name'), + owner_contact=pulumi.get(__ret__, 'owner_contact'), + tags=pulumi.get(__ret__, 'tags')) +def get_api_output(api_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetApiResult]: + """ + Resource schema for AppSync Api + + + :param str api_arn: The Amazon Resource Name (ARN) of the AppSync Api + """ + __args__ = dict() + __args__['apiArn'] = api_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:appsync:getApi', __args__, opts=opts, typ=GetApiResult) + return __ret__.apply(lambda __response__: GetApiResult( + api_arn=pulumi.get(__response__, 'api_arn'), + api_id=pulumi.get(__response__, 'api_id'), + dns=pulumi.get(__response__, 'dns'), + event_config=pulumi.get(__response__, 'event_config'), + name=pulumi.get(__response__, 'name'), + owner_contact=pulumi.get(__response__, 'owner_contact'), + tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/appsync/outputs.py b/sdk/python/pulumi_aws_native/appsync/outputs.py index ab43582676..475654acaf 100644 --- a/sdk/python/pulumi_aws_native/appsync/outputs.py +++ b/sdk/python/pulumi_aws_native/appsync/outputs.py @@ -17,6 +17,13 @@ from ._enums import * __all__ = [ + 'ApiAuthMode', + 'ApiAuthProvider', + 'ApiCognitoConfig', + 'ApiEventConfig', + 'ApiEventLogConfig', + 'ApiLambdaAuthorizerConfig', + 'ApiOpenIdConnectConfig', 'DataSourceAuthorizationConfig', 'DataSourceAwsIamConfig', 'DataSourceDeltaSyncConfig', @@ -46,6 +53,395 @@ 'SourceApiAssociationConfig', ] +@pulumi.output_type +class ApiAuthMode(dict): + """ + An auth mode. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authType": + suggest = "auth_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiAuthMode. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiAuthMode.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiAuthMode.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + auth_type: Optional['ApiAuthenticationType'] = None): + """ + An auth mode. + """ + if auth_type is not None: + pulumi.set(__self__, "auth_type", auth_type) + + @property + @pulumi.getter(name="authType") + def auth_type(self) -> Optional['ApiAuthenticationType']: + return pulumi.get(self, "auth_type") + + +@pulumi.output_type +class ApiAuthProvider(dict): + """ + An auth provider for the AppSync API. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authType": + suggest = "auth_type" + elif key == "cognitoConfig": + suggest = "cognito_config" + elif key == "lambdaAuthorizerConfig": + suggest = "lambda_authorizer_config" + elif key == "openIdConnectConfig": + suggest = "open_id_connect_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiAuthProvider. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiAuthProvider.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiAuthProvider.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + auth_type: 'ApiAuthenticationType', + cognito_config: Optional['outputs.ApiCognitoConfig'] = None, + lambda_authorizer_config: Optional['outputs.ApiLambdaAuthorizerConfig'] = None, + open_id_connect_config: Optional['outputs.ApiOpenIdConnectConfig'] = None): + """ + An auth provider for the AppSync API. + """ + pulumi.set(__self__, "auth_type", auth_type) + if cognito_config is not None: + pulumi.set(__self__, "cognito_config", cognito_config) + if lambda_authorizer_config is not None: + pulumi.set(__self__, "lambda_authorizer_config", lambda_authorizer_config) + if open_id_connect_config is not None: + pulumi.set(__self__, "open_id_connect_config", open_id_connect_config) + + @property + @pulumi.getter(name="authType") + def auth_type(self) -> 'ApiAuthenticationType': + return pulumi.get(self, "auth_type") + + @property + @pulumi.getter(name="cognitoConfig") + def cognito_config(self) -> Optional['outputs.ApiCognitoConfig']: + return pulumi.get(self, "cognito_config") + + @property + @pulumi.getter(name="lambdaAuthorizerConfig") + def lambda_authorizer_config(self) -> Optional['outputs.ApiLambdaAuthorizerConfig']: + return pulumi.get(self, "lambda_authorizer_config") + + @property + @pulumi.getter(name="openIdConnectConfig") + def open_id_connect_config(self) -> Optional['outputs.ApiOpenIdConnectConfig']: + return pulumi.get(self, "open_id_connect_config") + + +@pulumi.output_type +class ApiCognitoConfig(dict): + """ + Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "awsRegion": + suggest = "aws_region" + elif key == "userPoolId": + suggest = "user_pool_id" + elif key == "appIdClientRegex": + suggest = "app_id_client_regex" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiCognitoConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiCognitoConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiCognitoConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + aws_region: str, + user_pool_id: str, + app_id_client_regex: Optional[str] = None): + """ + Optional authorization configuration for using Amazon Cognito user pools with your API endpoint. + """ + pulumi.set(__self__, "aws_region", aws_region) + pulumi.set(__self__, "user_pool_id", user_pool_id) + if app_id_client_regex is not None: + pulumi.set(__self__, "app_id_client_regex", app_id_client_regex) + + @property + @pulumi.getter(name="awsRegion") + def aws_region(self) -> str: + return pulumi.get(self, "aws_region") + + @property + @pulumi.getter(name="userPoolId") + def user_pool_id(self) -> str: + return pulumi.get(self, "user_pool_id") + + @property + @pulumi.getter(name="appIdClientRegex") + def app_id_client_regex(self) -> Optional[str]: + return pulumi.get(self, "app_id_client_regex") + + +@pulumi.output_type +class ApiEventConfig(dict): + """ + The configuration for an Event Api + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authProviders": + suggest = "auth_providers" + elif key == "connectionAuthModes": + suggest = "connection_auth_modes" + elif key == "defaultPublishAuthModes": + suggest = "default_publish_auth_modes" + elif key == "defaultSubscribeAuthModes": + suggest = "default_subscribe_auth_modes" + elif key == "logConfig": + suggest = "log_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiEventConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiEventConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiEventConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + auth_providers: Sequence['outputs.ApiAuthProvider'], + connection_auth_modes: Sequence['outputs.ApiAuthMode'], + default_publish_auth_modes: Sequence['outputs.ApiAuthMode'], + default_subscribe_auth_modes: Sequence['outputs.ApiAuthMode'], + log_config: Optional['outputs.ApiEventLogConfig'] = None): + """ + The configuration for an Event Api + """ + pulumi.set(__self__, "auth_providers", auth_providers) + pulumi.set(__self__, "connection_auth_modes", connection_auth_modes) + pulumi.set(__self__, "default_publish_auth_modes", default_publish_auth_modes) + pulumi.set(__self__, "default_subscribe_auth_modes", default_subscribe_auth_modes) + if log_config is not None: + pulumi.set(__self__, "log_config", log_config) + + @property + @pulumi.getter(name="authProviders") + def auth_providers(self) -> Sequence['outputs.ApiAuthProvider']: + return pulumi.get(self, "auth_providers") + + @property + @pulumi.getter(name="connectionAuthModes") + def connection_auth_modes(self) -> Sequence['outputs.ApiAuthMode']: + return pulumi.get(self, "connection_auth_modes") + + @property + @pulumi.getter(name="defaultPublishAuthModes") + def default_publish_auth_modes(self) -> Sequence['outputs.ApiAuthMode']: + return pulumi.get(self, "default_publish_auth_modes") + + @property + @pulumi.getter(name="defaultSubscribeAuthModes") + def default_subscribe_auth_modes(self) -> Sequence['outputs.ApiAuthMode']: + return pulumi.get(self, "default_subscribe_auth_modes") + + @property + @pulumi.getter(name="logConfig") + def log_config(self) -> Optional['outputs.ApiEventLogConfig']: + return pulumi.get(self, "log_config") + + +@pulumi.output_type +class ApiEventLogConfig(dict): + """ + The log config for the AppSync API. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cloudWatchLogsRoleArn": + suggest = "cloud_watch_logs_role_arn" + elif key == "logLevel": + suggest = "log_level" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiEventLogConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiEventLogConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiEventLogConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cloud_watch_logs_role_arn: str, + log_level: 'ApiEventLogLevel'): + """ + The log config for the AppSync API. + """ + pulumi.set(__self__, "cloud_watch_logs_role_arn", cloud_watch_logs_role_arn) + pulumi.set(__self__, "log_level", log_level) + + @property + @pulumi.getter(name="cloudWatchLogsRoleArn") + def cloud_watch_logs_role_arn(self) -> str: + return pulumi.get(self, "cloud_watch_logs_role_arn") + + @property + @pulumi.getter(name="logLevel") + def log_level(self) -> 'ApiEventLogLevel': + return pulumi.get(self, "log_level") + + +@pulumi.output_type +class ApiLambdaAuthorizerConfig(dict): + """ + A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authorizerUri": + suggest = "authorizer_uri" + elif key == "authorizerResultTtlInSeconds": + suggest = "authorizer_result_ttl_in_seconds" + elif key == "identityValidationExpression": + suggest = "identity_validation_expression" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiLambdaAuthorizerConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiLambdaAuthorizerConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiLambdaAuthorizerConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + authorizer_uri: str, + authorizer_result_ttl_in_seconds: Optional[int] = None, + identity_validation_expression: Optional[str] = None): + """ + A LambdaAuthorizerConfig holds configuration on how to authorize AWS AppSync API access when using the AWS_LAMBDA authorizer mode. Be aware that an AWS AppSync API may have only one Lambda authorizer configured at a time. + """ + pulumi.set(__self__, "authorizer_uri", authorizer_uri) + if authorizer_result_ttl_in_seconds is not None: + pulumi.set(__self__, "authorizer_result_ttl_in_seconds", authorizer_result_ttl_in_seconds) + if identity_validation_expression is not None: + pulumi.set(__self__, "identity_validation_expression", identity_validation_expression) + + @property + @pulumi.getter(name="authorizerUri") + def authorizer_uri(self) -> str: + return pulumi.get(self, "authorizer_uri") + + @property + @pulumi.getter(name="authorizerResultTtlInSeconds") + def authorizer_result_ttl_in_seconds(self) -> Optional[int]: + return pulumi.get(self, "authorizer_result_ttl_in_seconds") + + @property + @pulumi.getter(name="identityValidationExpression") + def identity_validation_expression(self) -> Optional[str]: + return pulumi.get(self, "identity_validation_expression") + + +@pulumi.output_type +class ApiOpenIdConnectConfig(dict): + """ + The OpenID Connect configuration. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "authTtl": + suggest = "auth_ttl" + elif key == "clientId": + suggest = "client_id" + elif key == "iatTtl": + suggest = "iat_ttl" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApiOpenIdConnectConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApiOpenIdConnectConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApiOpenIdConnectConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + issuer: str, + auth_ttl: Optional[float] = None, + client_id: Optional[str] = None, + iat_ttl: Optional[float] = None): + """ + The OpenID Connect configuration. + """ + pulumi.set(__self__, "issuer", issuer) + if auth_ttl is not None: + pulumi.set(__self__, "auth_ttl", auth_ttl) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) + if iat_ttl is not None: + pulumi.set(__self__, "iat_ttl", iat_ttl) + + @property + @pulumi.getter + def issuer(self) -> str: + return pulumi.get(self, "issuer") + + @property + @pulumi.getter(name="authTtl") + def auth_ttl(self) -> Optional[float]: + return pulumi.get(self, "auth_ttl") + + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[str]: + return pulumi.get(self, "client_id") + + @property + @pulumi.getter(name="iatTtl") + def iat_ttl(self) -> Optional[float]: + return pulumi.get(self, "iat_ttl") + + @pulumi.output_type class DataSourceAuthorizationConfig(dict): @staticmethod diff --git a/sdk/python/pulumi_aws_native/codepipeline/_enums.py b/sdk/python/pulumi_aws_native/codepipeline/_enums.py index 4d5a14e89f..6e144468b3 100644 --- a/sdk/python/pulumi_aws_native/codepipeline/_enums.py +++ b/sdk/python/pulumi_aws_native/codepipeline/_enums.py @@ -10,6 +10,7 @@ 'PipelineBlockerDeclarationType', 'PipelineExecutionMode', 'PipelineFailureConditionsResult', + 'PipelineFailureConditionsRetryConfigurationPropertiesRetryMode', 'PipelineTriggerDeclarationProviderType', 'PipelineType', ] @@ -56,6 +57,15 @@ class PipelineFailureConditionsResult(str, Enum): The specified result for when the failure conditions are met, such as rolling back the stage """ ROLLBACK = "ROLLBACK" + RETRY = "RETRY" + + +class PipelineFailureConditionsRetryConfigurationPropertiesRetryMode(str, Enum): + """ + The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ + ALL_ACTIONS = "ALL_ACTIONS" + FAILED_ACTIONS = "FAILED_ACTIONS" class PipelineTriggerDeclarationProviderType(str, Enum): diff --git a/sdk/python/pulumi_aws_native/codepipeline/_inputs.py b/sdk/python/pulumi_aws_native/codepipeline/_inputs.py index b4cb39a61a..19a14c13d4 100644 --- a/sdk/python/pulumi_aws_native/codepipeline/_inputs.py +++ b/sdk/python/pulumi_aws_native/codepipeline/_inputs.py @@ -38,6 +38,8 @@ 'PipelineConditionArgsDict', 'PipelineEncryptionKeyArgs', 'PipelineEncryptionKeyArgsDict', + 'PipelineFailureConditionsRetryConfigurationPropertiesArgs', + 'PipelineFailureConditionsRetryConfigurationPropertiesArgsDict', 'PipelineFailureConditionsArgs', 'PipelineFailureConditionsArgsDict', 'PipelineGitBranchFilterCriteriaArgs', @@ -1062,6 +1064,42 @@ def type(self, value: pulumi.Input[str]): pulumi.set(self, "type", value) +if not MYPY: + class PipelineFailureConditionsRetryConfigurationPropertiesArgsDict(TypedDict): + """ + The configuration that specifies the retry configuration for a stage + """ + retry_mode: NotRequired[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode']] + """ + The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ +elif False: + PipelineFailureConditionsRetryConfigurationPropertiesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PipelineFailureConditionsRetryConfigurationPropertiesArgs: + def __init__(__self__, *, + retry_mode: Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode']] = None): + """ + The configuration that specifies the retry configuration for a stage + :param pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode'] retry_mode: The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ + if retry_mode is not None: + pulumi.set(__self__, "retry_mode", retry_mode) + + @property + @pulumi.getter(name="retryMode") + def retry_mode(self) -> Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode']]: + """ + The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ + return pulumi.get(self, "retry_mode") + + @retry_mode.setter + def retry_mode(self, value: Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode']]): + pulumi.set(self, "retry_mode", value) + + if not MYPY: class PipelineFailureConditionsArgsDict(TypedDict): """ @@ -1075,6 +1113,10 @@ class PipelineFailureConditionsArgsDict(TypedDict): """ The specified result for when the failure conditions are met, such as rolling back the stage """ + retry_configuration: NotRequired[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesArgsDict']] + """ + The configuration that specifies the retry configuration for a stage + """ elif False: PipelineFailureConditionsArgsDict: TypeAlias = Mapping[str, Any] @@ -1082,16 +1124,20 @@ class PipelineFailureConditionsArgsDict(TypedDict): class PipelineFailureConditionsArgs: def __init__(__self__, *, conditions: Optional[pulumi.Input[Sequence[pulumi.Input['PipelineConditionArgs']]]] = None, - result: Optional[pulumi.Input['PipelineFailureConditionsResult']] = None): + result: Optional[pulumi.Input['PipelineFailureConditionsResult']] = None, + retry_configuration: Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesArgs']] = None): """ The configuration that specifies the result, such as rollback, to occur upon stage failure :param pulumi.Input[Sequence[pulumi.Input['PipelineConditionArgs']]] conditions: The conditions that are configured as failure conditions. :param pulumi.Input['PipelineFailureConditionsResult'] result: The specified result for when the failure conditions are met, such as rolling back the stage + :param pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesArgs'] retry_configuration: The configuration that specifies the retry configuration for a stage """ if conditions is not None: pulumi.set(__self__, "conditions", conditions) if result is not None: pulumi.set(__self__, "result", result) + if retry_configuration is not None: + pulumi.set(__self__, "retry_configuration", retry_configuration) @property @pulumi.getter @@ -1117,6 +1163,18 @@ def result(self) -> Optional[pulumi.Input['PipelineFailureConditionsResult']]: def result(self, value: Optional[pulumi.Input['PipelineFailureConditionsResult']]): pulumi.set(self, "result", value) + @property + @pulumi.getter(name="retryConfiguration") + def retry_configuration(self) -> Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesArgs']]: + """ + The configuration that specifies the retry configuration for a stage + """ + return pulumi.get(self, "retry_configuration") + + @retry_configuration.setter + def retry_configuration(self, value: Optional[pulumi.Input['PipelineFailureConditionsRetryConfigurationPropertiesArgs']]): + pulumi.set(self, "retry_configuration", value) + if not MYPY: class PipelineGitBranchFilterCriteriaArgsDict(TypedDict): diff --git a/sdk/python/pulumi_aws_native/codepipeline/outputs.py b/sdk/python/pulumi_aws_native/codepipeline/outputs.py index c2fc0bc834..8433cbac81 100644 --- a/sdk/python/pulumi_aws_native/codepipeline/outputs.py +++ b/sdk/python/pulumi_aws_native/codepipeline/outputs.py @@ -29,6 +29,7 @@ 'PipelineCondition', 'PipelineEncryptionKey', 'PipelineFailureConditions', + 'PipelineFailureConditionsRetryConfigurationProperties', 'PipelineGitBranchFilterCriteria', 'PipelineGitConfiguration', 'PipelineGitFilePathFilterCriteria', @@ -757,18 +758,39 @@ class PipelineFailureConditions(dict): """ The configuration that specifies the result, such as rollback, to occur upon stage failure """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "retryConfiguration": + suggest = "retry_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PipelineFailureConditions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PipelineFailureConditions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PipelineFailureConditions.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, conditions: Optional[Sequence['outputs.PipelineCondition']] = None, - result: Optional['PipelineFailureConditionsResult'] = None): + result: Optional['PipelineFailureConditionsResult'] = None, + retry_configuration: Optional['outputs.PipelineFailureConditionsRetryConfigurationProperties'] = None): """ The configuration that specifies the result, such as rollback, to occur upon stage failure :param Sequence['PipelineCondition'] conditions: The conditions that are configured as failure conditions. :param 'PipelineFailureConditionsResult' result: The specified result for when the failure conditions are met, such as rolling back the stage + :param 'PipelineFailureConditionsRetryConfigurationProperties' retry_configuration: The configuration that specifies the retry configuration for a stage """ if conditions is not None: pulumi.set(__self__, "conditions", conditions) if result is not None: pulumi.set(__self__, "result", result) + if retry_configuration is not None: + pulumi.set(__self__, "retry_configuration", retry_configuration) @property @pulumi.getter @@ -786,6 +808,54 @@ def result(self) -> Optional['PipelineFailureConditionsResult']: """ return pulumi.get(self, "result") + @property + @pulumi.getter(name="retryConfiguration") + def retry_configuration(self) -> Optional['outputs.PipelineFailureConditionsRetryConfigurationProperties']: + """ + The configuration that specifies the retry configuration for a stage + """ + return pulumi.get(self, "retry_configuration") + + +@pulumi.output_type +class PipelineFailureConditionsRetryConfigurationProperties(dict): + """ + The configuration that specifies the retry configuration for a stage + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "retryMode": + suggest = "retry_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PipelineFailureConditionsRetryConfigurationProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PipelineFailureConditionsRetryConfigurationProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PipelineFailureConditionsRetryConfigurationProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + retry_mode: Optional['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode'] = None): + """ + The configuration that specifies the retry configuration for a stage + :param 'PipelineFailureConditionsRetryConfigurationPropertiesRetryMode' retry_mode: The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ + if retry_mode is not None: + pulumi.set(__self__, "retry_mode", retry_mode) + + @property + @pulumi.getter(name="retryMode") + def retry_mode(self) -> Optional['PipelineFailureConditionsRetryConfigurationPropertiesRetryMode']: + """ + The specified retry mode type for the given stage. FAILED_ACTIONS will retry only the failed actions. ALL_ACTIONS will retry both failed and successful + """ + return pulumi.get(self, "retry_mode") + @pulumi.output_type class PipelineGitBranchFilterCriteria(dict): diff --git a/sdk/python/pulumi_aws_native/ec2/eip.py b/sdk/python/pulumi_aws_native/ec2/eip.py index f180535053..62847f538d 100644 --- a/sdk/python/pulumi_aws_native/ec2/eip.py +++ b/sdk/python/pulumi_aws_native/ec2/eip.py @@ -31,6 +31,7 @@ def __init__(__self__, *, transfer_address: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Eip resource. + :param pulumi.Input[str] address: Describes an Elastic IP address, or a carrier IP address. :param pulumi.Input[str] domain: The network (``vpc``). If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. :param pulumi.Input[str] instance_id: The ID of the instance. @@ -63,6 +64,9 @@ def __init__(__self__, *, @property @pulumi.getter def address(self) -> Optional[pulumi.Input[str]]: + """ + Describes an Elastic IP address, or a carrier IP address. + """ return pulumi.get(self, "address") @address.setter @@ -177,6 +181,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] address: Describes an Elastic IP address, or a carrier IP address. :param pulumi.Input[str] domain: The network (``vpc``). If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. :param pulumi.Input[str] instance_id: The ID of the instance. @@ -281,6 +286,9 @@ def get(resource_name: str, @property @pulumi.getter def address(self) -> pulumi.Output[Optional[str]]: + """ + Describes an Elastic IP address, or a carrier IP address. + """ return pulumi.get(self, "address") @property diff --git a/sdk/python/pulumi_aws_native/m2/application.py b/sdk/python/pulumi_aws_native/m2/application.py index 9796881d32..7e2c3b207a 100644 --- a/sdk/python/pulumi_aws_native/m2/application.py +++ b/sdk/python/pulumi_aws_native/m2/application.py @@ -22,8 +22,8 @@ @pulumi.input_type class ApplicationArgs: def __init__(__self__, *, - definition: pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']], engine_type: pulumi.Input['ApplicationEngineType'], + definition: Optional[pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']]] = None, description: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -31,10 +31,10 @@ 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['ApplicationEngineType'] engine_type: The type of the target platform for this application. :param pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']] definition: The application definition for a particular application. You can specify either inline JSON or an Amazon S3 bucket location. For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . - :param pulumi.Input['ApplicationEngineType'] engine_type: The type of the target platform for this application. :param pulumi.Input[str] description: The description of the application. :param pulumi.Input[str] kms_key_id: The ID or the Amazon Resource Name (ARN) of the customer managed KMS Key used for encrypting application-related resources. :param pulumi.Input[str] name: The name of the application. @@ -43,8 +43,9 @@ def __init__(__self__, *, For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) . """ - pulumi.set(__self__, "definition", definition) 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: @@ -56,20 +57,6 @@ def __init__(__self__, *, if tags is not None: pulumi.set(__self__, "tags", tags) - @property - @pulumi.getter - def definition(self) -> pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']]: - """ - The application definition for a particular application. You can specify either inline JSON or an Amazon S3 bucket location. - - For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . - """ - return pulumi.get(self, "definition") - - @definition.setter - def definition(self, value: pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']]): - pulumi.set(self, "definition", value) - @property @pulumi.getter(name="engineType") def engine_type(self) -> pulumi.Input['ApplicationEngineType']: @@ -82,6 +69,20 @@ def engine_type(self) -> pulumi.Input['ApplicationEngineType']: def engine_type(self, value: pulumi.Input['ApplicationEngineType']): pulumi.set(self, "engine_type", value) + @property + @pulumi.getter + def definition(self) -> Optional[pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']]]: + """ + The application definition for a particular application. You can specify either inline JSON or an Amazon S3 bucket location. + + For information about application definitions, see the [AWS Mainframe Modernization User Guide](https://docs.aws.amazon.com/m2/latest/userguide/applications-m2-definition.html) . + """ + return pulumi.get(self, "definition") + + @definition.setter + def definition(self, value: Optional[pulumi.Input[Union['ApplicationDefinition0PropertiesArgs', 'ApplicationDefinition1PropertiesArgs']]]): + pulumi.set(self, "definition", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -215,8 +216,6 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ApplicationArgs.__new__(ApplicationArgs) - if definition is None and not opts.urn: - raise TypeError("Missing required property 'definition'") __props__.__dict__["definition"] = definition __props__.__dict__["description"] = description if engine_type is None and not opts.urn: @@ -281,7 +280,7 @@ def application_id(self) -> pulumi.Output[str]: @property @pulumi.getter - def definition(self) -> pulumi.Output[Any]: + def definition(self) -> pulumi.Output[Optional[Any]]: """ The application definition for a particular application. You can specify either inline JSON or an Amazon S3 bucket location. diff --git a/sdk/python/pulumi_aws_native/opensearchservice/__init__.py b/sdk/python/pulumi_aws_native/opensearchservice/__init__.py index 1d8c3c603c..b6228b2758 100644 --- a/sdk/python/pulumi_aws_native/opensearchservice/__init__.py +++ b/sdk/python/pulumi_aws_native/opensearchservice/__init__.py @@ -5,7 +5,10 @@ from .. import _utilities import typing # Export this package's modules as members: +from ._enums import * +from .application import * from .domain import * +from .get_application import * from .get_domain import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/opensearchservice/_enums.py b/sdk/python/pulumi_aws_native/opensearchservice/_enums.py new file mode 100644 index 0000000000..2695f174c3 --- /dev/null +++ b/sdk/python/pulumi_aws_native/opensearchservice/_enums.py @@ -0,0 +1,17 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from enum import Enum + +__all__ = [ + 'ApplicationAppConfigType', +] + + +class ApplicationAppConfigType(str, Enum): + """ + AppConfig type values. + """ + OPENSEARCH_DASHBOARDS_DASHBOARD_ADMIN_USERS = "opensearchDashboards.dashboardAdmin.users" + OPENSEARCH_DASHBOARDS_DASHBOARD_ADMIN_GROUPS = "opensearchDashboards.dashboardAdmin.groups" diff --git a/sdk/python/pulumi_aws_native/opensearchservice/_inputs.py b/sdk/python/pulumi_aws_native/opensearchservice/_inputs.py index bae7121f52..660f56b9c3 100644 --- a/sdk/python/pulumi_aws_native/opensearchservice/_inputs.py +++ b/sdk/python/pulumi_aws_native/opensearchservice/_inputs.py @@ -13,8 +13,13 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from ._enums import * __all__ = [ + 'ApplicationAppConfigArgs', + 'ApplicationAppConfigArgsDict', + 'ApplicationDataSourceArgs', + 'ApplicationDataSourceArgsDict', 'DomainAdvancedSecurityOptionsInputArgs', 'DomainAdvancedSecurityOptionsInputArgsDict', 'DomainClusterConfigArgs', @@ -55,10 +60,121 @@ 'DomainWindowStartTimeArgsDict', 'DomainZoneAwarenessConfigArgs', 'DomainZoneAwarenessConfigArgsDict', + 'IamIdentityCenterOptionsPropertiesArgs', + 'IamIdentityCenterOptionsPropertiesArgsDict', ] MYPY = False +if not MYPY: + class ApplicationAppConfigArgsDict(TypedDict): + """ + A key-value pair of AppConfig + """ + key: pulumi.Input['ApplicationAppConfigType'] + """ + The configuration key + """ + value: pulumi.Input[str] + """ + The configuration value. + """ +elif False: + ApplicationAppConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApplicationAppConfigArgs: + def __init__(__self__, *, + key: pulumi.Input['ApplicationAppConfigType'], + value: pulumi.Input[str]): + """ + A key-value pair of AppConfig + :param pulumi.Input['ApplicationAppConfigType'] key: The configuration key + :param pulumi.Input[str] value: The configuration value. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> pulumi.Input['ApplicationAppConfigType']: + """ + The configuration key + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input['ApplicationAppConfigType']): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + The configuration value. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +if not MYPY: + class ApplicationDataSourceArgsDict(TypedDict): + """ + Datasource arn and description + """ + data_source_arn: Any + """ + The ARN of the data source. + """ + data_source_description: NotRequired[pulumi.Input[str]] + """ + Description of the data source. + """ +elif False: + ApplicationDataSourceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ApplicationDataSourceArgs: + def __init__(__self__, *, + data_source_arn: Any, + data_source_description: Optional[pulumi.Input[str]] = None): + """ + Datasource arn and description + :param Any data_source_arn: The ARN of the data source. + :param pulumi.Input[str] data_source_description: Description of the data source. + """ + pulumi.set(__self__, "data_source_arn", data_source_arn) + if data_source_description is not None: + pulumi.set(__self__, "data_source_description", data_source_description) + + @property + @pulumi.getter(name="dataSourceArn") + def data_source_arn(self) -> Any: + """ + The ARN of the data source. + """ + return pulumi.get(self, "data_source_arn") + + @data_source_arn.setter + def data_source_arn(self, value: Any): + pulumi.set(self, "data_source_arn", value) + + @property + @pulumi.getter(name="dataSourceDescription") + def data_source_description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the data source. + """ + return pulumi.get(self, "data_source_description") + + @data_source_description.setter + def data_source_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_source_description", value) + + if not MYPY: class DomainAdvancedSecurityOptionsInputArgsDict(TypedDict): anonymous_auth_disable_date: NotRequired[pulumi.Input[str]] @@ -1621,3 +1737,79 @@ def availability_zone_count(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "availability_zone_count", value) +if not MYPY: + class IamIdentityCenterOptionsPropertiesArgsDict(TypedDict): + """ + Options for configuring IAM Identity Center + """ + enabled: NotRequired[pulumi.Input[bool]] + """ + Whether IAM Identity Center is enabled. + """ + iam_identity_center_instance_arn: NotRequired[Any] + """ + The ARN of the IAM Identity Center instance. + """ + iam_role_for_identity_center_application_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the IAM role for Identity Center application. + """ +elif False: + IamIdentityCenterOptionsPropertiesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class IamIdentityCenterOptionsPropertiesArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + iam_identity_center_instance_arn: Optional[Any] = None, + iam_role_for_identity_center_application_arn: Optional[pulumi.Input[str]] = None): + """ + Options for configuring IAM Identity Center + :param pulumi.Input[bool] enabled: Whether IAM Identity Center is enabled. + :param Any iam_identity_center_instance_arn: The ARN of the IAM Identity Center instance. + :param pulumi.Input[str] iam_role_for_identity_center_application_arn: The ARN of the IAM role for Identity Center application. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if iam_identity_center_instance_arn is not None: + pulumi.set(__self__, "iam_identity_center_instance_arn", iam_identity_center_instance_arn) + if iam_role_for_identity_center_application_arn is not None: + pulumi.set(__self__, "iam_role_for_identity_center_application_arn", iam_role_for_identity_center_application_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Whether IAM Identity Center is enabled. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="iamIdentityCenterInstanceArn") + def iam_identity_center_instance_arn(self) -> Optional[Any]: + """ + The ARN of the IAM Identity Center instance. + """ + return pulumi.get(self, "iam_identity_center_instance_arn") + + @iam_identity_center_instance_arn.setter + def iam_identity_center_instance_arn(self, value: Optional[Any]): + pulumi.set(self, "iam_identity_center_instance_arn", value) + + @property + @pulumi.getter(name="iamRoleForIdentityCenterApplicationArn") + def iam_role_for_identity_center_application_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the IAM role for Identity Center application. + """ + return pulumi.get(self, "iam_role_for_identity_center_application_arn") + + @iam_role_for_identity_center_application_arn.setter + def iam_role_for_identity_center_application_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "iam_role_for_identity_center_application_arn", value) + + diff --git a/sdk/python/pulumi_aws_native/opensearchservice/application.py b/sdk/python/pulumi_aws_native/opensearchservice/application.py new file mode 100644 index 0000000000..e996851109 --- /dev/null +++ b/sdk/python/pulumi_aws_native/opensearchservice/application.py @@ -0,0 +1,296 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._enums import * +from ._inputs import * + +__all__ = ['ApplicationArgs', 'Application'] + +@pulumi.input_type +class ApplicationArgs: + def __init__(__self__, *, + app_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationAppConfigArgs']]]] = None, + data_sources: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationDataSourceArgs']]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + iam_identity_center_options: Optional[pulumi.Input['IamIdentityCenterOptionsPropertiesArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Application resource. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationAppConfigArgs']]] app_configs: List of application configurations. + :param pulumi.Input[Sequence[pulumi.Input['ApplicationDataSourceArgs']]] data_sources: List of data sources. + :param pulumi.Input[str] endpoint: The endpoint for the application. + :param pulumi.Input['IamIdentityCenterOptionsPropertiesArgs'] iam_identity_center_options: Options for configuring IAM Identity Center + :param pulumi.Input[str] name: The name of the application. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An arbitrary set of tags (key-value pairs) for this application. + """ + if app_configs is not None: + pulumi.set(__self__, "app_configs", app_configs) + if data_sources is not None: + pulumi.set(__self__, "data_sources", data_sources) + if endpoint is not None: + pulumi.set(__self__, "endpoint", endpoint) + if iam_identity_center_options is not None: + pulumi.set(__self__, "iam_identity_center_options", iam_identity_center_options) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="appConfigs") + def app_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationAppConfigArgs']]]]: + """ + List of application configurations. + """ + return pulumi.get(self, "app_configs") + + @app_configs.setter + def app_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationAppConfigArgs']]]]): + pulumi.set(self, "app_configs", value) + + @property + @pulumi.getter(name="dataSources") + def data_sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationDataSourceArgs']]]]: + """ + List of data sources. + """ + return pulumi.get(self, "data_sources") + + @data_sources.setter + def data_sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApplicationDataSourceArgs']]]]): + pulumi.set(self, "data_sources", value) + + @property + @pulumi.getter + def endpoint(self) -> Optional[pulumi.Input[str]]: + """ + The endpoint for the application. + """ + return pulumi.get(self, "endpoint") + + @endpoint.setter + def endpoint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "endpoint", value) + + @property + @pulumi.getter(name="iamIdentityCenterOptions") + def iam_identity_center_options(self) -> Optional[pulumi.Input['IamIdentityCenterOptionsPropertiesArgs']]: + """ + Options for configuring IAM Identity Center + """ + return pulumi.get(self, "iam_identity_center_options") + + @iam_identity_center_options.setter + def iam_identity_center_options(self, value: Optional[pulumi.Input['IamIdentityCenterOptionsPropertiesArgs']]): + pulumi.set(self, "iam_identity_center_options", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the application. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An arbitrary set of tags (key-value pairs) for this application. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): + pulumi.set(self, "tags", value) + + +class Application(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + app_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationAppConfigArgs', 'ApplicationAppConfigArgsDict']]]]] = None, + data_sources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationDataSourceArgs', 'ApplicationDataSourceArgsDict']]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + iam_identity_center_options: Optional[pulumi.Input[Union['IamIdentityCenterOptionsPropertiesArgs', 'IamIdentityCenterOptionsPropertiesArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + """ + Amazon OpenSearchService application resource + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationAppConfigArgs', 'ApplicationAppConfigArgsDict']]]] app_configs: List of application configurations. + :param pulumi.Input[Sequence[pulumi.Input[Union['ApplicationDataSourceArgs', 'ApplicationDataSourceArgsDict']]]] data_sources: List of data sources. + :param pulumi.Input[str] endpoint: The endpoint for the application. + :param pulumi.Input[Union['IamIdentityCenterOptionsPropertiesArgs', 'IamIdentityCenterOptionsPropertiesArgsDict']] iam_identity_center_options: Options for configuring IAM Identity Center + :param pulumi.Input[str] name: The name of the application. + :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: An arbitrary set of tags (key-value pairs) for this application. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ApplicationArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Amazon OpenSearchService application resource + + :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, + app_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationAppConfigArgs', 'ApplicationAppConfigArgsDict']]]]] = None, + data_sources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ApplicationDataSourceArgs', 'ApplicationDataSourceArgsDict']]]]] = None, + endpoint: Optional[pulumi.Input[str]] = None, + iam_identity_center_options: Optional[pulumi.Input[Union['IamIdentityCenterOptionsPropertiesArgs', 'IamIdentityCenterOptionsPropertiesArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = 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__["app_configs"] = app_configs + __props__.__dict__["data_sources"] = data_sources + __props__.__dict__["endpoint"] = endpoint + __props__.__dict__["iam_identity_center_options"] = iam_identity_center_options + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["aws_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["name"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Application, __self__).__init__( + 'aws-native:opensearchservice:Application', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ApplicationArgs.__new__(ApplicationArgs) + + __props__.__dict__["app_configs"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["aws_id"] = None + __props__.__dict__["data_sources"] = None + __props__.__dict__["endpoint"] = None + __props__.__dict__["iam_identity_center_options"] = None + __props__.__dict__["name"] = None + __props__.__dict__["tags"] = None + return Application(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="appConfigs") + def app_configs(self) -> pulumi.Output[Optional[Sequence['outputs.ApplicationAppConfig']]]: + """ + List of application configurations. + """ + return pulumi.get(self, "app_configs") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) format. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="awsId") + def aws_id(self) -> pulumi.Output[str]: + """ + The identifier of the application. + """ + return pulumi.get(self, "aws_id") + + @property + @pulumi.getter(name="dataSources") + def data_sources(self) -> pulumi.Output[Optional[Sequence['outputs.ApplicationDataSource']]]: + """ + List of data sources. + """ + return pulumi.get(self, "data_sources") + + @property + @pulumi.getter + def endpoint(self) -> pulumi.Output[Optional[str]]: + """ + The endpoint for the application. + """ + return pulumi.get(self, "endpoint") + + @property + @pulumi.getter(name="iamIdentityCenterOptions") + def iam_identity_center_options(self) -> pulumi.Output[Optional['outputs.IamIdentityCenterOptionsProperties']]: + """ + Options for configuring IAM Identity Center + """ + return pulumi.get(self, "iam_identity_center_options") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the application. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An arbitrary set of tags (key-value pairs) for this application. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/opensearchservice/get_application.py b/sdk/python/pulumi_aws_native/opensearchservice/get_application.py new file mode 100644 index 0000000000..9b3df78051 --- /dev/null +++ b/sdk/python/pulumi_aws_native/opensearchservice/get_application.py @@ -0,0 +1,164 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs +from ._enums import * + +__all__ = [ + 'GetApplicationResult', + 'AwaitableGetApplicationResult', + 'get_application', + 'get_application_output', +] + +@pulumi.output_type +class GetApplicationResult: + def __init__(__self__, app_configs=None, arn=None, data_sources=None, endpoint=None, iam_identity_center_options=None, id=None, tags=None): + if app_configs and not isinstance(app_configs, list): + raise TypeError("Expected argument 'app_configs' to be a list") + pulumi.set(__self__, "app_configs", app_configs) + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if data_sources and not isinstance(data_sources, list): + raise TypeError("Expected argument 'data_sources' to be a list") + pulumi.set(__self__, "data_sources", data_sources) + if endpoint and not isinstance(endpoint, str): + raise TypeError("Expected argument 'endpoint' to be a str") + pulumi.set(__self__, "endpoint", endpoint) + if iam_identity_center_options and not isinstance(iam_identity_center_options, dict): + raise TypeError("Expected argument 'iam_identity_center_options' to be a dict") + pulumi.set(__self__, "iam_identity_center_options", iam_identity_center_options) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="appConfigs") + def app_configs(self) -> Optional[Sequence['outputs.ApplicationAppConfig']]: + """ + List of application configurations. + """ + return pulumi.get(self, "app_configs") + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + """ + Amazon Resource Name (ARN) format. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="dataSources") + def data_sources(self) -> Optional[Sequence['outputs.ApplicationDataSource']]: + """ + List of data sources. + """ + return pulumi.get(self, "data_sources") + + @property + @pulumi.getter + def endpoint(self) -> Optional[str]: + """ + The endpoint for the application. + """ + return pulumi.get(self, "endpoint") + + @property + @pulumi.getter(name="iamIdentityCenterOptions") + def iam_identity_center_options(self) -> Optional['outputs.IamIdentityCenterOptionsProperties']: + """ + Options for configuring IAM Identity Center + """ + return pulumi.get(self, "iam_identity_center_options") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + The identifier of the application. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An arbitrary set of tags (key-value pairs) for this application. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetApplicationResult(GetApplicationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetApplicationResult( + app_configs=self.app_configs, + arn=self.arn, + data_sources=self.data_sources, + endpoint=self.endpoint, + iam_identity_center_options=self.iam_identity_center_options, + id=self.id, + tags=self.tags) + + +def get_application(name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationResult: + """ + Amazon OpenSearchService application resource + + + :param str name: The name of the application. + """ + __args__ = dict() + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:opensearchservice:getApplication', __args__, opts=opts, typ=GetApplicationResult).value + + return AwaitableGetApplicationResult( + app_configs=pulumi.get(__ret__, 'app_configs'), + arn=pulumi.get(__ret__, 'arn'), + data_sources=pulumi.get(__ret__, 'data_sources'), + endpoint=pulumi.get(__ret__, 'endpoint'), + iam_identity_center_options=pulumi.get(__ret__, 'iam_identity_center_options'), + id=pulumi.get(__ret__, 'id'), + tags=pulumi.get(__ret__, 'tags')) +def get_application_output(name: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetApplicationResult]: + """ + Amazon OpenSearchService application resource + + + :param str name: The name of the application. + """ + __args__ = dict() + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:opensearchservice:getApplication', __args__, opts=opts, typ=GetApplicationResult) + return __ret__.apply(lambda __response__: GetApplicationResult( + app_configs=pulumi.get(__response__, 'app_configs'), + arn=pulumi.get(__response__, 'arn'), + data_sources=pulumi.get(__response__, 'data_sources'), + endpoint=pulumi.get(__response__, 'endpoint'), + iam_identity_center_options=pulumi.get(__response__, 'iam_identity_center_options'), + id=pulumi.get(__response__, 'id'), + tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/opensearchservice/outputs.py b/sdk/python/pulumi_aws_native/opensearchservice/outputs.py index b0d3f01c98..0ba1340be4 100644 --- a/sdk/python/pulumi_aws_native/opensearchservice/outputs.py +++ b/sdk/python/pulumi_aws_native/opensearchservice/outputs.py @@ -14,8 +14,11 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from . import outputs +from ._enums import * __all__ = [ + 'ApplicationAppConfig', + 'ApplicationDataSource', 'DomainAdvancedSecurityOptionsInput', 'DomainClusterConfig', 'DomainCognitoOptions', @@ -37,8 +40,95 @@ 'DomainVpcOptions', 'DomainWindowStartTime', 'DomainZoneAwarenessConfig', + 'IamIdentityCenterOptionsProperties', ] +@pulumi.output_type +class ApplicationAppConfig(dict): + """ + A key-value pair of AppConfig + """ + def __init__(__self__, *, + key: 'ApplicationAppConfigType', + value: str): + """ + A key-value pair of AppConfig + :param 'ApplicationAppConfigType' key: The configuration key + :param str value: The configuration value. + """ + pulumi.set(__self__, "key", key) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> 'ApplicationAppConfigType': + """ + The configuration key + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> str: + """ + The configuration value. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class ApplicationDataSource(dict): + """ + Datasource arn and description + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dataSourceArn": + suggest = "data_source_arn" + elif key == "dataSourceDescription": + suggest = "data_source_description" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationDataSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationDataSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationDataSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + data_source_arn: Any, + data_source_description: Optional[str] = None): + """ + Datasource arn and description + :param Any data_source_arn: The ARN of the data source. + :param str data_source_description: Description of the data source. + """ + pulumi.set(__self__, "data_source_arn", data_source_arn) + if data_source_description is not None: + pulumi.set(__self__, "data_source_description", data_source_description) + + @property + @pulumi.getter(name="dataSourceArn") + def data_source_arn(self) -> Any: + """ + The ARN of the data source. + """ + return pulumi.get(self, "data_source_arn") + + @property + @pulumi.getter(name="dataSourceDescription") + def data_source_description(self) -> Optional[str]: + """ + Description of the data source. + """ + return pulumi.get(self, "data_source_description") + + @pulumi.output_type class DomainAdvancedSecurityOptionsInput(dict): @staticmethod @@ -1462,3 +1552,69 @@ def availability_zone_count(self) -> Optional[int]: return pulumi.get(self, "availability_zone_count") +@pulumi.output_type +class IamIdentityCenterOptionsProperties(dict): + """ + Options for configuring IAM Identity Center + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "iamIdentityCenterInstanceArn": + suggest = "iam_identity_center_instance_arn" + elif key == "iamRoleForIdentityCenterApplicationArn": + suggest = "iam_role_for_identity_center_application_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IamIdentityCenterOptionsProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IamIdentityCenterOptionsProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IamIdentityCenterOptionsProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + iam_identity_center_instance_arn: Optional[Any] = None, + iam_role_for_identity_center_application_arn: Optional[str] = None): + """ + Options for configuring IAM Identity Center + :param bool enabled: Whether IAM Identity Center is enabled. + :param Any iam_identity_center_instance_arn: The ARN of the IAM Identity Center instance. + :param str iam_role_for_identity_center_application_arn: The ARN of the IAM role for Identity Center application. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if iam_identity_center_instance_arn is not None: + pulumi.set(__self__, "iam_identity_center_instance_arn", iam_identity_center_instance_arn) + if iam_role_for_identity_center_application_arn is not None: + pulumi.set(__self__, "iam_role_for_identity_center_application_arn", iam_role_for_identity_center_application_arn) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Whether IAM Identity Center is enabled. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="iamIdentityCenterInstanceArn") + def iam_identity_center_instance_arn(self) -> Optional[Any]: + """ + The ARN of the IAM Identity Center instance. + """ + return pulumi.get(self, "iam_identity_center_instance_arn") + + @property + @pulumi.getter(name="iamRoleForIdentityCenterApplicationArn") + def iam_role_for_identity_center_application_arn(self) -> Optional[str]: + """ + The ARN of the IAM role for Identity Center application. + """ + return pulumi.get(self, "iam_role_for_identity_center_application_arn") + + diff --git a/sdk/python/pulumi_aws_native/sagemaker/get_space.py b/sdk/python/pulumi_aws_native/sagemaker/get_space.py index ac57220192..e84c1bb8e5 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/get_space.py +++ b/sdk/python/pulumi_aws_native/sagemaker/get_space.py @@ -13,6 +13,7 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from .. import outputs as _root_outputs __all__ = [ 'GetSpaceResult', @@ -23,13 +24,16 @@ @pulumi.output_type class GetSpaceResult: - def __init__(__self__, space_arn=None, space_display_name=None, url=None): + def __init__(__self__, space_arn=None, space_display_name=None, tags=None, url=None): if space_arn and not isinstance(space_arn, str): raise TypeError("Expected argument 'space_arn' to be a str") pulumi.set(__self__, "space_arn", space_arn) if space_display_name and not isinstance(space_display_name, str): raise TypeError("Expected argument 'space_display_name' to be a str") pulumi.set(__self__, "space_display_name", space_display_name) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) if url and not isinstance(url, str): raise TypeError("Expected argument 'url' to be a str") pulumi.set(__self__, "url", url) @@ -50,6 +54,14 @@ def space_display_name(self) -> Optional[str]: """ return pulumi.get(self, "space_display_name") + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + A list of tags to apply to the space. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def url(self) -> Optional[str]: @@ -73,6 +85,7 @@ def __await__(self): return GetSpaceResult( space_arn=self.space_arn, space_display_name=self.space_display_name, + tags=self.tags, url=self.url) @@ -95,6 +108,7 @@ def get_space(domain_id: Optional[str] = None, return AwaitableGetSpaceResult( space_arn=pulumi.get(__ret__, 'space_arn'), space_display_name=pulumi.get(__ret__, 'space_display_name'), + tags=pulumi.get(__ret__, 'tags'), url=pulumi.get(__ret__, 'url')) def get_space_output(domain_id: Optional[pulumi.Input[str]] = None, space_name: Optional[pulumi.Input[str]] = None, @@ -114,4 +128,5 @@ def get_space_output(domain_id: Optional[pulumi.Input[str]] = None, return __ret__.apply(lambda __response__: GetSpaceResult( space_arn=pulumi.get(__response__, 'space_arn'), space_display_name=pulumi.get(__response__, 'space_display_name'), + tags=pulumi.get(__response__, 'tags'), url=pulumi.get(__response__, 'url'))) diff --git a/sdk/python/pulumi_aws_native/sagemaker/studio_lifecycle_config.py b/sdk/python/pulumi_aws_native/sagemaker/studio_lifecycle_config.py index 7efb53e7f3..f74830dd5f 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/studio_lifecycle_config.py +++ b/sdk/python/pulumi_aws_native/sagemaker/studio_lifecycle_config.py @@ -29,9 +29,9 @@ def __init__(__self__, *, """ The set of arguments for constructing a StudioLifecycleConfig resource. :param pulumi.Input['StudioLifecycleConfigAppType'] studio_lifecycle_config_app_type: The App type that the Lifecycle Configuration is attached to. - :param pulumi.Input[str] studio_lifecycle_config_content: The content of your Amazon SageMaker Studio Lifecycle Configuration script. + :param pulumi.Input[str] studio_lifecycle_config_content: The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. :param pulumi.Input[str] studio_lifecycle_config_name: The name of the Amazon SageMaker Studio Lifecycle Configuration. - :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.CreateOnlyTagArgs']]] tags: Tags to be associated with the Lifecycle Configuration. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.CreateOnlyTagArgs']]] tags: Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. """ pulumi.set(__self__, "studio_lifecycle_config_app_type", studio_lifecycle_config_app_type) pulumi.set(__self__, "studio_lifecycle_config_content", studio_lifecycle_config_content) @@ -56,7 +56,7 @@ def studio_lifecycle_config_app_type(self, value: pulumi.Input['StudioLifecycleC @pulumi.getter(name="studioLifecycleConfigContent") def studio_lifecycle_config_content(self) -> pulumi.Input[str]: """ - The content of your Amazon SageMaker Studio Lifecycle Configuration script. + The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. """ return pulumi.get(self, "studio_lifecycle_config_content") @@ -80,7 +80,7 @@ def studio_lifecycle_config_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.CreateOnlyTagArgs']]]]: """ - Tags to be associated with the Lifecycle Configuration. + Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. """ return pulumi.get(self, "tags") @@ -105,9 +105,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input['StudioLifecycleConfigAppType'] studio_lifecycle_config_app_type: The App type that the Lifecycle Configuration is attached to. - :param pulumi.Input[str] studio_lifecycle_config_content: The content of your Amazon SageMaker Studio Lifecycle Configuration script. + :param pulumi.Input[str] studio_lifecycle_config_content: The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. :param pulumi.Input[str] studio_lifecycle_config_name: The name of the Amazon SageMaker Studio Lifecycle Configuration. - :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.CreateOnlyTagArgs', '_root_inputs.CreateOnlyTagArgsDict']]]] tags: Tags to be associated with the Lifecycle Configuration. + :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.CreateOnlyTagArgs', '_root_inputs.CreateOnlyTagArgsDict']]]] tags: Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. """ ... @overload @@ -206,7 +206,7 @@ def studio_lifecycle_config_arn(self) -> pulumi.Output[str]: @pulumi.getter(name="studioLifecycleConfigContent") def studio_lifecycle_config_content(self) -> pulumi.Output[str]: """ - The content of your Amazon SageMaker Studio Lifecycle Configuration script. + The content of your Amazon SageMaker Studio Lifecycle Configuration script. This content must be base64 encoded. """ return pulumi.get(self, "studio_lifecycle_config_content") @@ -222,7 +222,7 @@ def studio_lifecycle_config_name(self) -> pulumi.Output[str]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.CreateOnlyTag']]]: """ - Tags to be associated with the Lifecycle Configuration. + Tags to be associated with the Lifecycle Configuration. Each tag consists of a key and an optional value. Tag keys must be unique per resource. Tags are searchable using the Search API. """ return pulumi.get(self, "tags") diff --git a/sdk/python/pulumi_aws_native/secretsmanager/__init__.py b/sdk/python/pulumi_aws_native/secretsmanager/__init__.py index 8bad005654..eab2e04680 100644 --- a/sdk/python/pulumi_aws_native/secretsmanager/__init__.py +++ b/sdk/python/pulumi_aws_native/secretsmanager/__init__.py @@ -6,9 +6,11 @@ import typing # Export this package's modules as members: from .get_resource_policy import * +from .get_rotation_schedule import * from .get_secret import * from .get_secret_target_attachment import * from .resource_policy import * +from .rotation_schedule import * from .secret import * from .secret_target_attachment import * from ._inputs import * diff --git a/sdk/python/pulumi_aws_native/secretsmanager/_inputs.py b/sdk/python/pulumi_aws_native/secretsmanager/_inputs.py index 86e8bb6a2e..849059456c 100644 --- a/sdk/python/pulumi_aws_native/secretsmanager/_inputs.py +++ b/sdk/python/pulumi_aws_native/secretsmanager/_inputs.py @@ -15,6 +15,10 @@ from .. import _utilities __all__ = [ + 'RotationScheduleHostedRotationLambdaArgs', + 'RotationScheduleHostedRotationLambdaArgsDict', + 'RotationScheduleRotationRulesArgs', + 'RotationScheduleRotationRulesArgsDict', 'SecretGenerateSecretStringArgs', 'SecretGenerateSecretStringArgsDict', 'SecretReplicaRegionArgs', @@ -23,6 +27,309 @@ MYPY = False +if not MYPY: + class RotationScheduleHostedRotationLambdaArgsDict(TypedDict): + rotation_type: pulumi.Input[str] + """ + The type of rotation template to use + """ + exclude_characters: NotRequired[pulumi.Input[str]] + """ + A string of the characters that you don't want in the password. + """ + kms_key_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + """ + master_secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + master_secret_kms_key_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + rotation_lambda_name: NotRequired[pulumi.Input[str]] + """ + The name of the Lambda rotation function. + """ + runtime: NotRequired[pulumi.Input[str]] + """ + The python runtime associated with the Lambda function + """ + superuser_secret_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + superuser_secret_kms_key_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + vpc_security_group_ids: NotRequired[pulumi.Input[str]] + """ + A comma-separated list of security group IDs applied to the target database. + """ + vpc_subnet_ids: NotRequired[pulumi.Input[str]] + """ + A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + """ +elif False: + RotationScheduleHostedRotationLambdaArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RotationScheduleHostedRotationLambdaArgs: + def __init__(__self__, *, + rotation_type: pulumi.Input[str], + exclude_characters: Optional[pulumi.Input[str]] = None, + kms_key_arn: Optional[pulumi.Input[str]] = None, + master_secret_arn: Optional[pulumi.Input[str]] = None, + master_secret_kms_key_arn: Optional[pulumi.Input[str]] = None, + rotation_lambda_name: Optional[pulumi.Input[str]] = None, + runtime: Optional[pulumi.Input[str]] = None, + superuser_secret_arn: Optional[pulumi.Input[str]] = None, + superuser_secret_kms_key_arn: Optional[pulumi.Input[str]] = None, + vpc_security_group_ids: Optional[pulumi.Input[str]] = None, + vpc_subnet_ids: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] rotation_type: The type of rotation template to use + :param pulumi.Input[str] exclude_characters: A string of the characters that you don't want in the password. + :param pulumi.Input[str] kms_key_arn: The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + :param pulumi.Input[str] master_secret_arn: The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + :param pulumi.Input[str] master_secret_kms_key_arn: The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + :param pulumi.Input[str] rotation_lambda_name: The name of the Lambda rotation function. + :param pulumi.Input[str] runtime: The python runtime associated with the Lambda function + :param pulumi.Input[str] superuser_secret_arn: The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + :param pulumi.Input[str] superuser_secret_kms_key_arn: The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + :param pulumi.Input[str] vpc_security_group_ids: A comma-separated list of security group IDs applied to the target database. + :param pulumi.Input[str] vpc_subnet_ids: A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + """ + pulumi.set(__self__, "rotation_type", rotation_type) + if exclude_characters is not None: + pulumi.set(__self__, "exclude_characters", exclude_characters) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if master_secret_arn is not None: + pulumi.set(__self__, "master_secret_arn", master_secret_arn) + if master_secret_kms_key_arn is not None: + pulumi.set(__self__, "master_secret_kms_key_arn", master_secret_kms_key_arn) + if rotation_lambda_name is not None: + pulumi.set(__self__, "rotation_lambda_name", rotation_lambda_name) + if runtime is not None: + pulumi.set(__self__, "runtime", runtime) + if superuser_secret_arn is not None: + pulumi.set(__self__, "superuser_secret_arn", superuser_secret_arn) + if superuser_secret_kms_key_arn is not None: + pulumi.set(__self__, "superuser_secret_kms_key_arn", superuser_secret_kms_key_arn) + if vpc_security_group_ids is not None: + pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + if vpc_subnet_ids is not None: + pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + + @property + @pulumi.getter(name="rotationType") + def rotation_type(self) -> pulumi.Input[str]: + """ + The type of rotation template to use + """ + return pulumi.get(self, "rotation_type") + + @rotation_type.setter + def rotation_type(self, value: pulumi.Input[str]): + pulumi.set(self, "rotation_type", value) + + @property + @pulumi.getter(name="excludeCharacters") + def exclude_characters(self) -> Optional[pulumi.Input[str]]: + """ + A string of the characters that you don't want in the password. + """ + return pulumi.get(self, "exclude_characters") + + @exclude_characters.setter + def exclude_characters(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "exclude_characters", value) + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + """ + return pulumi.get(self, "kms_key_arn") + + @kms_key_arn.setter + def kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_arn", value) + + @property + @pulumi.getter(name="masterSecretArn") + def master_secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + return pulumi.get(self, "master_secret_arn") + + @master_secret_arn.setter + def master_secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "master_secret_arn", value) + + @property + @pulumi.getter(name="masterSecretKmsKeyArn") + def master_secret_kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + return pulumi.get(self, "master_secret_kms_key_arn") + + @master_secret_kms_key_arn.setter + def master_secret_kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "master_secret_kms_key_arn", value) + + @property + @pulumi.getter(name="rotationLambdaName") + def rotation_lambda_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Lambda rotation function. + """ + return pulumi.get(self, "rotation_lambda_name") + + @rotation_lambda_name.setter + def rotation_lambda_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rotation_lambda_name", value) + + @property + @pulumi.getter + def runtime(self) -> Optional[pulumi.Input[str]]: + """ + The python runtime associated with the Lambda function + """ + return pulumi.get(self, "runtime") + + @runtime.setter + def runtime(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "runtime", value) + + @property + @pulumi.getter(name="superuserSecretArn") + def superuser_secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + return pulumi.get(self, "superuser_secret_arn") + + @superuser_secret_arn.setter + def superuser_secret_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "superuser_secret_arn", value) + + @property + @pulumi.getter(name="superuserSecretKmsKeyArn") + def superuser_secret_kms_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + return pulumi.get(self, "superuser_secret_kms_key_arn") + + @superuser_secret_kms_key_arn.setter + def superuser_secret_kms_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "superuser_secret_kms_key_arn", value) + + @property + @pulumi.getter(name="vpcSecurityGroupIds") + def vpc_security_group_ids(self) -> Optional[pulumi.Input[str]]: + """ + A comma-separated list of security group IDs applied to the target database. + """ + return pulumi.get(self, "vpc_security_group_ids") + + @vpc_security_group_ids.setter + def vpc_security_group_ids(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_security_group_ids", value) + + @property + @pulumi.getter(name="vpcSubnetIds") + def vpc_subnet_ids(self) -> Optional[pulumi.Input[str]]: + """ + A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + """ + return pulumi.get(self, "vpc_subnet_ids") + + @vpc_subnet_ids.setter + def vpc_subnet_ids(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_subnet_ids", value) + + +if not MYPY: + class RotationScheduleRotationRulesArgsDict(TypedDict): + automatically_after_days: NotRequired[pulumi.Input[int]] + """ + The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + """ + duration: NotRequired[pulumi.Input[str]] + """ + The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + """ + schedule_expression: NotRequired[pulumi.Input[str]] + """ + A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + """ +elif False: + RotationScheduleRotationRulesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RotationScheduleRotationRulesArgs: + def __init__(__self__, *, + automatically_after_days: Optional[pulumi.Input[int]] = None, + duration: Optional[pulumi.Input[str]] = None, + schedule_expression: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] automatically_after_days: The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + :param pulumi.Input[str] duration: The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + :param pulumi.Input[str] schedule_expression: A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + """ + if automatically_after_days is not None: + pulumi.set(__self__, "automatically_after_days", automatically_after_days) + if duration is not None: + pulumi.set(__self__, "duration", duration) + if schedule_expression is not None: + pulumi.set(__self__, "schedule_expression", schedule_expression) + + @property + @pulumi.getter(name="automaticallyAfterDays") + def automatically_after_days(self) -> Optional[pulumi.Input[int]]: + """ + The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + """ + return pulumi.get(self, "automatically_after_days") + + @automatically_after_days.setter + def automatically_after_days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "automatically_after_days", value) + + @property + @pulumi.getter + def duration(self) -> Optional[pulumi.Input[str]]: + """ + The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + """ + return pulumi.get(self, "duration") + + @duration.setter + def duration(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "duration", value) + + @property + @pulumi.getter(name="scheduleExpression") + def schedule_expression(self) -> Optional[pulumi.Input[str]]: + """ + A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + """ + return pulumi.get(self, "schedule_expression") + + @schedule_expression.setter + def schedule_expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "schedule_expression", value) + + if not MYPY: class SecretGenerateSecretStringArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/secretsmanager/get_rotation_schedule.py b/sdk/python/pulumi_aws_native/secretsmanager/get_rotation_schedule.py new file mode 100644 index 0000000000..3eeca5dffe --- /dev/null +++ b/sdk/python/pulumi_aws_native/secretsmanager/get_rotation_schedule.py @@ -0,0 +1,106 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetRotationScheduleResult', + 'AwaitableGetRotationScheduleResult', + 'get_rotation_schedule', + 'get_rotation_schedule_output', +] + +@pulumi.output_type +class GetRotationScheduleResult: + def __init__(__self__, id=None, rotation_lambda_arn=None, rotation_rules=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if rotation_lambda_arn and not isinstance(rotation_lambda_arn, str): + raise TypeError("Expected argument 'rotation_lambda_arn' to be a str") + pulumi.set(__self__, "rotation_lambda_arn", rotation_lambda_arn) + if rotation_rules and not isinstance(rotation_rules, dict): + raise TypeError("Expected argument 'rotation_rules' to be a dict") + pulumi.set(__self__, "rotation_rules", rotation_rules) + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + The ARN of the secret. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="rotationLambdaArn") + def rotation_lambda_arn(self) -> Optional[str]: + """ + The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + """ + return pulumi.get(self, "rotation_lambda_arn") + + @property + @pulumi.getter(name="rotationRules") + def rotation_rules(self) -> Optional['outputs.RotationScheduleRotationRules']: + """ + A structure that defines the rotation configuration for this secret. + """ + return pulumi.get(self, "rotation_rules") + + +class AwaitableGetRotationScheduleResult(GetRotationScheduleResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetRotationScheduleResult( + id=self.id, + rotation_lambda_arn=self.rotation_lambda_arn, + rotation_rules=self.rotation_rules) + + +def get_rotation_schedule(id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRotationScheduleResult: + """ + Resource Type definition for AWS::SecretsManager::RotationSchedule + + + :param str id: The ARN of the secret. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:secretsmanager:getRotationSchedule', __args__, opts=opts, typ=GetRotationScheduleResult).value + + return AwaitableGetRotationScheduleResult( + id=pulumi.get(__ret__, 'id'), + rotation_lambda_arn=pulumi.get(__ret__, 'rotation_lambda_arn'), + rotation_rules=pulumi.get(__ret__, 'rotation_rules')) +def get_rotation_schedule_output(id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRotationScheduleResult]: + """ + Resource Type definition for AWS::SecretsManager::RotationSchedule + + + :param str id: The ARN of the secret. + """ + __args__ = dict() + __args__['id'] = id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:secretsmanager:getRotationSchedule', __args__, opts=opts, typ=GetRotationScheduleResult) + return __ret__.apply(lambda __response__: GetRotationScheduleResult( + id=pulumi.get(__response__, 'id'), + rotation_lambda_arn=pulumi.get(__response__, 'rotation_lambda_arn'), + rotation_rules=pulumi.get(__response__, 'rotation_rules'))) diff --git a/sdk/python/pulumi_aws_native/secretsmanager/get_secret_target_attachment.py b/sdk/python/pulumi_aws_native/secretsmanager/get_secret_target_attachment.py index 317a8d8919..0305c0a445 100644 --- a/sdk/python/pulumi_aws_native/secretsmanager/get_secret_target_attachment.py +++ b/sdk/python/pulumi_aws_native/secretsmanager/get_secret_target_attachment.py @@ -23,13 +23,10 @@ @pulumi.output_type class GetSecretTargetAttachmentResult: - def __init__(__self__, id=None, secret_id=None, target_id=None, target_type=None): + def __init__(__self__, id=None, target_id=None, target_type=None): if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) - if secret_id and not isinstance(secret_id, str): - raise TypeError("Expected argument 'secret_id' to be a str") - pulumi.set(__self__, "secret_id", secret_id) if target_id and not isinstance(target_id, str): raise TypeError("Expected argument 'target_id' to be a str") pulumi.set(__self__, "target_id", target_id) @@ -42,14 +39,6 @@ def __init__(__self__, id=None, secret_id=None, target_id=None, target_type=None def id(self) -> Optional[str]: return pulumi.get(self, "id") - @property - @pulumi.getter(name="secretId") - def secret_id(self) -> Optional[str]: - """ - The ARN or name of the secret. To reference a secret also created in this template, use the see [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) function with the secret's logical ID. This field is unique for each target attachment definition. - """ - return pulumi.get(self, "secret_id") - @property @pulumi.getter(name="targetId") def target_id(self) -> Optional[str]: @@ -82,7 +71,6 @@ def __await__(self): yield self return GetSecretTargetAttachmentResult( id=self.id, - secret_id=self.secret_id, target_id=self.target_id, target_type=self.target_type) @@ -99,7 +87,6 @@ def get_secret_target_attachment(id: Optional[str] = None, return AwaitableGetSecretTargetAttachmentResult( id=pulumi.get(__ret__, 'id'), - secret_id=pulumi.get(__ret__, 'secret_id'), target_id=pulumi.get(__ret__, 'target_id'), target_type=pulumi.get(__ret__, 'target_type')) def get_secret_target_attachment_output(id: Optional[pulumi.Input[str]] = None, @@ -113,6 +100,5 @@ def get_secret_target_attachment_output(id: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:secretsmanager:getSecretTargetAttachment', __args__, opts=opts, typ=GetSecretTargetAttachmentResult) return __ret__.apply(lambda __response__: GetSecretTargetAttachmentResult( id=pulumi.get(__response__, 'id'), - secret_id=pulumi.get(__response__, 'secret_id'), target_id=pulumi.get(__response__, 'target_id'), target_type=pulumi.get(__response__, 'target_type'))) diff --git a/sdk/python/pulumi_aws_native/secretsmanager/outputs.py b/sdk/python/pulumi_aws_native/secretsmanager/outputs.py index ea146a8772..d1937bde0e 100644 --- a/sdk/python/pulumi_aws_native/secretsmanager/outputs.py +++ b/sdk/python/pulumi_aws_native/secretsmanager/outputs.py @@ -15,10 +15,247 @@ from .. import _utilities __all__ = [ + 'RotationScheduleHostedRotationLambda', + 'RotationScheduleRotationRules', 'SecretGenerateSecretString', 'SecretReplicaRegion', ] +@pulumi.output_type +class RotationScheduleHostedRotationLambda(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "rotationType": + suggest = "rotation_type" + elif key == "excludeCharacters": + suggest = "exclude_characters" + elif key == "kmsKeyArn": + suggest = "kms_key_arn" + elif key == "masterSecretArn": + suggest = "master_secret_arn" + elif key == "masterSecretKmsKeyArn": + suggest = "master_secret_kms_key_arn" + elif key == "rotationLambdaName": + suggest = "rotation_lambda_name" + elif key == "superuserSecretArn": + suggest = "superuser_secret_arn" + elif key == "superuserSecretKmsKeyArn": + suggest = "superuser_secret_kms_key_arn" + elif key == "vpcSecurityGroupIds": + suggest = "vpc_security_group_ids" + elif key == "vpcSubnetIds": + suggest = "vpc_subnet_ids" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RotationScheduleHostedRotationLambda. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RotationScheduleHostedRotationLambda.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RotationScheduleHostedRotationLambda.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + rotation_type: str, + exclude_characters: Optional[str] = None, + kms_key_arn: Optional[str] = None, + master_secret_arn: Optional[str] = None, + master_secret_kms_key_arn: Optional[str] = None, + rotation_lambda_name: Optional[str] = None, + runtime: Optional[str] = None, + superuser_secret_arn: Optional[str] = None, + superuser_secret_kms_key_arn: Optional[str] = None, + vpc_security_group_ids: Optional[str] = None, + vpc_subnet_ids: Optional[str] = None): + """ + :param str rotation_type: The type of rotation template to use + :param str exclude_characters: A string of the characters that you don't want in the password. + :param str kms_key_arn: The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + :param str master_secret_arn: The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + :param str master_secret_kms_key_arn: The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + :param str rotation_lambda_name: The name of the Lambda rotation function. + :param str runtime: The python runtime associated with the Lambda function + :param str superuser_secret_arn: The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + :param str superuser_secret_kms_key_arn: The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + :param str vpc_security_group_ids: A comma-separated list of security group IDs applied to the target database. + :param str vpc_subnet_ids: A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + """ + pulumi.set(__self__, "rotation_type", rotation_type) + if exclude_characters is not None: + pulumi.set(__self__, "exclude_characters", exclude_characters) + if kms_key_arn is not None: + pulumi.set(__self__, "kms_key_arn", kms_key_arn) + if master_secret_arn is not None: + pulumi.set(__self__, "master_secret_arn", master_secret_arn) + if master_secret_kms_key_arn is not None: + pulumi.set(__self__, "master_secret_kms_key_arn", master_secret_kms_key_arn) + if rotation_lambda_name is not None: + pulumi.set(__self__, "rotation_lambda_name", rotation_lambda_name) + if runtime is not None: + pulumi.set(__self__, "runtime", runtime) + if superuser_secret_arn is not None: + pulumi.set(__self__, "superuser_secret_arn", superuser_secret_arn) + if superuser_secret_kms_key_arn is not None: + pulumi.set(__self__, "superuser_secret_kms_key_arn", superuser_secret_kms_key_arn) + if vpc_security_group_ids is not None: + pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + if vpc_subnet_ids is not None: + pulumi.set(__self__, "vpc_subnet_ids", vpc_subnet_ids) + + @property + @pulumi.getter(name="rotationType") + def rotation_type(self) -> str: + """ + The type of rotation template to use + """ + return pulumi.get(self, "rotation_type") + + @property + @pulumi.getter(name="excludeCharacters") + def exclude_characters(self) -> Optional[str]: + """ + A string of the characters that you don't want in the password. + """ + return pulumi.get(self, "exclude_characters") + + @property + @pulumi.getter(name="kmsKeyArn") + def kms_key_arn(self) -> Optional[str]: + """ + The ARN of the KMS key that Secrets Manager uses to encrypt the secret. If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If aws/secretsmanager doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + """ + return pulumi.get(self, "kms_key_arn") + + @property + @pulumi.getter(name="masterSecretArn") + def master_secret_arn(self) -> Optional[str]: + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + return pulumi.get(self, "master_secret_arn") + + @property + @pulumi.getter(name="masterSecretKmsKeyArn") + def master_secret_kms_key_arn(self) -> Optional[str]: + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + return pulumi.get(self, "master_secret_kms_key_arn") + + @property + @pulumi.getter(name="rotationLambdaName") + def rotation_lambda_name(self) -> Optional[str]: + """ + The name of the Lambda rotation function. + """ + return pulumi.get(self, "rotation_lambda_name") + + @property + @pulumi.getter + def runtime(self) -> Optional[str]: + """ + The python runtime associated with the Lambda function + """ + return pulumi.get(self, "runtime") + + @property + @pulumi.getter(name="superuserSecretArn") + def superuser_secret_arn(self) -> Optional[str]: + """ + The ARN of the secret that contains superuser credentials, if you use the alternating users rotation strategy. CloudFormation grants the execution role for the Lambda rotation function GetSecretValue permission to the secret in this property. + """ + return pulumi.get(self, "superuser_secret_arn") + + @property + @pulumi.getter(name="superuserSecretKmsKeyArn") + def superuser_secret_kms_key_arn(self) -> Optional[str]: + """ + The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the alternating users strategy and the superuser secret is encrypted with a customer managed key. You don't need to specify this property if the superuser secret is encrypted using the key aws/secretsmanager. CloudFormation grants the execution role for the Lambda rotation function Decrypt, DescribeKey, and GenerateDataKey permission to the key in this property. + """ + return pulumi.get(self, "superuser_secret_kms_key_arn") + + @property + @pulumi.getter(name="vpcSecurityGroupIds") + def vpc_security_group_ids(self) -> Optional[str]: + """ + A comma-separated list of security group IDs applied to the target database. + """ + return pulumi.get(self, "vpc_security_group_ids") + + @property + @pulumi.getter(name="vpcSubnetIds") + def vpc_subnet_ids(self) -> Optional[str]: + """ + A comma separated list of VPC subnet IDs of the target database network. The Lambda rotation function is in the same subnet group. + """ + return pulumi.get(self, "vpc_subnet_ids") + + +@pulumi.output_type +class RotationScheduleRotationRules(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "automaticallyAfterDays": + suggest = "automatically_after_days" + elif key == "scheduleExpression": + suggest = "schedule_expression" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in RotationScheduleRotationRules. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + RotationScheduleRotationRules.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + RotationScheduleRotationRules.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + automatically_after_days: Optional[int] = None, + duration: Optional[str] = None, + schedule_expression: Optional[str] = None): + """ + :param int automatically_after_days: The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + :param str duration: The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + :param str schedule_expression: A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + """ + if automatically_after_days is not None: + pulumi.set(__self__, "automatically_after_days", automatically_after_days) + if duration is not None: + pulumi.set(__self__, "duration", duration) + if schedule_expression is not None: + pulumi.set(__self__, "schedule_expression", schedule_expression) + + @property + @pulumi.getter(name="automaticallyAfterDays") + def automatically_after_days(self) -> Optional[int]: + """ + The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. + """ + return pulumi.get(self, "automatically_after_days") + + @property + @pulumi.getter + def duration(self) -> Optional[str]: + """ + The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. + """ + return pulumi.get(self, "duration") + + @property + @pulumi.getter(name="scheduleExpression") + def schedule_expression(self) -> Optional[str]: + """ + A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. + """ + return pulumi.get(self, "schedule_expression") + + @pulumi.output_type class SecretGenerateSecretString(dict): """ diff --git a/sdk/python/pulumi_aws_native/secretsmanager/rotation_schedule.py b/sdk/python/pulumi_aws_native/secretsmanager/rotation_schedule.py new file mode 100644 index 0000000000..f0baf3d9b7 --- /dev/null +++ b/sdk/python/pulumi_aws_native/secretsmanager/rotation_schedule.py @@ -0,0 +1,255 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['RotationScheduleArgs', 'RotationSchedule'] + +@pulumi.input_type +class RotationScheduleArgs: + def __init__(__self__, *, + secret_id: pulumi.Input[str], + hosted_rotation_lambda: Optional[pulumi.Input['RotationScheduleHostedRotationLambdaArgs']] = None, + rotate_immediately_on_update: Optional[pulumi.Input[bool]] = None, + rotation_lambda_arn: Optional[pulumi.Input[str]] = None, + rotation_rules: Optional[pulumi.Input['RotationScheduleRotationRulesArgs']] = None): + """ + The set of arguments for constructing a RotationSchedule resource. + :param pulumi.Input[str] secret_id: The ARN or name of the secret to rotate. + :param pulumi.Input['RotationScheduleHostedRotationLambdaArgs'] hosted_rotation_lambda: Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + :param pulumi.Input[bool] rotate_immediately_on_update: Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + :param pulumi.Input[str] rotation_lambda_arn: The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + :param pulumi.Input['RotationScheduleRotationRulesArgs'] rotation_rules: A structure that defines the rotation configuration for this secret. + """ + pulumi.set(__self__, "secret_id", secret_id) + if hosted_rotation_lambda is not None: + pulumi.set(__self__, "hosted_rotation_lambda", hosted_rotation_lambda) + if rotate_immediately_on_update is not None: + pulumi.set(__self__, "rotate_immediately_on_update", rotate_immediately_on_update) + if rotation_lambda_arn is not None: + pulumi.set(__self__, "rotation_lambda_arn", rotation_lambda_arn) + if rotation_rules is not None: + pulumi.set(__self__, "rotation_rules", rotation_rules) + + @property + @pulumi.getter(name="secretId") + def secret_id(self) -> pulumi.Input[str]: + """ + The ARN or name of the secret to rotate. + """ + return pulumi.get(self, "secret_id") + + @secret_id.setter + def secret_id(self, value: pulumi.Input[str]): + pulumi.set(self, "secret_id", value) + + @property + @pulumi.getter(name="hostedRotationLambda") + def hosted_rotation_lambda(self) -> Optional[pulumi.Input['RotationScheduleHostedRotationLambdaArgs']]: + """ + Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + """ + return pulumi.get(self, "hosted_rotation_lambda") + + @hosted_rotation_lambda.setter + def hosted_rotation_lambda(self, value: Optional[pulumi.Input['RotationScheduleHostedRotationLambdaArgs']]): + pulumi.set(self, "hosted_rotation_lambda", value) + + @property + @pulumi.getter(name="rotateImmediatelyOnUpdate") + def rotate_immediately_on_update(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + """ + return pulumi.get(self, "rotate_immediately_on_update") + + @rotate_immediately_on_update.setter + def rotate_immediately_on_update(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "rotate_immediately_on_update", value) + + @property + @pulumi.getter(name="rotationLambdaArn") + def rotation_lambda_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + """ + return pulumi.get(self, "rotation_lambda_arn") + + @rotation_lambda_arn.setter + def rotation_lambda_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rotation_lambda_arn", value) + + @property + @pulumi.getter(name="rotationRules") + def rotation_rules(self) -> Optional[pulumi.Input['RotationScheduleRotationRulesArgs']]: + """ + A structure that defines the rotation configuration for this secret. + """ + return pulumi.get(self, "rotation_rules") + + @rotation_rules.setter + def rotation_rules(self, value: Optional[pulumi.Input['RotationScheduleRotationRulesArgs']]): + pulumi.set(self, "rotation_rules", value) + + +class RotationSchedule(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + hosted_rotation_lambda: Optional[pulumi.Input[Union['RotationScheduleHostedRotationLambdaArgs', 'RotationScheduleHostedRotationLambdaArgsDict']]] = None, + rotate_immediately_on_update: Optional[pulumi.Input[bool]] = None, + rotation_lambda_arn: Optional[pulumi.Input[str]] = None, + rotation_rules: Optional[pulumi.Input[Union['RotationScheduleRotationRulesArgs', 'RotationScheduleRotationRulesArgsDict']]] = None, + secret_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource Type definition for AWS::SecretsManager::RotationSchedule + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['RotationScheduleHostedRotationLambdaArgs', 'RotationScheduleHostedRotationLambdaArgsDict']] hosted_rotation_lambda: Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + :param pulumi.Input[bool] rotate_immediately_on_update: Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + :param pulumi.Input[str] rotation_lambda_arn: The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + :param pulumi.Input[Union['RotationScheduleRotationRulesArgs', 'RotationScheduleRotationRulesArgsDict']] rotation_rules: A structure that defines the rotation configuration for this secret. + :param pulumi.Input[str] secret_id: The ARN or name of the secret to rotate. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: RotationScheduleArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::SecretsManager::RotationSchedule + + :param str resource_name: The name of the resource. + :param RotationScheduleArgs 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(RotationScheduleArgs, 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, + hosted_rotation_lambda: Optional[pulumi.Input[Union['RotationScheduleHostedRotationLambdaArgs', 'RotationScheduleHostedRotationLambdaArgsDict']]] = None, + rotate_immediately_on_update: Optional[pulumi.Input[bool]] = None, + rotation_lambda_arn: Optional[pulumi.Input[str]] = None, + rotation_rules: Optional[pulumi.Input[Union['RotationScheduleRotationRulesArgs', 'RotationScheduleRotationRulesArgsDict']]] = None, + secret_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = RotationScheduleArgs.__new__(RotationScheduleArgs) + + __props__.__dict__["hosted_rotation_lambda"] = hosted_rotation_lambda + __props__.__dict__["rotate_immediately_on_update"] = rotate_immediately_on_update + __props__.__dict__["rotation_lambda_arn"] = rotation_lambda_arn + __props__.__dict__["rotation_rules"] = rotation_rules + if secret_id is None and not opts.urn: + raise TypeError("Missing required property 'secret_id'") + __props__.__dict__["secret_id"] = secret_id + __props__.__dict__["aws_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["secretId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(RotationSchedule, __self__).__init__( + 'aws-native:secretsmanager:RotationSchedule', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'RotationSchedule': + """ + Get an existing RotationSchedule 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = RotationScheduleArgs.__new__(RotationScheduleArgs) + + __props__.__dict__["aws_id"] = None + __props__.__dict__["hosted_rotation_lambda"] = None + __props__.__dict__["rotate_immediately_on_update"] = None + __props__.__dict__["rotation_lambda_arn"] = None + __props__.__dict__["rotation_rules"] = None + __props__.__dict__["secret_id"] = None + return RotationSchedule(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="awsId") + def aws_id(self) -> pulumi.Output[str]: + """ + The ARN of the secret. + """ + return pulumi.get(self, "aws_id") + + @property + @pulumi.getter(name="hostedRotationLambda") + def hosted_rotation_lambda(self) -> pulumi.Output[Optional['outputs.RotationScheduleHostedRotationLambda']]: + """ + Creates a new Lambda rotation function based on one of the Secrets Manager rotation function templates. To use a rotation function that already exists, specify RotationLambdaARN instead. + """ + return pulumi.get(self, "hosted_rotation_lambda") + + @property + @pulumi.getter(name="rotateImmediatelyOnUpdate") + def rotate_immediately_on_update(self) -> pulumi.Output[Optional[bool]]: + """ + Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. + """ + return pulumi.get(self, "rotate_immediately_on_update") + + @property + @pulumi.getter(name="rotationLambdaArn") + def rotation_lambda_arn(self) -> pulumi.Output[Optional[str]]: + """ + The ARN of an existing Lambda rotation function. To specify a rotation function that is also defined in this template, use the Ref function. + """ + return pulumi.get(self, "rotation_lambda_arn") + + @property + @pulumi.getter(name="rotationRules") + def rotation_rules(self) -> pulumi.Output[Optional['outputs.RotationScheduleRotationRules']]: + """ + A structure that defines the rotation configuration for this secret. + """ + return pulumi.get(self, "rotation_rules") + + @property + @pulumi.getter(name="secretId") + def secret_id(self) -> pulumi.Output[str]: + """ + The ARN or name of the secret to rotate. + """ + return pulumi.get(self, "secret_id") + diff --git a/sdk/python/pulumi_aws_native/secretsmanager/secret_target_attachment.py b/sdk/python/pulumi_aws_native/secretsmanager/secret_target_attachment.py index 4545c39e4b..cdb8890df6 100644 --- a/sdk/python/pulumi_aws_native/secretsmanager/secret_target_attachment.py +++ b/sdk/python/pulumi_aws_native/secretsmanager/secret_target_attachment.py @@ -157,6 +157,8 @@ def _internal_init(__self__, raise TypeError("Missing required property 'target_type'") __props__.__dict__["target_type"] = target_type __props__.__dict__["aws_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["secretId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(SecretTargetAttachment, __self__).__init__( 'aws-native:secretsmanager:SecretTargetAttachment', resource_name, diff --git a/sdk/python/pulumi_aws_native/wisdom/__init__.py b/sdk/python/pulumi_aws_native/wisdom/__init__.py index 9b4cee4615..5fb52c59a6 100644 --- a/sdk/python/pulumi_aws_native/wisdom/__init__.py +++ b/sdk/python/pulumi_aws_native/wisdom/__init__.py @@ -7,9 +7,11 @@ # Export this package's modules as members: from ._enums import * from .ai_prompt import * +from .ai_prompt_version import * from .assistant import * from .assistant_association import * from .get_ai_prompt import * +from .get_ai_prompt_version import * from .get_assistant import * from .get_assistant_association import * from .get_knowledge_base import * diff --git a/sdk/python/pulumi_aws_native/wisdom/ai_prompt_version.py b/sdk/python/pulumi_aws_native/wisdom/ai_prompt_version.py new file mode 100644 index 0000000000..a422fac687 --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/ai_prompt_version.py @@ -0,0 +1,190 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['AiPromptVersionArgs', 'AiPromptVersion'] + +@pulumi.input_type +class AiPromptVersionArgs: + def __init__(__self__, *, + ai_prompt_id: pulumi.Input[str], + assistant_id: pulumi.Input[str], + modified_time_seconds: Optional[pulumi.Input[float]] = None): + """ + The set of arguments for constructing a AiPromptVersion resource. + """ + pulumi.set(__self__, "ai_prompt_id", ai_prompt_id) + pulumi.set(__self__, "assistant_id", assistant_id) + if modified_time_seconds is not None: + pulumi.set(__self__, "modified_time_seconds", modified_time_seconds) + + @property + @pulumi.getter(name="aiPromptId") + def ai_prompt_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "ai_prompt_id") + + @ai_prompt_id.setter + def ai_prompt_id(self, value: pulumi.Input[str]): + pulumi.set(self, "ai_prompt_id", value) + + @property + @pulumi.getter(name="assistantId") + def assistant_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "assistant_id") + + @assistant_id.setter + def assistant_id(self, value: pulumi.Input[str]): + pulumi.set(self, "assistant_id", value) + + @property + @pulumi.getter(name="modifiedTimeSeconds") + def modified_time_seconds(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "modified_time_seconds") + + @modified_time_seconds.setter + def modified_time_seconds(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "modified_time_seconds", value) + + +class AiPromptVersion(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + ai_prompt_id: Optional[pulumi.Input[str]] = None, + assistant_id: Optional[pulumi.Input[str]] = None, + modified_time_seconds: Optional[pulumi.Input[float]] = None, + __props__=None): + """ + Definition of AWS::Wisdom::AIPromptVersion Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AiPromptVersionArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Wisdom::AIPromptVersion Resource Type + + :param str resource_name: The name of the resource. + :param AiPromptVersionArgs 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(AiPromptVersionArgs, 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, + ai_prompt_id: Optional[pulumi.Input[str]] = None, + assistant_id: Optional[pulumi.Input[str]] = None, + modified_time_seconds: Optional[pulumi.Input[float]] = 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__ = AiPromptVersionArgs.__new__(AiPromptVersionArgs) + + if ai_prompt_id is None and not opts.urn: + raise TypeError("Missing required property 'ai_prompt_id'") + __props__.__dict__["ai_prompt_id"] = ai_prompt_id + if assistant_id is None and not opts.urn: + raise TypeError("Missing required property 'assistant_id'") + __props__.__dict__["assistant_id"] = assistant_id + __props__.__dict__["modified_time_seconds"] = modified_time_seconds + __props__.__dict__["ai_prompt_arn"] = None + __props__.__dict__["ai_prompt_version_id"] = None + __props__.__dict__["assistant_arn"] = None + __props__.__dict__["version_number"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["aiPromptId", "assistantId", "modifiedTimeSeconds"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(AiPromptVersion, __self__).__init__( + 'aws-native:wisdom:AiPromptVersion', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'AiPromptVersion': + """ + Get an existing AiPromptVersion 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = AiPromptVersionArgs.__new__(AiPromptVersionArgs) + + __props__.__dict__["ai_prompt_arn"] = None + __props__.__dict__["ai_prompt_id"] = None + __props__.__dict__["ai_prompt_version_id"] = None + __props__.__dict__["assistant_arn"] = None + __props__.__dict__["assistant_id"] = None + __props__.__dict__["modified_time_seconds"] = None + __props__.__dict__["version_number"] = None + return AiPromptVersion(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="aiPromptArn") + def ai_prompt_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "ai_prompt_arn") + + @property + @pulumi.getter(name="aiPromptId") + def ai_prompt_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "ai_prompt_id") + + @property + @pulumi.getter(name="aiPromptVersionId") + def ai_prompt_version_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "ai_prompt_version_id") + + @property + @pulumi.getter(name="assistantArn") + def assistant_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "assistant_arn") + + @property + @pulumi.getter(name="assistantId") + def assistant_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "assistant_id") + + @property + @pulumi.getter(name="modifiedTimeSeconds") + def modified_time_seconds(self) -> pulumi.Output[Optional[float]]: + return pulumi.get(self, "modified_time_seconds") + + @property + @pulumi.getter(name="versionNumber") + def version_number(self) -> pulumi.Output[float]: + return pulumi.get(self, "version_number") + diff --git a/sdk/python/pulumi_aws_native/wisdom/get_ai_prompt_version.py b/sdk/python/pulumi_aws_native/wisdom/get_ai_prompt_version.py new file mode 100644 index 0000000000..e81cfee1aa --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/get_ai_prompt_version.py @@ -0,0 +1,109 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'GetAiPromptVersionResult', + 'AwaitableGetAiPromptVersionResult', + 'get_ai_prompt_version', + 'get_ai_prompt_version_output', +] + +@pulumi.output_type +class GetAiPromptVersionResult: + def __init__(__self__, ai_prompt_arn=None, ai_prompt_version_id=None, assistant_arn=None, version_number=None): + if ai_prompt_arn and not isinstance(ai_prompt_arn, str): + raise TypeError("Expected argument 'ai_prompt_arn' to be a str") + pulumi.set(__self__, "ai_prompt_arn", ai_prompt_arn) + if ai_prompt_version_id and not isinstance(ai_prompt_version_id, str): + raise TypeError("Expected argument 'ai_prompt_version_id' to be a str") + pulumi.set(__self__, "ai_prompt_version_id", ai_prompt_version_id) + if assistant_arn and not isinstance(assistant_arn, str): + raise TypeError("Expected argument 'assistant_arn' to be a str") + pulumi.set(__self__, "assistant_arn", assistant_arn) + if version_number and not isinstance(version_number, float): + raise TypeError("Expected argument 'version_number' to be a float") + pulumi.set(__self__, "version_number", version_number) + + @property + @pulumi.getter(name="aiPromptArn") + def ai_prompt_arn(self) -> Optional[str]: + return pulumi.get(self, "ai_prompt_arn") + + @property + @pulumi.getter(name="aiPromptVersionId") + def ai_prompt_version_id(self) -> Optional[str]: + return pulumi.get(self, "ai_prompt_version_id") + + @property + @pulumi.getter(name="assistantArn") + def assistant_arn(self) -> Optional[str]: + return pulumi.get(self, "assistant_arn") + + @property + @pulumi.getter(name="versionNumber") + def version_number(self) -> Optional[float]: + return pulumi.get(self, "version_number") + + +class AwaitableGetAiPromptVersionResult(GetAiPromptVersionResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAiPromptVersionResult( + ai_prompt_arn=self.ai_prompt_arn, + ai_prompt_version_id=self.ai_prompt_version_id, + assistant_arn=self.assistant_arn, + version_number=self.version_number) + + +def get_ai_prompt_version(ai_prompt_id: Optional[str] = None, + assistant_id: Optional[str] = None, + version_number: Optional[float] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAiPromptVersionResult: + """ + Definition of AWS::Wisdom::AIPromptVersion Resource Type + """ + __args__ = dict() + __args__['aiPromptId'] = ai_prompt_id + __args__['assistantId'] = assistant_id + __args__['versionNumber'] = version_number + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:wisdom:getAiPromptVersion', __args__, opts=opts, typ=GetAiPromptVersionResult).value + + return AwaitableGetAiPromptVersionResult( + ai_prompt_arn=pulumi.get(__ret__, 'ai_prompt_arn'), + ai_prompt_version_id=pulumi.get(__ret__, 'ai_prompt_version_id'), + assistant_arn=pulumi.get(__ret__, 'assistant_arn'), + version_number=pulumi.get(__ret__, 'version_number')) +def get_ai_prompt_version_output(ai_prompt_id: Optional[pulumi.Input[str]] = None, + assistant_id: Optional[pulumi.Input[str]] = None, + version_number: Optional[pulumi.Input[float]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAiPromptVersionResult]: + """ + Definition of AWS::Wisdom::AIPromptVersion Resource Type + """ + __args__ = dict() + __args__['aiPromptId'] = ai_prompt_id + __args__['assistantId'] = assistant_id + __args__['versionNumber'] = version_number + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:wisdom:getAiPromptVersion', __args__, opts=opts, typ=GetAiPromptVersionResult) + return __ret__.apply(lambda __response__: GetAiPromptVersionResult( + ai_prompt_arn=pulumi.get(__response__, 'ai_prompt_arn'), + ai_prompt_version_id=pulumi.get(__response__, 'ai_prompt_version_id'), + assistant_arn=pulumi.get(__response__, 'assistant_arn'), + version_number=pulumi.get(__response__, 'version_number')))